REBufferNoCopy::REBufferNoCopy(const REBuffer & buffer) : REBuffer() { _allocator = kREAllocatorNULL; const void * b = buffer.buffer(); const RESizeT s = buffer.size(); if (b && s) { _buff = const_cast<void *>(b); if (_buff) { _size = s; } } }
/// Constructs data from buffer. /// buffer will be copyed. REData::REData(const REBuffer & buffer) : _fileOffset(0) { const REUInt32 s = buffer.size(); if (s > 0) { REPtr<REBuffer> b(new REBuffer(buffer.buffer(), s)); if (b.isNotEmpty()) { if (b->size() == s) { _buffer = b; } } } }
REBOOL REBufferObject::isEqual(REObject * anotherObject) { if (anotherObject) { if (REObject::isEqual(anotherObject)) { return true; } REBuffer * buff = dynamic_cast<REBuffer *>(anotherObject); if (buff) { if (buff->size() == this->size()) { return (memcmp(buff->buffer(), this->buffer(), this->size()) == 0); } } } return false; }