I wonder why it was there in the first place.
#define DIALOG_INIT( type, err ) \
interaction_dialog_t* p_new = calloc( 1, sizeof( interaction_dialog_t ) ); \
if( !p_new ) return err; \
#define DIALOG_INIT( type, err ) \
interaction_dialog_t* p_new = calloc( 1, sizeof( interaction_dialog_t ) ); \
if( !p_new ) return err; \
+ p_new->p_parent = vlc_object_hold( p_this ); \
p_new->b_cancelled = false; \
p_new->i_status = NEW_DIALOG; \
p_new->i_flags = 0; \
p_new->b_cancelled = false; \
p_new->i_status = NEW_DIALOG; \
p_new->i_flags = 0; \
free( p_dialog->psz_default_button );
free( p_dialog->psz_alternate_button );
free( p_dialog->psz_other_button );
free( p_dialog->psz_default_button );
free( p_dialog->psz_alternate_button );
free( p_dialog->psz_other_button );
+ vlc_object_release( p_dialog->p_parent );