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:981:    *! 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.tu.named_type == PIKE_T_FUNCTION) +  if (io->output.u.object) {    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