Hi, Just had a quick look. So when pygobject encounters a zero terminated array, it assumes that it is a list of pointers. In this case it is a list of gint instead, so on a 64bit machine the length calculation is against a 64bit word, while the data is only 32bit. It is a binding bug, to be more specific in pygi-argument.c line 815, AFAICT. Instead, the correct item-size needs to be used for the check there. Benjamin On Fr, 2014-04-04 at 00:02 +0200, Jay Strict wrote:
============================================================ from gi.repository import Gtk theme = Gtk.IconTheme.get_default() for i in range(20): sizes = theme.get_icon_sizes('application-exit') print(sizes) ============================================================ results in the following (undeterministic) output: ============================================================ [22, 16, 24, 32, 48, 0, 81, 0, 1920169263, 1634235183, 1764713842, 1936617315, 1869506351, 1932485997, 1634492771, 795176034, 1702125923, 1769107303, 1946186597, 1936617321, 909455916, 909455992, 1886413103] [22, 16, 24] [22, 16, 24] [22, 16, 24] [22, 16, 24] [22, 16, 24] [22, 16, 24, 32, 48, 0, 33, 0, -1686329720, 32747, -1686329720, 32747, 32, 0, 288, 0, 11155184, 0, 11322344, 0, -3, -1, 10972016, 0, 150, 0, -1680381472, 32747] [22, 16, 24, 32, 48, 0, 289, 0, 11155184, 0, 11322344, 0, -3, -1, 10972016, 0, 150, 0, -1680381472, 32747, 73, 0, 73, 0] [22, 16, 24, 32, 48, 0, 33, 0, -1686329736] [22, 16, 24, 32, 48] [22, 16, 24, 32, 48, 0] [22, 16, 24] [22, 16, 24, 32, 48] [22, 16, 24, 32, 48, 0, 33, 0, 22] [22, 16, 24, 32, 48, 0, 33, 0, -1686329736] [22, 16, 24, 32, 48] [22, 16, 24, 32, 48, 0, 33, 0] [22, 16, 24, 32] [22, 16, 24, 32, 48, 0, 33, 0, -1686329720, 32747, -1686329720, 32747] [22, 16, 24, 32, 48, 0, 49, 0] ============================================================ Can you confirm this? Is it a bug in PyGObject? Best regards, Jay _______________________________________________ python-hackers-list mailing list python-hackers-list gnome org https://mail.gnome.org/mailman/listinfo/python-hackers-list
Attachment:
signature.asc
Description: This is a digitally signed message part