Return Type | Function name | Arguments |
---|---|---|
hzXbuf& | hzXbuf::operator+= | (const unsigned char*,) |
Declared in file: hzXbuf.h
Defined in file : hzXbuf.cpp
Function Logic:
Function body:
hzXbuf& hzXbuf::operator+= (const unsigned char* s) { _hzfunc("hzXbuf::operator+=(uchar*)") ; _xblk* curBlk ; _xblk* newBlk ; const uchar* i ; if (!s || !s[0]) return *this ; if (!mx) mx = new _xbuf() ; if (!mx->m_Begin) mx->m_Begin = mx->m_End = _xblk_alloc() ; curBlk = (_xblk*) mx->m_End ; if (!curBlk) Fatal("Chain %p has no end block\n", this) ; for (i = s ; *i ; i++) { if (curBlk->xize == XBLKSIZE) { newBlk = _xblk_alloc() ; if (!newBlk) Fatal("No allocation (case 2)\n") ; curBlk->Next(newBlk) ; mx->m_End = newBlk ; curBlk = newBlk ; } curBlk->m_Data[curBlk->xize] = *i ; curBlk->xize++ ; mx->m_nSize++ ; } return *this ; }