Skip to content

Commit f36f415

Browse files
committed
dialog: change dialog_provider init/deinit functions
In order to behave like libvlc_Internal* functions.
1 parent 144ebc4 commit f36f415

File tree

3 files changed

+16
-13
lines changed

3 files changed

+16
-13
lines changed

include/vlc_dialog.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ typedef struct vlc_dialog_id vlc_dialog_id;
2828
typedef struct extension_dialog_t extension_dialog_t;
2929

3030
/* Called from src/libvlc.c */
31-
vlc_dialog_provider *
32-
vlc_dialog_provider_new(void);
31+
int
32+
libvlc_dialog_provider_init(libvlc_int_t *p_libvlc);
3333

3434
/* Called from src/libvlc.c */
3535
void
36-
vlc_dialog_provider_release(vlc_dialog_provider *p_provider);
36+
libvlc_dialog_provider_deinit(libvlc_int_t *p_libvlc);
3737

3838
/**
3939
* @defgroup vlc_dialog VLC dialog

src/interface/dialog.c

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -145,12 +145,13 @@ dialog_id_release(vlc_dialog_id *p_id)
145145
free(p_id);
146146
}
147147

148-
vlc_dialog_provider *
149-
vlc_dialog_provider_new(void)
148+
int
149+
libvlc_dialog_provider_init(libvlc_int_t *p_libvlc)
150150
{
151+
assert(p_libvlc != NULL);
151152
vlc_dialog_provider *p_provider = malloc(sizeof(*p_provider));
152-
if( p_provider == NULL )
153-
return NULL;
153+
if (p_provider == NULL)
154+
return VLC_EGENERIC;
154155

155156
vlc_mutex_init(&p_provider->lock);
156157
vlc_array_init(&p_provider->dialog_array);
@@ -160,8 +161,9 @@ vlc_dialog_provider_new(void)
160161

161162
p_provider->pf_ext_update = NULL;
162163
p_provider->p_ext_data = NULL;
164+
libvlc_priv(p_libvlc)->p_dialog_provider = p_provider;
163165

164-
return p_provider;
166+
return VLC_SUCCESS;
165167
}
166168

167169
static int
@@ -239,16 +241,18 @@ dialog_clear_all_locked(vlc_dialog_provider *p_provider)
239241
}
240242

241243
void
242-
vlc_dialog_provider_release(vlc_dialog_provider *p_provider)
244+
libvlc_dialog_provider_deinit(libvlc_int_t *p_libvlc)
243245
{
244-
assert(p_provider != NULL);
246+
assert(p_libvlc != NULL);
247+
vlc_dialog_provider *p_provider = libvlc_priv(p_libvlc)->p_dialog_provider;
245248

246249
vlc_mutex_lock(&p_provider->lock);
247250
dialog_clear_all_locked(p_provider);
248251
vlc_mutex_unlock(&p_provider->lock);
249252

250253
vlc_mutex_destroy(&p_provider->lock);
251254
free(p_provider);
255+
libvlc_priv(p_libvlc)->p_dialog_provider = NULL;
252256
}
253257

254258
#undef vlc_dialog_provider_set_callbacks

src/libvlc.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
235235
}
236236
#endif
237237

238-
priv->p_dialog_provider = vlc_dialog_provider_new();
239-
if( priv->p_dialog_provider == NULL )
238+
if( libvlc_dialog_provider_init( p_libvlc ) != VLC_SUCCESS )
240239
{
241240
vlc_LogDeinit (p_libvlc);
242241
module_EndBank (true);
@@ -511,7 +510,7 @@ void libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
511510
libvlc_Quit( p_libvlc );
512511
intf_DestroyAll( p_libvlc );
513512

514-
vlc_dialog_provider_release( priv->p_dialog_provider );
513+
libvlc_dialog_provider_deinit( p_libvlc );
515514

516515
#ifdef ENABLE_VLM
517516
/* Destroy VLM if created in libvlc_InternalInit */

0 commit comments

Comments
 (0)