[vlc-devel] [RFC 36/38] stream_out/mosaic_bridge: replaced usage of x{realloc, malloc}

Filip Roséen filip at videolabs.io
Mon Jun 27 13:43:47 CEST 2016


also removed useless temporary variable and replaced code responsible
for setting the mosaic-bridge variable with a single call to
var_SetAddress.
---
 modules/stream_out/mosaic_bridge.c | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/modules/stream_out/mosaic_bridge.c b/modules/stream_out/mosaic_bridge.c
index 9a95464..39c038c 100644
--- a/modules/stream_out/mosaic_bridge.c
+++ b/modules/stream_out/mosaic_bridge.c
@@ -328,14 +328,13 @@ static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, const es_format_t *p
     p_bridge = GetBridge( p_stream );
     if ( p_bridge == NULL )
     {
-        vlc_object_t *p_libvlc = VLC_OBJECT( p_stream->obj.libvlc );
-        vlc_value_t val;
+        p_bridge = malloc( sizeof( bridge_t ) );
 
-        p_bridge = xmalloc( sizeof( bridge_t ) );
+        if( unlikely( !p_bridge ) )
+            return NULL;
 
-        var_Create( p_libvlc, "mosaic-struct", VLC_VAR_ADDRESS );
-        val.p_address = p_bridge;
-        var_Set( p_libvlc, "mosaic-struct", val );
+        var_Create( p_stream->obj.libvlc, "mosaic-struct", VLC_VAR_ADDRESS );
+        var_SetAddress( p_stream->obj.libvlc, "mosaic-struct", p_bridge );
 
         p_bridge->i_es_num = 0;
         p_bridge->pp_es = NULL;
@@ -349,10 +348,18 @@ static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, const es_format_t *p
 
     if ( i == p_bridge->i_es_num )
     {
-        p_bridge->pp_es = xrealloc( p_bridge->pp_es,
+        bridged_es_t ** pp_es_new = realloc( p_bridge->pp_es,
                           (p_bridge->i_es_num + 1) * sizeof(bridged_es_t *) );
+
+        if( unlikely( !pp_es_new ) )
+            return NULL;
+
+        p_bridge->pp_es[i] = malloc( sizeof(bridged_es_t) );
+
+        if( unlikely( !p_bridge->pp_es[i] ) )
+            return NULL;
+
         p_bridge->i_es_num++;
-        p_bridge->pp_es[i] = xmalloc( sizeof(bridged_es_t) );
     }
 
     p_sys->p_es = p_es = p_bridge->pp_es[i];
-- 
2.9.0



More information about the vlc-devel mailing list