Return TypeFunction nameArguments
hzXbuf&hzXbuf::operator+=(const unsigned char*,)

Declared in file: hzXbuf.h
Defined in file : hzXbuf.cpp

Function Logic:

0:START 1:!s||!s[0] 2:Return *this 3:!mx 4:mx 5:!mx->m_Begin 6:_xblk_alloc mx mx 7:curBlk 8:!curBlk 9:Fatal 10:*i; 11:curBlk->xize==XBLKSIZE 12:_xblk_alloc newBlk 13:!newBlk 14:Fatal 15:_xblk::Next mx curBlk 16:curBlk items items 17:Return *this

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