vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Nov 18 16:50:30 2018 +0200| [ce233a82f60053fc8ff6d3321a169635700fd4ee] | committer: Rémi Denis-Courmont
log: refuse to run without a logger > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ce233a82f60053fc8ff6d3321a169635700fd4ee --- src/libvlc.c | 5 +++-- src/libvlc.h | 4 ++-- src/misc/messages.c | 19 ++++--------------- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/src/libvlc.c b/src/libvlc.c index 2c946af84e..93ce67a00d 100644 --- a/src/libvlc.c +++ b/src/libvlc.c @@ -166,11 +166,12 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, char *psz_val; int i_ret = VLC_EGENERIC; + if (unlikely(vlc_LogPreinit(p_libvlc))) + return VLC_ENOMEM; + /* System specific initialization code */ system_Init(); - vlc_LogPreinit(p_libvlc); - /* Initialize the module bank and load the configuration of the * core module. We need to do this at this stage to be able to display * a short help if required by the user. (short help == core module diff --git a/src/libvlc.h b/src/libvlc.h index c8bd7394e3..7fc6934406 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -78,8 +78,8 @@ void vlc_mutex_unmark(const vlc_mutex_t *); */ typedef struct vlc_logger_t vlc_logger_t; -int vlc_LogPreinit(libvlc_int_t *); -int vlc_LogInit(libvlc_int_t *); +int vlc_LogPreinit(libvlc_int_t *) VLC_USED; +void vlc_LogInit(libvlc_int_t *); void vlc_LogDeinit(libvlc_int_t *); /* diff --git a/src/misc/messages.c b/src/misc/messages.c index 65194f4217..722713a312 100644 --- a/src/misc/messages.c +++ b/src/misc/messages.c @@ -354,17 +354,16 @@ static void vlc_LogSwitch(libvlc_int_t *vlc, int vlc_LogPreinit(libvlc_int_t *vlc) { vlc_logger_t *logger = vlc_custom_create(vlc, sizeof (*logger), "logger"); - - libvlc_priv(vlc)->logger = logger; - if (unlikely(logger == NULL)) return -1; + libvlc_priv(vlc)->logger = logger; vlc_rwlock_init(&logger->lock); + logger->ops = &discard_ops; if (vlc_LogEarlyOpen(logger)) { - logger->ops = &discard_ops; + vlc_LogDeinit(vlc); return -1; } @@ -379,25 +378,19 @@ int vlc_LogPreinit(libvlc_int_t *vlc) /** * Initializes the messages logging subsystem and drain the early messages to * the configured log. - * - * \return 0 on success, -1 on error. */ -int vlc_LogInit(libvlc_int_t *vlc) +void vlc_LogInit(libvlc_int_t *vlc) { vlc_logger_t *logger = libvlc_priv(vlc)->logger; const struct vlc_logger_operations *ops; void *opaque; - if (unlikely(logger == NULL)) - return -1; - /* TODO: module configuration item */ if (vlc_module_load(logger, "logger", NULL, false, vlc_logger_load, logger, &ops, &opaque) == NULL) ops = NULL; vlc_LogSwitch(vlc, ops, opaque); - return 0; } /** @@ -421,13 +414,9 @@ void vlc_LogDeinit(libvlc_int_t *vlc) { vlc_logger_t *logger = libvlc_priv(vlc)->logger; - if (unlikely(logger == NULL)) - return; - if (logger->ops->destroy != NULL) logger->ops->destroy(logger->sys); vlc_rwlock_destroy(&logger->lock); vlc_object_release(logger); - libvlc_priv(vlc)->logger = NULL; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
