[vlc-commits] log: factor some common code

Rémi Denis-Courmont git at videolan.org
Sun Nov 18 16:57:43 CET 2018


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun Nov 18 17:49:37 2018 +0200| [afcb942c239ba39d7e18168585967308ebeeb22f] | committer: Rémi Denis-Courmont

log: factor some common code

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=afcb942c239ba39d7e18168585967308ebeeb22f
---

 src/misc/messages.c | 31 +++++++++++--------------------
 1 file changed, 11 insertions(+), 20 deletions(-)

diff --git a/src/misc/messages.c b/src/misc/messages.c
index 722713a312..4b3e8df286 100644
--- a/src/misc/messages.c
+++ b/src/misc/messages.c
@@ -276,21 +276,20 @@ static const struct vlc_logger_operations early_ops = {
     vlc_LogEarlyClose,
 };
 
-static int vlc_LogEarlyOpen(vlc_logger_t *logger)
+static
+const struct vlc_logger_operations *vlc_LogEarlyOpen(vlc_logger_t *logger,
+                                                     void **restrict sysp)
 {
     vlc_logger_early_t *sys = malloc(sizeof (*sys));
-
     if (unlikely(sys == NULL))
-        return -1;
+        return NULL;
 
     vlc_mutex_init(&sys->lock);
     sys->head = NULL;
     sys->tailp = &sys->head;
     sys->sink = logger;
-
-    logger->ops = &early_ops;
-    logger->sys = sys;
-    return 0;
+    *sysp = sys;
+    return &early_ops;
 }
 
 static void vlc_vaLogDiscard(void *d, int type, const vlc_log_t *item,
@@ -361,17 +360,11 @@ int vlc_LogPreinit(libvlc_int_t *vlc)
     vlc_rwlock_init(&logger->lock);
     logger->ops = &discard_ops;
 
-    if (vlc_LogEarlyOpen(logger))
-    {
-        vlc_LogDeinit(vlc);
-        return -1;
-    }
+    const struct vlc_logger_operations *ops;
+    void *opaque;
 
-    /* Announce who we are */
-    msg_Dbg(vlc, "VLC media player - %s", VERSION_MESSAGE);
-    msg_Dbg(vlc, "%s", COPYRIGHT_MESSAGE);
-    msg_Dbg(vlc, "revision %s", psz_vlc_changeset);
-    msg_Dbg(vlc, "configured with %s", CONFIGURE_LINE);
+    ops = vlc_LogEarlyOpen(logger, &opaque);
+    vlc_LogSet(vlc, ops, opaque);
     return 0;
 }
 
@@ -414,9 +407,7 @@ void vlc_LogDeinit(libvlc_int_t *vlc)
 {
     vlc_logger_t *logger = libvlc_priv(vlc)->logger;
 
-    if (logger->ops->destroy != NULL)
-        logger->ops->destroy(logger->sys);
-
+    vlc_LogSwitch(vlc, NULL, NULL);
     vlc_rwlock_destroy(&logger->lock);
     vlc_object_release(logger);
 }



More information about the vlc-commits mailing list