]> git.sesse.net Git - vlc/blobdiff - src/misc/block.c
* all: improved perfs (using block_ChainLastAppend).
[vlc] / src / misc / block.c
index 87cdd142b44930221d62650cc38c01599806e41a..d6c56bf943ab4a1bb77872e7abffa7b160bb01cf 100644 (file)
@@ -239,7 +239,6 @@ block_t *__block_New( vlc_object_t *p_obj, int i_size )
 
 void block_ChainAppend( block_t **pp_list, block_t *p_block )
 {
-
     if( *pp_list == NULL )
     {
         *pp_list = p_block;
@@ -256,6 +255,18 @@ void block_ChainAppend( block_t **pp_list, block_t *p_block )
     }
 }
 
+void block_ChainLastAppend( block_t ***ppp_last, block_t *p_block  )
+{
+    block_t *p_last = p_block;
+
+    /* Append the block */
+    **ppp_last = p_block;
+
+    /* Update last pointer */
+    while( p_last->p_next ) p_last = p_last->p_next;
+    *ppp_last = &p_last->p_next;
+}
+
 void block_ChainRelease( block_t *p_block )
 {
     while( p_block )