Changeset 3764:2a2b1eb426c4 in roaraudio for libroar


Ignore:
Timestamp:
05/03/10 14:30:48 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added new buffer function roar_buffer_new_data() to make common alloc case more easy

Location:
libroar
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • libroar/buffer.c

    r3517 r3764  
    3636#include "libroar.h" 
    3737 
     38// TODO: convert this to a macro. 
     39// TODO: but still provide a function->symbol 
     40// TODO: so we do not need to change SONAME-Version 
     41// TODO: Clean this up in next SONAME-Version 
    3842int roar_buffer_new      (struct roar_buffer ** buf, size_t len) { 
    39  void * data; 
    40  
    41  if ((data = roar_mm_malloc(len)) == NULL) { 
    42   return -1; 
    43  } 
    44  
    45  if ( roar_buffer_new_no_ma(buf, len, data) == -1 ) { 
    46   roar_mm_free(data); 
     43 return roar_buffer_new_data(buf, len, NULL); 
     44} 
     45 
     46int roar_buffer_new_data (struct roar_buffer ** buf, size_t len, void ** data) { 
     47 void * bufdata; 
     48 
     49 if ((bufdata = roar_mm_malloc(len)) == NULL) { 
     50  return -1; 
     51 } 
     52 
     53 if ( roar_buffer_new_no_ma(buf, len, bufdata) == -1 ) { 
     54  roar_mm_free(bufdata); 
    4755  return -1; 
    4856 } 
     
    5058 if ( roar_buffer_set_flag(*buf, ROAR_BUFFER_FLAG_NOFREE, ROAR_BUFFER_RESET) == -1 ) { 
    5159  roar_buffer_free(*buf); 
    52   roar_mm_free(data); 
    53   return -1; 
    54  } 
     60  roar_mm_free(bufdata); 
     61  return -1; 
     62 } 
     63 
     64 if ( data != NULL ) 
     65  *data = bufdata; 
    5566 
    5667 return 0; 
  • libroar/vio_pipe.c

    r3517 r3764  
    326326    } 
    327327 
    328     if ( roar_buffer_new(&next, count) == -1 ) 
    329      return -1; 
    330  
    331     if ( roar_buffer_get_data(next, &data) == -1 ) { 
    332      roar_buffer_free(next); 
    333      return -1; 
    334     } 
     328    if ( roar_buffer_new_data(&next, count, &data) == -1 ) 
     329     return -1; 
    335330 
    336331    memcpy(data, buf, count); 
  • libroar/vio_proto.c

    r3517 r3764  
    274274 calls->write = NULL; // Disable write as we do not support this 
    275275 
    276  if ( roar_buffer_new(&bufbuf, 1024) == -1 ) 
    277   return -1; 
    278  
    279  if ( roar_buffer_get_data(bufbuf, &buf) == -1 ) { 
    280   roar_buffer_free(bufbuf); 
    281   return -1; 
    282  } 
     276 if ( roar_buffer_new_data(&bufbuf, 1024, &buf) == -1 ) 
     277  return -1; 
    283278 
    284279 ROAR_DBG("roar_vio_open_proto_http(calls=%p, dst=%p, host='%s', file='%s') = ?", calls, dst, host, file); 
Note: See TracChangeset for help on using the changeset viewer.