Fixed crash in VALID_MAGIC with NULL object
authorPhilip Chimento <philip.chimento@gmail.com>
Sun, 28 Aug 2011 04:34:10 +0000 (06:34 +0200)
committerPhilip Chimento <philip.chimento@gmail.com>
Sun, 28 Aug 2011 04:41:56 +0000 (06:41 +0200)
libchimara/magic.h

index 406b570abfe99aeab12fbdbbf37e3defe35c6e4b..3f77d8de7be36eb78b9276f80e7f01f3b076bec0 100644 (file)
@@ -15,9 +15,9 @@ G_GNUC_INTERNAL gboolean magic_is_valid_or_null(const glui32 goodmagic, const gl
 G_GNUC_INTERNAL gboolean magic_is_valid(const void *obj, const glui32 goodmagic, const glui32 realmagic, const gchar *function);
 
 #define VALID_MAGIC(obj, goodmagic, die) \
-       if( !magic_is_valid(obj, goodmagic, obj->magic, G_STRFUNC) ) die
+       if( !magic_is_valid((obj), (goodmagic), (obj)? (obj)->magic : 0, G_STRFUNC) ) die
 #define VALID_MAGIC_OR_NULL(obj, goodmagic, die) \
-       if( !magic_is_valid_or_null(goodmagic, obj? obj->magic : MAGIC_NULL, G_STRFUNC) ) die
+       if( !magic_is_valid_or_null((goodmagic), (obj)? (obj)->magic : MAGIC_NULL, G_STRFUNC) ) die
 
 #define VALID_WINDOW(o, d)           VALID_MAGIC(o, MAGIC_WINDOW, d)
 #define VALID_WINDOW_OR_NULL(o, d)   VALID_MAGIC_OR_NULL(o, MAGIC_WINDOW, d)