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

version» Context lines:

pike.git/src/modules/_Stdio/buffer.cmod:425:    if(!SAFE_IS_ZERO(&fd->event_cbs[set]) && fd->box.backend)    set_fd_callback_events(&fd->box, fd->box.events|(1<<set), 0);    }       static ptrdiff_t io_call_write( Buffer *io, struct svalue *fun,    ptrdiff_t bytes )    {    if( bytes > 0 )    {    ptrdiff_t l = 0; -  struct pike_string *s = io_read_string( io,bytes ); +  struct pike_string *s;    -  +  io->locked_move++; +  s = io_read_string( io,bytes ); +     if( s )    {    io->output_triggered = 1;    push_string( s );    apply_svalue( fun, 1 );    if (UNLIKELY(TYPEOF(Pike_sp[-1]) != PIKE_T_INT)) { -  +  io->locked_move--;    Pike_error("Invalid return value from write callback.\n");    }    l = Pike_sp[-1].u.integer;    pop_stack();    if( l < 0 )    { -  +  io->locked_move--;    io_rewind( io, bytes );    return -1;    }    if( bytes > l ) -  +  {    io_rewind( io, bytes-l );    } -  +  } +  io->locked_move--;    return l;    }    return -1;    }       static ptrdiff_t io_actually_trigger_output( Buffer *io )    ATTRIBUTE((noclone,noinline));       static ptrdiff_t io_actually_trigger_output( Buffer *io )    {