Return TypeFunction nameArguments
voidhzEmaddr::Clear(void)

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

Function Logic:

0:START 1:m_addr 2:hzSSR::Xlate pCtrl 3:!pCtrl 4:hzexit 5:pCtrl->m_copy==0 6:m_addr 7: No text 8:pCtrl->m_copy==0xff 9:m_addr 10: No text 11:pCtrl->m_copy&&pCtrl->m_copy<100 12:_hzGlobal_MT 13:__sync_add_and_fetch 14:items 15:pCtrl->m_copy==0 16:nLen hzSSR::Free rc 17:m_addr 18:rc!=E_OK 19: No text

Function body:

void hzEmaddr::Clear (void)
{
   _hzfunc("hzEmaddr::Clear") ;
   _ema_space* pCtrl ;
   uint32_t    nLen ;
   hzEcode     rc = E_OK ;
    if (m_addr)
    {
       pCtrl = (_ema_space*) g_ssrInet.Xlate(m_addr) ;
       if (!pCtrl)
           hzexit(E_CORRUPT, "Illegal string address %u:%u", (m_addr&0x7fff0000)>>16,m_addr&0xffff);
       if (pCtrl->m_copy == 0)
           { threadLog("Deletion in progress address %u:%u\n", (m_addr&0x7fff0000)>>16,m_addr&0xffff);m_addr=0;return;}
       if (pCtrl->m_copy == 0xff)
       {
           threadLog("CORRUPT: Invalid email addr (cpy %u lhs %u rhs %u) address %u:%u\n", pCtrl->m_copy, pCtrl->m_lhs, pCtrl->m_rhs, (m_addr&0x7fff0000)>>16,m_addr&0xffff);
           m_addr = 0;
           return ;
       }
       if (pCtrl->m_copy && pCtrl->m_copy < 100)
       {
           if (_hzGlobal_MT)
               __sync_add_and_fetch(&(pCtrl->m_copy), -1);
           else
               pCtrl->m_copy-- ;
           if (pCtrl->m_copy == 0)
           {
               nLen = pCtrl->m_lhs + pCtrl->m_rhs + 1;
               rc = g_ssrInet.Free(m_addr, nLen + EMA_FACTOR) ;
           }
        }
        m_addr = 0;
    }
   if (rc != E_OK)
       threadLog("Email address %s not deleted\n", pCtrl->m_data) ;
}