pike.git / src / modules / _Stdio / buffer.cmod

version» Context lines:

pike.git/src/modules/_Stdio/buffer.cmod:122:       static void io_ensure_unlocked(Buffer *io)    {    if( io->locked )    io_was_locked( );    }       PMOD_EXPORT void io_trim( Buffer *io )    ATTRIBUTE((noinline));    +  static void io_trim_waste( Buffer *io ) +  { +  if( UNLIKELY(io->allocated > (io_len(io) * (1.0+io->max_waste))) ) +  io_trim(io); +  } +     static int io_is_whitespace( Buffer *io, size_t pos )    {    if( pos > io_len( io ) )    return -1;    switch( io->buffer[io->offset+pos] )    {    SPACECASE8    return 1;    }    return 0;
pike.git/src/modules/_Stdio/buffer.cmod:2240:    *! factor of the current buffer size.    *!    *! The default is 0.5, leaving at most half the buffer as waste.    *!    */    PIKEFUN void set_max_waste(float howmuch)    {    Buffer *io = THIS;    io->max_waste = howmuch;    io_add_space( io, 0, 1 ); -  io_consume( io, 0 ); +  io_trim_waste( io );    }       /*! @decl void trim()    *!    *! Frees unused memory.    *!    *! Note that calling this function excessively will slow things    *! down, since the data often has to be copied.    *!    *! @note