Update of /cvsroot/mod-c/ehtml/src
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv16003/src
Modified Files:
MemBuf.cpp
Log Message:
* Added operator =.
* Bugfix in resize(), ~MemBuf().
Index: MemBuf.cpp
===================================================================
RCS file: /cvsroot/mod-c/ehtml/src/MemBuf.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** MemBuf.cpp 8 Sep 2006 14:22:47 -0000 1.1
--- MemBuf.cpp 8 Sep 2006 20:57:47 -0000 1.2
***************
*** 11,23 ****
MemBuf::~MemBuf() {
! if (_b && _b->_refcnt == 1) {
! delete _b;
! } else {
! _b->_refcnt--;
}
}
void MemBuf::resize(size_t s) {
! assert(_b != NULL);
void* p = realloc(_b->_buf, s);
if (p == NULL)
--- 11,28 ----
MemBuf::~MemBuf() {
! if (_b) {
! if (_b->_refcnt == 1) {
! delete _b;
! } else {
! _b->_refcnt--;
! }
}
}
void MemBuf::resize(size_t s) {
! if (_b == NULL) {
! _b = new Buf(malloc(s),s);
! return;
! }
void* p = realloc(_b->_buf, s);
if (p == NULL)
***************
*** 31,34 ****
--- 36,52 ----
}
+ MemBuf& MemBuf::operator = (const MemBuf& mb) {
+ if (_b) {
+ if (_b->_refcnt == 1) {
+ delete _b;
+ } else {
+ _b->_refcnt--;
+ }
+ }
+ _b = mb._b;
+ ++_b->_refcnt;
+ return *this;
+ }
+
using namespace std;
|