[vlc-devel] [PATCH 4/6] modules: remove vlc_module_unload() inconvenience wrapper

RĂ©mi Denis-Courmont remi at remlab.net
Wed Jul 24 21:38:37 CEST 2019


---
 include/vlc_modules.h | 17 -----------------
 include/vlc_objects.h |  5 ++---
 src/libvlccore.sym    |  1 -
 src/modules/modules.c | 13 -------------
 4 files changed, 2 insertions(+), 34 deletions(-)

diff --git a/include/vlc_modules.h b/include/vlc_modules.h
index d0115a7ede..430863953c 100644
--- a/include/vlc_modules.h
+++ b/include/vlc_modules.h
@@ -29,7 +29,6 @@
  */
 
 typedef int (*vlc_activate_t)(void *func, bool forced, va_list args);
-typedef void (*vlc_deactivate_t)(void *func, va_list args);
 struct vlc_logger;
 
 /*****************************************************************************
@@ -71,22 +70,6 @@ VLC_API module_t *vlc_module_load(struct vlc_logger *log, const char *cap,
                             name, strict, __VA_ARGS__))
 #endif
 
-/**
- * Deinstantiates a module.
- *
- * This is an inconvenience wrapper for deactivating a module if the module
- * capability/type expects it. In that fashion, it is paired with
- * vlc_module_load(). It is rather inconvenient however, as it requires
- * variable arguments for no good reasons, and inhibits type safety.
- *
- * In practice, it is easier to treat vlc_module_load() as an object "factory",
- * and define a type-safe custom callback for object deletion.
- *
- * \param module the module pointer as returned by vlc_module_load()
- * \param deinit deactivation callback
- */
-VLC_API void vlc_module_unload(module_t *, vlc_deactivate_t deinit, ... );
-
 VLC_API module_t * module_need( vlc_object_t *, const char *, const char *, bool ) VLC_USED;
 #define module_need(a,b,c,d) module_need(VLC_OBJECT(a),b,c,d)
 
diff --git a/include/vlc_objects.h b/include/vlc_objects.h
index eaecdaa33b..0c9e055034 100644
--- a/include/vlc_objects.h
+++ b/include/vlc_objects.h
@@ -231,9 +231,8 @@ static inline void vlc_object_release(vlc_object_t *o)
  * when the module instance associated with the VLC object is terminated.
  *
  * Specifically, if the module instance activation/probe function fails, the
- * resource will be freed immediately after the failure within
- * vlc_module_load(). If the activation succeeds, the resource will be freed
- * when the module instance is terminated with vlc_module_unload().
+ * resource will be freed immediately after the failure. If the activation
+ * succeeds, the resource will be freed when the module instance is terminated.
  *
  * This is a convenience mechanism to save explicit clean-up function calls
  * in modules.
diff --git a/src/libvlccore.sym b/src/libvlccore.sym
index 662ad6d3d3..c3f7dbbd1f 100644
--- a/src/libvlccore.sym
+++ b/src/libvlccore.sym
@@ -258,7 +258,6 @@ module_need
 module_provides
 module_unneed
 vlc_module_load
-vlc_module_unload
 vlc_memstream_open
 vlc_memstream_flush
 vlc_memstream_close
diff --git a/src/modules/modules.c b/src/modules/modules.c
index c8c19b1fd2..ac72e0fb26 100644
--- a/src/modules/modules.c
+++ b/src/modules/modules.c
@@ -235,19 +235,6 @@ done:
     return module;
 }
 
-void vlc_module_unload(module_t *module, vlc_deactivate_t deinit, ...)
-{
-    if (module->pf_deactivate != NULL)
-    {
-        va_list ap;
-
-        va_start(ap, deinit);
-        deinit(module->pf_deactivate, ap);
-        va_end(ap);
-    }
-}
-
-
 static int generic_start(void *func, bool forced, va_list ap)
 {
     vlc_object_t *obj = va_arg(ap, vlc_object_t *);
-- 
2.22.0



More information about the vlc-devel mailing list