[vlc-commits] [Git][videolan/vlc][master] 2 commits: vlc_objects: use VLC_OBJECT for vlc_obj_* allocators

Jean-Baptiste Kempf (@jbk) gitlab at videolan.org
Tue Apr 26 07:31:24 UTC 2022



Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
7c522186 by Alexandre Janniaux at 2022-04-26T07:12:26+00:00
vlc_objects: use VLC_OBJECT for vlc_obj_* allocators

- - - - -
d28034f6 by Alexandre Janniaux at 2022-04-26T07:12:26+00:00
vlc_objects: add VLC_OBJECT macro for vlc_object_release

- - - - -


2 changed files:

- include/vlc_objects.h
- src/misc/objres.c


Changes:

=====================================
include/vlc_objects.h
=====================================
@@ -205,6 +205,7 @@ static inline void vlc_object_release(vlc_object_t *o)
     if (!strcmp(tn, "video output"))
         vout_Release((vout_thread_t *)o);
 }
+#define vlc_object_release(o) vlc_object_release(VLC_OBJECT(o))
 
 /**
  * @defgroup objres Object resources
@@ -236,6 +237,7 @@ static inline void vlc_object_release(vlc_object_t *o)
  * @return a pointer to the allocated memory, or NULL on error (errno is set).
  */
 VLC_API VLC_MALLOC void *vlc_obj_malloc(vlc_object_t *obj, size_t size);
+#define vlc_obj_malloc(o, s) vlc_obj_malloc(VLC_OBJECT(o), s)
 
 /**
  * Allocates a zero-initialized table for a module.
@@ -251,6 +253,7 @@ VLC_API VLC_MALLOC void *vlc_obj_malloc(vlc_object_t *obj, size_t size);
  */
 VLC_API VLC_MALLOC void *vlc_obj_calloc(vlc_object_t *obj, size_t nmemb,
                                         size_t size);
+#define vlc_obj_calloc(o, n, s) vlc_obj_calloc(VLC_OBJECT(o), n, s)
 
 /**
  * Duplicates a string for a module.
@@ -264,6 +267,7 @@ VLC_API VLC_MALLOC void *vlc_obj_calloc(vlc_object_t *obj, size_t nmemb,
  * @return a pointer to the copy, or NULL on error (errno is set).
  */
 VLC_API VLC_MALLOC char *vlc_obj_strdup(vlc_object_t *obj, const char *str);
+#define vlc_obj_strdup(o, s) vlc_obj_strdup(VLC_OBJECT(o), s)
 
 /**
  * Manually frees module memory.
@@ -276,6 +280,7 @@ VLC_API VLC_MALLOC char *vlc_obj_strdup(vlc_object_t *obj, const char *str);
  * @param ptr pointer to the allocated resource
  */
 VLC_API void vlc_obj_free(vlc_object_t *obj, void *ptr);
+#define vlc_obj_free(o, p) vlc_obj_free(VLC_OBJECT(o), p)
 
 #ifdef __cplusplus
 } /* extern "C" */


=====================================
src/misc/objres.c
=====================================
@@ -134,7 +134,7 @@ static bool ptrcmp(void *a, void *b)
     return a == b;
 }
 
-void *vlc_obj_malloc(vlc_object_t *obj, size_t size)
+void *(vlc_obj_malloc)(vlc_object_t *obj, size_t size)
 {
     void *ptr = vlc_objres_new(size, dummy_release);
     if (likely(ptr != NULL))
@@ -142,7 +142,7 @@ void *vlc_obj_malloc(vlc_object_t *obj, size_t size)
     return ptr;
 }
 
-void *vlc_obj_calloc(vlc_object_t *obj, size_t nmemb, size_t size)
+void *(vlc_obj_calloc)(vlc_object_t *obj, size_t nmemb, size_t size)
 {
     size_t tabsize;
     if (unlikely(mul_overflow(nmemb, size, &tabsize)))
@@ -165,12 +165,12 @@ static void *vlc_obj_memdup(vlc_object_t *obj, const void *base, size_t len)
     return ptr;
 }
 
-char *vlc_obj_strdup(vlc_object_t *obj, const char *str)
+char *(vlc_obj_strdup)(vlc_object_t *obj, const char *str)
 {
     return vlc_obj_memdup(obj, str, strlen(str) + 1);
 }
 
-void vlc_obj_free(vlc_object_t *obj, void *ptr)
+void (vlc_obj_free)(vlc_object_t *obj, void *ptr)
 {
     vlc_objres_remove(obj, ptr, ptrcmp);
 }



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/5b4e2addae1184228c08807ad2593c0ea946bd47...d28034f6aedb19531f7ebdca6aef6c3a17156634

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/5b4e2addae1184228c08807ad2593c0ea946bd47...d28034f6aedb19531f7ebdca6aef6c3a17156634
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list