2005-07-20 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
+ * gst/gstinfo.c: (_gst_debug_nameof_funcptr),
+ (_gst_debug_register_funcptr):
+ * gst/gstinfo.h:
+ Fix illegal cast on some platforms (#309253).
+
+2005-07-20 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
+
* gst/gstmessage.c: (gst_message_new_custom):
* gst/gstmessage.h:
Add _new_custom, make _new_application a macro to _new_custom.
GHashTable *__gst_function_pointers = NULL;
const gchar *
-_gst_debug_nameof_funcptr (void *ptr)
+_gst_debug_nameof_funcptr (GstDebugFuncPtr ptr)
G_GNUC_NO_INSTRUMENT;
/* This function MUST NOT return NULL */
- const gchar *_gst_debug_nameof_funcptr (void *ptr)
+ const gchar *_gst_debug_nameof_funcptr (GstDebugFuncPtr func)
{
+ gpointer ptr = (gpointer) func;
gchar *ptrname;
#ifdef HAVE_DLADDR
}
}
-void *
-_gst_debug_register_funcptr (void *ptr, gchar * ptrname)
+void
+_gst_debug_register_funcptr (GstDebugFuncPtr func, gchar * ptrname)
{
+ gpointer ptr = (gpointer) func;
+
if (!__gst_function_pointers)
__gst_function_pointers = g_hash_table_new (g_direct_hash, g_direct_equal);
if (!g_hash_table_lookup (__gst_function_pointers, ptr))
g_hash_table_insert (__gst_function_pointers, ptr, ptrname);
-
- return ptr;
}
#ifdef HAVE_PRINTF_EXTENSION
/********** function pointer stuff **********/
-void * _gst_debug_register_funcptr (void * ptr,
+typedef void (* GstDebugFuncPtr) (void);
+void _gst_debug_register_funcptr (GstDebugFuncPtr func,
gchar * ptrname);
G_CONST_RETURN gchar *
- _gst_debug_nameof_funcptr (void * ptr);
+ _gst_debug_nameof_funcptr (GstDebugFuncPtr func);
-#define GST_DEBUG_FUNCPTR(ptr) (_gst_debug_register_funcptr((void *)(ptr), #ptr) , ptr)
-#define GST_DEBUG_FUNCPTR_NAME(ptr) _gst_debug_nameof_funcptr((void *)ptr)
+#define GST_DEBUG_FUNCPTR(ptr) \
+ (_gst_debug_register_funcptr((GstDebugFuncPtr)(ptr), #ptr) , ptr)
+#define GST_DEBUG_FUNCPTR_NAME(ptr) \
+ _gst_debug_nameof_funcptr((GstDebugFuncPtr)ptr)
#else /* GST_DISABLE_GST_DEBUG */