message: Work around g-i/pygobject/gjs bug with ~0 in enums
authorSebastian Dröge <sebastian@centricular.com>
Thu, 3 Jul 2014 08:11:02 +0000 (10:11 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 3 Jul 2014 08:13:28 +0000 (10:13 +0200)
GST_MESSAGE_ANY was considered a long by pygobject and gjs, and thus
couldn't be used in gst_bus_poll() and similar APIs as they expect an
int-typed enum.

Just use 0xffffffff instead for now.

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

gst/gstmessage.h

index 7d4282e..fc5a7d8 100644 (file)
@@ -116,6 +116,9 @@ typedef struct _GstMessage GstMessage;
  * NOTE: keep GST_MESSAGE_ANY a valid gint to avoid compiler warnings.
  */
 /* FIXME: 2.0: Make it NOT flags, just a regular 1,2,3,4.. enumeration */
+/* FIXME: For GST_MESSAGE_ANY ~0 -> 0xffffffff see
+ *        https://bugzilla.gnome.org/show_bug.cgi?id=732633
+ */
 typedef enum
 {
   GST_MESSAGE_UNKNOWN           = 0,
@@ -153,7 +156,7 @@ typedef enum
   GST_MESSAGE_EXTENDED          = (1 << 31),
   GST_MESSAGE_DEVICE_ADDED      = GST_MESSAGE_EXTENDED + 1,
   GST_MESSAGE_DEVICE_REMOVED    = GST_MESSAGE_EXTENDED + 2,
-  GST_MESSAGE_ANY               = ~0
+  GST_MESSAGE_ANY               = (gint) (0xffffffff)
 } GstMessageType;
 
 #include <gst/gstminiobject.h>