Support function to ReportMemoryUsage(). Provides Report on global new/delete override by the application, if applicable Returns: None

Return TypeFunction nameArguments
void_report_heap(hzChain&,hzMeminfo&,hzMeminfo&,uint32_t&,bool,)

Declared and defined in file: hzMemory.cpp

Function Logic:

0:START 1:items items s_Heap usage items items s_Heap usage items items s_Heap usage items items s_Heap usage items items s_Heap usage items items 2:unknown 3:unknown 4:items nA s_Heap usage items 5:items items items 6: No text

Function body:

void _report_heap (hzChain& Z)hzMeminfo& cms, hzMeminfo& pms, uint32_t& total, bool bHtml, 
{
   //  Category: Diagnostics
   //  
   //  Support function to ReportMemoryUsage(). Provides Report on global new/delete override by the application, if applicable
   //  
   //  Argument: Z The hzChain instance to receive the report
   //  Returns: None
   uint32_t    usage ;     //  Memory used by given object class
   uint32_t    nA ;        //  Iterator for all sizes
   Z <<
   "<div class=\"stdpg\">\n<table width=\"506\" align=\"center\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" style=\"text-decoration:none; font-family:verdana; font-size:11px; font-weight:normal; color:#000000;\">\n<tr>\n\t<th width=\"120\">HadronZoo Entity</th>\n\t<th width=\"90\">Assigned</th>\n\t<th width=\"90\">Free</th>\n\t<th width=\"90\">Total</th>\n\t<th width=\"110\">Total RAM</th>\n</tr>\n"
             ;
   //  Managed
   Z << "<tr align=\"right\"><td align=\"left\">Heap   8-byte objects</td>" ;
   usage = (s_Heap->nU008 + s_Heap->nF008) * 8;
   Z.Printf("<td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n",
       _snh(s_Heap->nU008), _snh(s_Heap->nF008), _snh(s_Heap->nU008 + s_Heap->nF008),  _snh(usage)) ;
   Z << "<tr align=\"right\"><td align=\"left\">Heap  16-byte objects</td>" ;
   usage = (s_Heap->nU016 + s_Heap->nF016) * 16;
   Z.Printf("<td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n",
       _snh(s_Heap->nU016), _snh(s_Heap->nF016), _snh(s_Heap->nU016 + s_Heap->nF016),  _snh(usage)) ;
   Z << "<tr align=\"right\"><td align=\"left\">Heap  24-byte objects</td>" ;
   usage = (s_Heap->nU024 + s_Heap->nF024) * 24;
   Z.Printf("<td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n",
       _snh(s_Heap->nU024), _snh(s_Heap->nF024), _snh(s_Heap->nU024 + s_Heap->nF024),  _snh(usage)) ;
   Z << "<tr align=\"right\"><td align=\"left\">Heap  32-byte objects</td>" ;
   usage = (s_Heap->nU032 + s_Heap->nF032) * 32;
   Z.Printf("<td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n",
       _snh(s_Heap->nU032), _snh(s_Heap->nF032), _snh(s_Heap->nU032 + s_Heap->nF032),  _snh(usage)) ;
   Z << "<tr align=\"right\"><td align=\"left\">Heap  40-byte objects</td>" ;
   usage = (s_Heap->nU040 + s_Heap->nF040) * 40;
   Z.Printf("<td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n",
       _snh(s_Heap->nU040), _snh(s_Heap->nF040), _snh(s_Heap->nU040 + s_Heap->nF040),  _snh(usage)) ;
   //  Print report for oversized objects for each multiple of 8 bytes for which there are outstanding allocatons
   Z << "<tr><td>Oversize (48+ bytes)</td><td></td><td></td><td></td></tr>\n" ;
   for (nA = 0; nA < 1001;nA++)
   {
       if (!s_Heap->m_allSizes[nA] && !s_Heap->m_allSizeF[nA])
           continue ;
       Z.Printf("<tr align=\"right\"><td align=\"left\">Obj size %d</td>", nA * 8);
       usage = s_Heap->m_allSizes[nA] * nA * 8;
       Z.Printf("<td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n",
           _snh(s_Heap->m_allSizeA[nA]), _snh(s_Heap->m_allSizeF[nA]), _snh(s_Heap->m_allSizes[nA]),   _snh(usage)) ;
   }
   Z << "<tr align=\"right\"><td align=\"left\">All objects</td>" ;
   Z.Printf("<td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n",
       _snh(s_Heap->nCallsMalloc),
       _snh(s_Heap->nCallsFree),
       _snh(s_Heap->nCallsMalloc - s_Heap->nCallsFree),
       _snh(s_Heap->nOverSize)) ;
   Z <<
   "</table>\n</div>\n"
              ;
}