示例#1
0
  void streambuf::setb( char *buf, char *ebuf, int autodelete ) {

    __lock_it( __b_lock );
    if( __delete_reserve ) {
        _plib_free( __reserve_base );
    }
    if( (buf == NULL) || (ebuf <= buf) ) {
        __reserve_base     = NULL;
        __reserve_end      = NULL;
        __delete_reserve   = 0;
        __unbuffered_state = 1;
    } else {
        __reserve_base     = buf;
        __reserve_end      = ebuf;
        __delete_reserve   = (char)(autodelete ? 1 : 0);
        __unbuffered_state = 0;
    }
  }
示例#2
0
void streambuf::setb( char *buf, char *ebuf, int autodelete ) {
/*************************************************************/
// Set up a new reserve area.
// Delete the old one if necessary.
// Turn buffering on.

    __lock_it( __b_lock );
    if( __delete_reserve ) {
        _plib_free( __reserve_base );
    }
    if( (buf == NULL) || (ebuf <= buf) ) {
        __reserve_base     = NULL;
        __reserve_end      = NULL;
        __delete_reserve   = 0;
        __unbuffered_state = 1;
    } else {
        __reserve_base     = buf;
        __reserve_end      = ebuf;
        __delete_reserve   = (char)(autodelete ? 1 : 0);
        __unbuffered_state = 0;
    }
}
示例#3
0
streambuf::~streambuf() {
    if( __delete_reserve ) {
        _plib_free( __reserve_base );
    }
}