Branch: Tag:

2014-09-08

2014-09-08 14:13:11 by Per Hedbor <ph@opera.com>

IOBuffer: Cleanup of some code.

141:    return 0;    }    -  static void io_unstash_malloc( IOBuffer *io ) +  static int io_unstash_malloc( IOBuffer *io )    { -  if( LIKELY(io->malloced || !io->stash.ptr) ) -  return; +  if( LIKELY(!io->stash.ptr) ) +  return 0;       if( io->stash.len >= io_len( io ) )    { -  +  if( io_len(io) ) +  { +  /* do not count this one, since it comes from add and would +  * have been a copy normally. +  */    memcpy( io->stash.ptr, io_read_pointer( io ), io_len(io) ); -  +  }    io->buffer = io->stash.ptr;    io->len = io_len(io);    io->offset = 0;
159:    free( io->stash.ptr );    io->stash.ptr = 0;    io->stash.len = 0; +  return io->malloced;    }       static void io_stash_malloc( IOBuffer *io )
179:    {    /* convert to malloced buffer from a shared one. */    unsigned char *old = io->buffer; +  if( !io_unstash_malloc(io) ) +  {    io->buffer = xalloc( io->len + bytes + 100 );    io->allocated = io->len + bytes + 100;    io->num_malloc++; -  io->num_move++; +     memcpy( io->buffer, old, io->len );    if( io->sub ) {    io_unlock( get_storage(io->sub,IOBuffer_program ) );
196:    io->malloced = 1;    }    } +  }       static unsigned char *io_add_space( IOBuffer *io, int bytes, int force )    {    io_ensure_unlocked(io); -  io_unstash_malloc(io); +     io_ensure_malloced(io, bytes);       /*
240:    {    if( io->len == io->offset )    io->offset = io->len = 0; -  if( UNLIKELY((force && io->offset) || (io->offset > io->len>>1)) ) +  else if( UNLIKELY((force && io->offset) || (io->offset > io->len>>1)) )    {    memmove( io->buffer, io_read_pointer(io), io_len(io) );    io->num_move++;
379:    SET_ONERROR( (*x), io_do_unwrite_on_error, rew );    }    -  static void io_unset_unwrite_on_error( IOBuffer *io, ONERROR *x ) +  static void io_unset_unwrite_on_error( IOBuffer *UNUSED(io), ONERROR *x )    {    UNSET_ONERROR( (*x) );    free( x->arg );
755:    if( (src.io = get_storage(x, IOBuffer_program)) )    {    io_append( io, io_read_pointer(src.io), io_len(src.io) ); -  io_consume( src.io, io_len(src.io) ); +  /* io_consume( src.io, io_len(src.io) );*/    }    else if( (src.b = string_buffer( x )) )    {