mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	ringbuffer: small optimization
This commit is contained in:
		
							parent
							
								
									63d060a63e
								
							
						
					
					
						commit
						edb21a0ff8
					
				
					 1 changed files with 8 additions and 12 deletions
				
			
		| 
						 | 
					@ -126,12 +126,10 @@ spa_ringbuffer_read_data (SpaRingbuffer      *rbuf,
 | 
				
			||||||
                          void               *data,
 | 
					                          void               *data,
 | 
				
			||||||
                          uint32_t            len)
 | 
					                          uint32_t            len)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (SPA_LIKELY (offset + len < rbuf->size)) {
 | 
					  uint32_t first = SPA_MIN (len, rbuf->size - offset);
 | 
				
			||||||
    memcpy (data, buffer + offset, len);
 | 
					  memcpy (data, buffer + offset, first);
 | 
				
			||||||
  } else {
 | 
					  if (SPA_UNLIKELY (len > first)) {
 | 
				
			||||||
    uint32_t l0 = rbuf->size - offset;
 | 
					    memcpy (data + first, buffer, len - first);
 | 
				
			||||||
    memcpy (data, buffer + offset, l0);
 | 
					 | 
				
			||||||
    memcpy (data + l0, buffer, len - l0);
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -179,12 +177,10 @@ spa_ringbuffer_write_data (SpaRingbuffer      *rbuf,
 | 
				
			||||||
                           void               *data,
 | 
					                           void               *data,
 | 
				
			||||||
                           uint32_t            len)
 | 
					                           uint32_t            len)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (SPA_LIKELY (offset + len < rbuf->size)) {
 | 
					  uint32_t first = SPA_MIN (len, rbuf->size - offset);
 | 
				
			||||||
    memcpy (buffer + offset, data, len);
 | 
					  memcpy (buffer + offset, data, first);
 | 
				
			||||||
  } else {
 | 
					  if (SPA_UNLIKELY (len > first)) {
 | 
				
			||||||
    uint32_t l0 = rbuf->size - offset;
 | 
					    memcpy (buffer, data + first, len - first);
 | 
				
			||||||
    memcpy (buffer + offset, data, l0);
 | 
					 | 
				
			||||||
    memcpy (buffer, data + l0, len - l0);
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue