| 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 ;
}