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

version» Context lines:

pike.git/src/modules/_Stdio/buffer.cmod:448:    return l;    }    return -1;    }       PMOD_EXPORT void io_actually_trigger_output( Buffer *io )    ATTRIBUTE((noclone,noinline));       PMOD_EXPORT void io_actually_trigger_output( Buffer *io )    { +  if (io->output.tu.named_type == PIKE_T_FUNCTION) {    if (UNLIKELY(!io->output.u.object->prog)) {    /* Destructed object. */    free_svalue(&io->output); -  SET_SVAL(io->output, PIKE_T_INT, NUMBER_NUMBER, integer, 0); +     return;    }    -  if ( io->output.u.object ) { +     move_svalue(Pike_sp++, &io->output); -  SET_SVAL(io->output, PIKE_T_INT, NUMBER_NUMBER, integer, 0); +     apply_svalue(Pike_sp-1, 0);    pop_n_elems(2);    }    }       static int io_range_error( Buffer *io, ptrdiff_t howmuch )    ATTRIBUTE((noclone,noinline));       static int io_range_error( Buffer *io, ptrdiff_t howmuch )    {
pike.git/src/modules/_Stdio/buffer.cmod:983:    *! of File or Stream like programs. Do not use this yourself    *! on buffers with Files or Streams in buffer modes.    */    PIKEFUN void __set_on_write( zero|function f )    {    Buffer *io = THIS;       if (f)    assign_svalue(&io->output, f);    else { -  if (io->output.u.object) { +  if (io->output.tu.named_type == PIKE_T_FUNCTION)    free_svalue(&io->output); -  io->output.u.object = 0; // free_svalue() puts in -1 +     } -  SET_SVAL(io->output, PIKE_T_INT, NUMBER_NUMBER, integer, 0); +     } -  } +        /*! @decl int(-1..) output_to( Stdio.Stream|function(string(8bit):int) fun, @    *! int(0..)|void nbytes )    *!    *! Write data from the buffer to the indicated file.    *!    *! @param fun    *! Write function. Either one of:    *! @mixed    *! @type Stdio.Stream