int i_type; /**< message type, see below */
uintptr_t i_object_id;
const char *psz_object_type;
- char * psz_module;
+ const char *psz_module;
+ const char *psz_header; /**< Additional header */
char * psz_msg; /**< the message itself */
- char * psz_header; /**< Additional header */
} msg_item_t;
/* Message types */
copy->psz_object_type = msg->psz_object_type;
copy->psz_module = strdup (msg->psz_module);
copy->psz_msg = strdup (msg->psz_msg);
- copy->psz_header = strdup (msg->psz_header);
+ copy->psz_header = msg->psz_header ? strdup (msg->psz_header) : NULL;
return copy;
}
static inline void msg_Free (msg_item_t *msg)
{
- free (msg->psz_module);
+ free ((char *)msg->psz_module);
+ free ((char *)msg->psz_header);
free (msg->psz_msg);
- free (msg->psz_header);
free (msg);
}
* Message logging callback signature.
* Accepts one private data pointer, the message, and an overrun counter.
*/
-typedef void (*msg_callback_t) (msg_cb_data_t *, msg_item_t *, unsigned);
+typedef void (*msg_callback_t) (msg_cb_data_t *, const msg_item_t *);
VLC_API msg_subscription_t* msg_Subscribe( libvlc_int_t *, msg_callback_t, msg_cb_data_t * ) VLC_USED;
VLC_API void msg_Unsubscribe( msg_subscription_t * );