Hi,

On Sun, Nov 3, 2013 at 8:39 AM, Adrian Pardini <lis...@tangopardo.com.ar> wrote:
> Hi all, I'm tracing an issue with Clutter.Stage.read_pixels().
> In line 308 of gi/pygi-marshal-to-py.c we do:
>     GIArgument *len_arg = state->args[seq_cache->len_arg_index];
>
> len_arg then points to an invalid location and so the following call
> to gi_argument_to_gsize() segfaults.

This API is basically not binding friendly as it needs to return a
buffer length. The Python bindings should handle this a little better
(raise an exception instead of a segfault). But the API should also be
marked as "skipped" so it is not even accessible.

> Besides checking that len_arg_index is a valid value the annotation
> should be fixed and I'm not sure about how to do that. The size in
> bytes can be computed as 4*(width-x)*(height-y) so perhaps making
> another function that wraps the original and also returns the size is
> the way to go. I'll bring that discussion to the clutter list but I'd
> like to hear your opinions.

A quick search in bugzilla reveals clutter_stage_read_pixels is being
deprecated and clutter_stage_read_pixels_async will replace it. There
are patches on the ticket that look binding friendly and I'm sure the
devs would appreciate some testing and reporting:

https://bugzilla.gnome.org/show_bug.cgi?id=653590

-Simon
_______________________________________________
python-hackers-list mailing list
python-hackers-list@gnome.org
https://mail.gnome.org/mailman/listinfo/python-hackers-list

Reply via email to