struct libvlc_log_t
{
- const libvlc_instance_t *p_instance;
+ libvlc_instance_t *p_instance;
msg_subscription_t *p_messages;
};
RAISEVOID("Invalid VLC instance!");
}
-libvlc_log_t *libvlc_log_open( const libvlc_instance_t *p_instance, libvlc_exception_t *p_e )
+libvlc_log_t *libvlc_log_open( libvlc_instance_t *p_instance, libvlc_exception_t *p_e )
{
-
struct libvlc_log_t *p_log =
(struct libvlc_log_t *)malloc(sizeof(struct libvlc_log_t));
p_log->p_instance = p_instance;
p_log->p_messages = msg_Subscribe(p_instance->p_libvlc_int, MSG_QUEUE_NORMAL);
- if( !p_log->p_messages ) RAISENULL( "Out of memory" );
+ if( !p_log->p_messages )
+ {
+ free( p_log );
+ RAISENULL( "Out of memory" );
+ }
+ libvlc_retain( p_instance );
return p_log;
}
if( p_log && p_log->p_messages )
{
msg_Unsubscribe(p_log->p_instance->p_libvlc_int, p_log->p_messages);
+ libvlc_release( p_log->p_instance, p_e );
free(p_log);
}
else