Re: Bug in Gtk3::FileFilter?



Thanks for the tips:

The first one doesn't prevent the segmentation fault.
The second is the method I used as a workaround, using a helper function to create the glob regexp from the pattern strings used by the GCstar program.



Date: Sun, 29 Dec 2019 20:35:55 +0100
From: Torsten Schoenfeld <torsten schoenfeld gmx de>
To: gtk-perl-list gnome org
Subject: Re: Bug in Gtk3::FileFilter?
Message-ID: <0db43a0d-6526-1da2-3bf7-189829aad735 gmx de>
Content-Type: text/plain; charset=utf-8; format=flowed

.....

This does indeed seem to be a bug in Gtk3/Glib::Object::Introspection.
The problem is with this call to add_custom():

     $filter->add_custom('filename', sub {
         my $ctx = shift;
         return 0 if ((! defined $ctx) || (! defined $ctx->{filename}));
         my $filename = lc($ctx->{filename});
         return ($filename =~ m/.html?$/);
         });

On the C level, this sets up the filter info struct ($ctx in the above)
to only contain a valid filename.  The other fields contain garbage.
But the C -> Perl converter does not know this and tries to access these
other fields anyways, hence the occasional crash.

Workarounds:

* Use $filter->add_custom([qw/filename uri display-name mime-type/],
   sub { ... }) to ensure that all fields contain valid data.

* Simply use something like $filter->add_pattern('*.[hH][tT][mM][lL]?').




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]