Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 1f9eb832ba1e4b88d9a5c2b384813bb4 > files > 2079

kdelibs3-apidocs-3.5.10-31.fc15.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">

<head>
  <title>kdecore: KZoneAllocator Class Reference (kdecore)</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <meta http-equiv="Content-Style-Type" content="text/css" />

  <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline DE v2.0" l gen true for "http://www.kde.org"  r (nz 1 vz 1 lz 1 oz 1 cb 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.kde.org"  r (n 0 s 0 v 0 l 0))' />

  <meta name="trademark" content="KDE e.V." />
  <meta name="description" content="K Desktop Environment Homepage, KDE.org" />
  <meta name="MSSmartTagsPreventParsing" content="true" />
  <meta name="robots" content="all" />

  <link rel="shortcut icon" href="../../favicon.ico" />

<link rel="stylesheet" media="screen" type="text/css" title="APIDOX" href="doxygen.css" />



</head>

<body>

<div id="nav_header_top" align="right">
  <a href="#content" class="doNotDisplay" accesskey="2">Skip to main content ::</a>

  <a href="../.."><img id="nav_header_logo" alt="Home" align="left" src="../../kde_gear_64.png" border="0" /></a>
  <span class="doNotDisplay">::</span>

  <div id="nav_header_title" align="left">KDE API Reference</div>


</div>

<div id="nav_header_bottom" align="right">
  <span class="doNotDisplay">:: <a href="#navigation" accesskey="5">Skip to Link Menu</a><br/></span>
  <div id="nav_header_bottom_right" style="text-align: left;">
/ <a href="../..">API Reference</a>
 / <a href=".">kdecore</a>
  </div>
</div>


<table id="main" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
      <td valign="top" class="menuheader" height="0"></td>

  <td id="contentcolumn" valign="top" rowspan="2" >
    <div id="content" style="padding-top: 0px;"><div style="width:100%; margin: 0px; padding: 0px;">
    <a name="content"></a>


<!-- Generated by Doxygen 1.7.4 -->
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">KZoneAllocator Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="KZoneAllocator" -->
<p>Memory allocator for large groups of small objects.  
 <a href="classKZoneAllocator.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="kallocator_8h_source.html">kallocator.h</a>&gt;</code></p>

<p><a href="classKZoneAllocator-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#a36b961a7b14aa89d38b6bbbc872b858f">KZoneAllocator</a> (unsigned long _blockSize=8 *1024)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#ae33bc3b19e245154c594b24cf547dfdc">~KZoneAllocator</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#a90dc4c5de42a9156b1910992f0ccd986">allocate</a> (size_t _size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#aed8801cd9c71f6c15dec2fc49ebdf22b">deallocate</a> (void *ptr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#a1a55d13715013aa84706510dbfaedf02">free_since</a> (void *ptr)</td></tr>
<tr><td colspan="2"><h2><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="elRef" href="qvaluelist.html">QValueList</a>&lt; MemBlock * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#acf95e88779d24b17e515028befb4b82e">MemList</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#ab6d37b990beb809892767e9f170da1d3">addBlock</a> (MemBlock *b)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#a3101ba3b2cf87452eec21a5cb56ec9b9">delBlock</a> (MemBlock *b)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a26a5bcffd5c16afa7dfa45229f7e9c"></a><!-- doxytag: member="KZoneAllocator::insertHash" ref="a4a26a5bcffd5c16afa7dfa45229f7e9c" args="(MemBlock *b)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>insertHash</b> (MemBlock *b)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#a29f094ce4053e4e8af1ff1826da69e65">initHash</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">MemBlock *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#a48f3981f6c908084498e9242ec52848b">currentBlock</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#a3f5a6692ae40161475fa73997e0b6341">blockSize</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#a80f8f721a695e79f102e4b92c363398c">blockOffset</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#aa906b3634355596aee652978112db366">log2</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#aa60ffb8beb73c9f60e4bc21a5226a7c9">num_blocks</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="qvaluelist.html">MemList</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#a9a46307f207a6e47ba7692c638b21c72">hashList</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#ab05085be35977ce615fea3d2a564b10c">hashSize</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKZoneAllocator.html#a810875a1bce9300ac724e0f0f2a53653">hashDirty</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Memory allocator for large groups of small objects. </p>
<p>This should be used for large groups of objects that are created and destroyed together. When used carefully for this purpose it is faster and more memory efficient than malloc. Additionally to a usual obstack like allocator you can also free the objects individually. Because it does no compaction it still is faster then malloc()/free(). Depending on the exact usage pattern that might come at the expense of some memory though. </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Waldo Bastian &lt;<a href="mailto:bastian@kde.org">bastian@kde.org</a>&gt;, Michael Matz &lt;<a href="mailto:matz@kde.org">matz@kde.org</a>&gt; </dd></dl>

<p>Definition at line <a class="el" href="kallocator_8h_source.html#l00046">46</a> of file <a class="el" href="kallocator_8h_source.html">kallocator.h</a>.</p>
</div><hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="acf95e88779d24b17e515028befb4b82e"></a><!-- doxytag: member="KZoneAllocator::MemList" ref="acf95e88779d24b17e515028befb4b82e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="elRef" href="qvaluelist.html">QValueList</a>&lt;MemBlock *&gt; <a class="elRef" href="qvaluelist.html">KZoneAllocator::MemList</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A list of chunks. </p>

<p>Definition at line <a class="el" href="kallocator_8h_source.html#l00114">114</a> of file <a class="el" href="kallocator_8h_source.html">kallocator.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a36b961a7b14aa89d38b6bbbc872b858f"></a><!-- doxytag: member="KZoneAllocator::KZoneAllocator" ref="a36b961a7b14aa89d38b6bbbc872b858f" args="(unsigned long _blockSize=8 *1024)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">KZoneAllocator::KZoneAllocator </td>
          <td>(</td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>_blockSize</em> = <code>8*1024</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a <a class="el" href="classKZoneAllocator.html" title="Memory allocator for large groups of small objects.">KZoneAllocator</a> object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">_blockSize</td><td>Size in bytes of the blocks requested from malloc. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="kallocator_8cpp_source.html#l00048">48</a> of file <a class="el" href="kallocator_8cpp_source.html">kallocator.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ae33bc3b19e245154c594b24cf547dfdc"></a><!-- doxytag: member="KZoneAllocator::~KZoneAllocator" ref="ae33bc3b19e245154c594b24cf547dfdc" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">KZoneAllocator::~KZoneAllocator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructs the ZoneAllocator and free all memory allocated by it. </p>

<p>Definition at line <a class="el" href="kallocator_8cpp_source.html#l00059">59</a> of file <a class="el" href="kallocator_8cpp_source.html">kallocator.cpp</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ab6d37b990beb809892767e9f170da1d3"></a><!-- doxytag: member="KZoneAllocator::addBlock" ref="ab6d37b990beb809892767e9f170da1d3" args="(MemBlock *b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KZoneAllocator::addBlock </td>
          <td>(</td>
          <td class="paramtype">MemBlock *&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a new memory block to the pool of blocks, and reorganize the hash lists if needed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">b</td><td>block to add </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="kallocator_8cpp_source.html#l00102">102</a> of file <a class="el" href="kallocator_8cpp_source.html">kallocator.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a90dc4c5de42a9156b1910992f0ccd986"></a><!-- doxytag: member="KZoneAllocator::allocate" ref="a90dc4c5de42a9156b1910992f0ccd986" args="(size_t _size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void * KZoneAllocator::allocate </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>_size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Allocates a memory block. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">_size</td><td>Size in bytes of the memory block. Memory is aligned to the size of a pointer. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="kallocator_8cpp_source.html#l00184">184</a> of file <a class="el" href="kallocator_8cpp_source.html">kallocator.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aed8801cd9c71f6c15dec2fc49ebdf22b"></a><!-- doxytag: member="KZoneAllocator::deallocate" ref="aed8801cd9c71f6c15dec2fc49ebdf22b" args="(void *ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KZoneAllocator::deallocate </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ptr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gives back a block returned by <a class="el" href="classKZoneAllocator.html#a90dc4c5de42a9156b1910992f0ccd986" title="Allocates a memory block.">allocate()</a> to the zone allocator, and possibly deallocates the block holding it (when it's empty). </p>
<p>The first <a class="el" href="classKZoneAllocator.html#aed8801cd9c71f6c15dec2fc49ebdf22b" title="Gives back a block returned by allocate() to the zone allocator, and possibly deallocates the block h...">deallocate()</a> after many <a class="el" href="classKZoneAllocator.html#a90dc4c5de42a9156b1910992f0ccd986" title="Allocates a memory block.">allocate()</a> calls (or the first at all) builds an internal data structure for speeding up deallocation. The consistency of that structure is maintained from then on (by <a class="el" href="classKZoneAllocator.html#a90dc4c5de42a9156b1910992f0ccd986" title="Allocates a memory block.">allocate()</a> and <a class="el" href="classKZoneAllocator.html#aed8801cd9c71f6c15dec2fc49ebdf22b" title="Gives back a block returned by allocate() to the zone allocator, and possibly deallocates the block h...">deallocate()</a>) unless many more objects are allocated without any intervening deallocation, in which case it's thrown away and rebuilt at the next <a class="el" href="classKZoneAllocator.html#aed8801cd9c71f6c15dec2fc49ebdf22b" title="Gives back a block returned by allocate() to the zone allocator, and possibly deallocates the block h...">deallocate()</a>.</p>
<p>The effect of this is, that such initial <a class="el" href="classKZoneAllocator.html#aed8801cd9c71f6c15dec2fc49ebdf22b" title="Gives back a block returned by allocate() to the zone allocator, and possibly deallocates the block h...">deallocate()</a> calls take more time then the normal calls, and that after this list is built, i.e. generally if <a class="el" href="classKZoneAllocator.html#aed8801cd9c71f6c15dec2fc49ebdf22b" title="Gives back a block returned by allocate() to the zone allocator, and possibly deallocates the block h...">deallocate()</a> is used at all, also <a class="el" href="classKZoneAllocator.html#a90dc4c5de42a9156b1910992f0ccd986" title="Allocates a memory block.">allocate()</a> is a little bit slower. This means, that if you want to squeeze out the last bit performance you would want to use <a class="el" href="classKZoneAllocator.html" title="Memory allocator for large groups of small objects.">KZoneAllocator</a> as an obstack, i.e. just use the functions <a class="el" href="classKZoneAllocator.html#a90dc4c5de42a9156b1910992f0ccd986" title="Allocates a memory block.">allocate()</a> and <a class="el" href="classKZoneAllocator.html#a1a55d13715013aa84706510dbfaedf02" title="Deallocate many objects at once.">free_since()</a>. All the remaining memory is returned to the system if the zone allocator is destroyed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">ptr</td><td>Pointer as returned by <a class="el" href="classKZoneAllocator.html#a90dc4c5de42a9156b1910992f0ccd986" title="Allocates a memory block.">allocate()</a>. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="kallocator_8cpp_source.html#l00207">207</a> of file <a class="el" href="kallocator_8cpp_source.html">kallocator.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a3101ba3b2cf87452eec21a5cb56ec9b9"></a><!-- doxytag: member="KZoneAllocator::delBlock" ref="a3101ba3b2cf87452eec21a5cb56ec9b9" args="(MemBlock *b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KZoneAllocator::delBlock </td>
          <td>(</td>
          <td class="paramtype">MemBlock *&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete a memory block. </p>
<p>This <em>really</em> returns the memory to the heap. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">b</td><td>block to delete </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="kallocator_8cpp_source.html#l00148">148</a> of file <a class="el" href="kallocator_8cpp_source.html">kallocator.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a1a55d13715013aa84706510dbfaedf02"></a><!-- doxytag: member="KZoneAllocator::free_since" ref="a1a55d13715013aa84706510dbfaedf02" args="(void *ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KZoneAllocator::free_since </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ptr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Deallocate many objects at once. </p>
<p><a class="el" href="classKZoneAllocator.html#a1a55d13715013aa84706510dbfaedf02" title="Deallocate many objects at once.">free_since()</a> deallocates all objects allocated after <code>ptr</code>, <em>including</em> <code>ptr</code> itself.</p>
<p>The intended use is something along the lines of: </p>
<div class="fragment"><pre class="fragment"> <a class="code" href="classKZoneAllocator.html" title="Memory allocator for large groups of small objects.">KZoneAllocator</a> alloc(8192);
 <span class="keywordtype">void</span> *remember_me = alloc.allocate(0);
 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 1000; i++)
   do_something_with (alloc.allocate(12));
 alloc.free_since (remember_me);
</pre></div><p> Note, that we don't need to remember all the pointers to the 12-byte objects for freeing them. The <a class="el" href="classKZoneAllocator.html#a1a55d13715013aa84706510dbfaedf02" title="Deallocate many objects at once.">free_since()</a> does deallocate them all at once. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">ptr</td><td>Pointer as returned by <a class="el" href="classKZoneAllocator.html#a90dc4c5de42a9156b1910992f0ccd986" title="Allocates a memory block.">allocate()</a>. It acts like a kind of mark of a certain position in the stack of all objects, off which you can throw away everything above that mark. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="kallocator_8cpp_source.html#l00240">240</a> of file <a class="el" href="kallocator_8cpp_source.html">kallocator.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a29f094ce4053e4e8af1ff1826da69e65"></a><!-- doxytag: member="KZoneAllocator::initHash" ref="a29f094ce4053e4e8af1ff1826da69e65" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void KZoneAllocator::initHash </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reinitialize hash list. </p>

<p>Definition at line <a class="el" href="kallocator_8cpp_source.html#l00122">122</a> of file <a class="el" href="kallocator_8cpp_source.html">kallocator.cpp</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a80f8f721a695e79f102e4b92c363398c"></a><!-- doxytag: member="KZoneAllocator::blockOffset" ref="a80f8f721a695e79f102e4b92c363398c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long <a class="el" href="classKZoneAllocator.html#a80f8f721a695e79f102e4b92c363398c">KZoneAllocator::blockOffset</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Store offset into current block; size-offset is free. </p>

<p>Definition at line <a class="el" href="kallocator_8h_source.html#l00125">125</a> of file <a class="el" href="kallocator_8h_source.html">kallocator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3f5a6692ae40161475fa73997e0b6341"></a><!-- doxytag: member="KZoneAllocator::blockSize" ref="a3f5a6692ae40161475fa73997e0b6341" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long <a class="el" href="classKZoneAllocator.html#a3f5a6692ae40161475fa73997e0b6341">KZoneAllocator::blockSize</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Store block size from constructor. </p>

<p>Definition at line <a class="el" href="kallocator_8h_source.html#l00123">123</a> of file <a class="el" href="kallocator_8h_source.html">kallocator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a48f3981f6c908084498e9242ec52848b"></a><!-- doxytag: member="KZoneAllocator::currentBlock" ref="a48f3981f6c908084498e9242ec52848b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MemBlock* <a class="el" href="classKZoneAllocator.html#a48f3981f6c908084498e9242ec52848b">KZoneAllocator::currentBlock</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>One block is 'current' to satisfy requests. </p>

<p>Definition at line <a class="el" href="kallocator_8h_source.html#l00121">121</a> of file <a class="el" href="kallocator_8h_source.html">kallocator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a810875a1bce9300ac724e0f0f2a53653"></a><!-- doxytag: member="KZoneAllocator::hashDirty" ref="a810875a1bce9300ac724e0f0f2a53653" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classKZoneAllocator.html#a810875a1bce9300ac724e0f0f2a53653">KZoneAllocator::hashDirty</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Flag the hashes as in need of reorganization. </p>

<p>Definition at line <a class="el" href="kallocator_8h_source.html#l00135">135</a> of file <a class="el" href="kallocator_8h_source.html">kallocator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9a46307f207a6e47ba7692c638b21c72"></a><!-- doxytag: member="KZoneAllocator::hashList" ref="a9a46307f207a6e47ba7692c638b21c72" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" href="qvaluelist.html">MemList</a>** <a class="el" href="classKZoneAllocator.html#a9a46307f207a6e47ba7692c638b21c72">KZoneAllocator::hashList</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Collection of lists of blocks, for lookups. </p>

<p>Definition at line <a class="el" href="kallocator_8h_source.html#l00131">131</a> of file <a class="el" href="kallocator_8h_source.html">kallocator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab05085be35977ce615fea3d2a564b10c"></a><!-- doxytag: member="KZoneAllocator::hashSize" ref="ab05085be35977ce615fea3d2a564b10c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classKZoneAllocator.html#ab05085be35977ce615fea3d2a564b10c">KZoneAllocator::hashSize</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Count of hashes. </p>

<p>Definition at line <a class="el" href="kallocator_8h_source.html#l00133">133</a> of file <a class="el" href="kallocator_8h_source.html">kallocator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa906b3634355596aee652978112db366"></a><!-- doxytag: member="KZoneAllocator::log2" ref="aa906b3634355596aee652978112db366" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classKZoneAllocator.html#aa906b3634355596aee652978112db366">KZoneAllocator::log2</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>base-2 log of the block size. </p>

<p>Definition at line <a class="el" href="kallocator_8h_source.html#l00127">127</a> of file <a class="el" href="kallocator_8h_source.html">kallocator.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa60ffb8beb73c9f60e4bc21a5226a7c9"></a><!-- doxytag: member="KZoneAllocator::num_blocks" ref="aa60ffb8beb73c9f60e4bc21a5226a7c9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classKZoneAllocator.html#aa60ffb8beb73c9f60e4bc21a5226a7c9">KZoneAllocator::num_blocks</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Count total number of allocated blocks. </p>

<p>Definition at line <a class="el" href="kallocator_8h_source.html#l00129">129</a> of file <a class="el" href="kallocator_8h_source.html">kallocator.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="kallocator_8h_source.html">kallocator.h</a></li>
<li><a class="el" href="kallocator_8cpp_source.html">kallocator.cpp</a></li>
</ul>
</div>
    </div></div>


      </td>
  </tr>
  <tr>
    <td valign="top" id="leftmenu" width="25%">
      <a name="navigation"></a>
      <div class="menu_box"><h2>kdecore</h2>
<div class="nav_list">
<ul><li><a href="index.html">Main Page</a></li><li><a href="modules.html">Modules</a></li><li><a href="namespaces.html">Namespace List</a></li><li><a href="hierarchy.html">Class Hierarchy</a></li><li><a href="classes.html">Alphabetical List</a></li><li><a href="annotated.html">Class List</a></li><li><a href="files.html">File List</a></li><li><a href="namespacemembers.html">Namespace Members</a></li><li><a href="functions.html">Class Members</a></li><li><a href="pages.html">Related Pages</a></li></ul>
<!--
<h2>Class Picker</h2>
<div style="text-align: center;">
<form name="guideform">
<select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
<option value="annotated.html">-- Choose --</option>
  <option value="classKAboutData.html">kaboutdata</option>,  <option value="classKAboutPerson.html">kaboutperson</option>,  <option value="classKAboutTranslator.html">kabouttranslator</option>,  <option value="classKAccel.html">kaccel</option>,  <option value="classKAcceleratorManager.html">kacceleratormanager</option>,  <option value="classKAccelManagerAlgorithm.html">kaccelmanageralgorithm</option>,  <option value="classKAccelShortcutList.html">kaccelshortcutlist</option>,  <option value="classKAccelString.html">kaccelstring</option>,  <option value="classKAddressInfo.html">kaddressinfo</option>,  <option value="classKAppDCOPInterface.html">kappdcopinterface</option>,  <option value="classKApplication.html">kapplication</option>,  <option value="classKAsyncIO.html">kasyncio</option>,  <option value="classKAudioPlayer.html">kaudioplayer</option>,  <option value="classKBufferedIO.html">kbufferedio</option>,  <option value="classKCalendarSystem.html">kcalendarsystem</option>,  <option value="classKCalendarSystemFactory.html">kcalendarsystemfactory</option>,  <option value="classKCalendarSystemJalali.html">kcalendarsystemjalali</option>,  <option value="classKCatalogue.html">kcatalogue</option>,  <option value="classKCharMacroExpander.html">kcharmacroexpander</option>,  <option value="classKCharsets.html">kcharsets</option>,  <option value="classKClipboardSynchronizer.html">kclipboardsynchronizer</option>,  <option value="classKCmdLineArgs.html">kcmdlineargs</option>,  <option value="classKCodecs.html">kcodecs</option>,  <option value="classKCompletion.html">kcompletion</option>,  <option value="classKCompletionBase.html">kcompletionbase</option>,  <option value="classKCompletionMatches.html">kcompletionmatches</option>,  <option value="classKCompTreeNode.html">kcomptreenode</option>,  <option value="classKConfig.html">kconfig</option>,  <option value="classKConfigBackEnd.html">kconfigbackend</option>,  <option value="classKConfigBase.html">kconfigbase</option>,  <option value="classKConfigDialogManager.html">kconfigdialogmanager</option>,  <option value="classKConfigGroup.html">kconfiggroup</option>,  <option value="classKConfigGroupSaver.html">kconfiggroupsaver</option>,  <option value="classKConfigINIBackEnd.html">kconfiginibackend</option>,  <option value="classKConfigSkeleton.html">kconfigskeleton</option>,  <option value="classKConfigSkeleton_1_1ItemBool.html">kconfigskeleton::itembool</option>,  <option value="classKConfigSkeleton_1_1ItemColor.html">kconfigskeleton::itemcolor</option>,  <option value="classKConfigSkeleton_1_1ItemDateTime.html">kconfigskeleton::itemdatetime</option>,  <option value="classKConfigSkeleton_1_1ItemDouble.html">kconfigskeleton::itemdouble</option>,  <option value="classKConfigSkeleton_1_1ItemEnum.html">kconfigskeleton::itemenum</option>,  <option value="classKConfigSkeleton_1_1ItemFont.html">kconfigskeleton::itemfont</option>,  <option value="classKConfigSkeleton_1_1ItemInt.html">kconfigskeleton::itemint</option>,  <option value="classKConfigSkeleton_1_1ItemInt64.html">kconfigskeleton::itemint64</option>,  <option value="classKConfigSkeleton_1_1ItemIntList.html">kconfigskeleton::itemintlist</option>,  <option value="classKConfigSkeleton_1_1ItemLong.html">kconfigskeleton::itemlong</option>,  <option value="classKConfigSkeleton_1_1ItemPassword.html">kconfigskeleton::itempassword</option>,  <option value="classKConfigSkeleton_1_1ItemPath.html">kconfigskeleton::itempath</option>,  <option value="classKConfigSkeleton_1_1ItemPathList.html">kconfigskeleton::itempathlist</option>,  <option value="classKConfigSkeleton_1_1ItemPoint.html">kconfigskeleton::itempoint</option>,  <option value="classKConfigSkeleton_1_1ItemProperty.html">kconfigskeleton::itemproperty</option>,  <option value="classKConfigSkeleton_1_1ItemRect.html">kconfigskeleton::itemrect</option>,  <option value="classKConfigSkeleton_1_1ItemSize.html">kconfigskeleton::itemsize</option>,  <option value="classKConfigSkeleton_1_1ItemString.html">kconfigskeleton::itemstring</option>,  <option value="classKConfigSkeleton_1_1ItemStringList.html">kconfigskeleton::itemstringlist</option>,  <option value="classKConfigSkeleton_1_1ItemUInt.html">kconfigskeleton::itemuint</option>,  <option value="classKConfigSkeleton_1_1ItemUInt64.html">kconfigskeleton::itemuint64</option>,  <option value="classKConfigSkeleton_1_1ItemULong.html">kconfigskeleton::itemulong</option>,  <option value="classKConfigSkeletonItem.html">kconfigskeletonitem</option>,  <option value="classKCrash.html">kcrash</option>,  <option value="classKDCOPPropertyProxy.html">kdcoppropertyproxy</option>,  <option value="classKDebugDCOPIface.html">kdebugdcopiface</option>,  <option value="classKDesktopFile.html">kdesktopfile</option>,  <option value="classKExtendedSocket.html">kextendedsocket</option>,  <option value="classKGenericFactory.html">kgenericfactory</option>,  <option value="classKGenericFactory_3_01KTypeList_3_01Product_00_01ProductListTail_01_4_00_01KTypeList_3_01Pare1ed8d1e5a9847c99711cad3b12c7e96c.html">kgenericfactory< ktypelist< product, productlisttail >, ktypelist< pare1ed8d1e5a9847c99711cad3b12c7e96c</option>,  <option value="classKGenericFactory_3_01KTypeList_3_01Product_00_01ProductListTail_01_4_00_01KTypeList_3_01Paref6a00f76851e0daa2cb662bb8a41fc7f.html">kgenericfactory< ktypelist< product, productlisttail >, ktypelist< paref6a00f76851e0daa2cb662bb8a41fc7f</option>,  <option value="classKGenericFactory_3_01KTypeList_3_01Product_00_01ProductListTail_01_4_00_01QObject_01_4.html">kgenericfactory< ktypelist< product, productlisttail >, qobject ></option>,  <option value="classKGlobal.html">kglobal</option>,  <option value="classKGlobalAccel.html">kglobalaccel</option>,  <option value="classKGlobalSettings.html">kglobalsettings</option>,  <option value="classKIcon.html">kicon</option>,  <option value="classKIconEffect.html">kiconeffect</option>,  <option value="classKIconLoader.html">kiconloader</option>,  <option value="classKIconTheme.html">kicontheme</option>,  <option value="classKInetSocketAddress.html">kinetsocketaddress</option>,  <option value="classKInstance.html">kinstance</option>,  <option value="classKIOBufferBase.html">kiobufferbase</option>,  <option value="classKIPC.html">kipc</option>,  <option value="classKKey.html">kkey</option>,  <option value="classKKeyNative.html">kkeynative</option>,  <option value="classKKeySequence.html">kkeysequence</option>,  <option value="classKLibFactory.html">klibfactory</option>,  <option value="classKLibLoader.html">klibloader</option>,  <option value="classKLibrary.html">klibrary</option>,  <option value="classKLocale.html">klocale</option>,  <option value="classKLockFile.html">klockfile</option>,  <option value="classKMacroExpanderBase.html">kmacroexpanderbase</option>,  <option value="classKMD4.html">kmd4</option>,  <option value="classKMD5.html">kmd5</option>,  <option value="classKMimeSourceFactory.html">kmimesourcefactory</option>,  <option value="classKMountPoint.html">kmountpoint</option>,  <option value="classKMultipleDrag.html">kmultipledrag</option>,  <option value="classKNetwork_1_1KActiveSocketBase.html">knetwork::kactivesocketbase</option>,  <option value="classKNetwork_1_1KBufferedSocket.html">knetwork::kbufferedsocket</option>,  <option value="classKNetwork_1_1KClientSocketBase.html">knetwork::kclientsocketbase</option>,  <option value="classKNetwork_1_1KDatagramPacket.html">knetwork::kdatagrampacket</option>,  <option value="classKNetwork_1_1KDatagramSocket.html">knetwork::kdatagramsocket</option>,  <option value="classKNetwork_1_1KHttpProxySocketDevice.html">knetwork::khttpproxysocketdevice</option>,  <option value="classKNetwork_1_1KInetSocketAddress.html">knetwork::kinetsocketaddress</option>,  <option value="classKNetwork_1_1KIpAddress.html">knetwork::kipaddress</option>,  <option value="classKNetwork_1_1KMulticastSocket.html">knetwork::kmulticastsocket</option>,  <option value="classKNetwork_1_1KMulticastSocketImpl.html">knetwork::kmulticastsocketimpl</option>,  <option value="classKNetwork_1_1KNetworkInterface.html">knetwork::knetworkinterface</option>,  <option value="classKNetwork_1_1KPassiveSocketBase.html">knetwork::kpassivesocketbase</option>,  <option value="classKNetwork_1_1KResolver.html">knetwork::kresolver</option>,  <option value="classKNetwork_1_1KResolverEntry.html">knetwork::kresolverentry</option>,  <option value="classKNetwork_1_1KResolverResults.html">knetwork::kresolverresults</option>,  <option value="classKNetwork_1_1KResolverWorkerBase_1_1ResolverLocker.html">knetwork::kresolverworkerbase::resolverlocker</option>,  <option value="classKNetwork_1_1KReverseResolver.html">knetwork::kreverseresolver</option>,  <option value="classKNetwork_1_1KServerSocket.html">knetwork::kserversocket</option>,  <option value="classKNetwork_1_1KSocketAddress.html">knetwork::ksocketaddress</option>,  <option value="classKNetwork_1_1KSocketBase.html">knetwork::ksocketbase</option>,  <option value="classKNetwork_1_1KSocketDevice.html">knetwork::ksocketdevice</option>,  <option value="classKNetwork_1_1KSocketDeviceFactory.html">knetwork::ksocketdevicefactory</option>,  <option value="classKNetwork_1_1KSocksSocketDevice.html">knetwork::ksockssocketdevice</option>,  <option value="classKNetwork_1_1KStreamSocket.html">knetwork::kstreamsocket</option>,  <option value="classKNetwork_1_1KUnixSocketAddress.html">knetwork::kunixsocketaddress</option>,  <option value="classKNotifyClient_1_1Instance.html">knotifyclient::instance</option>,  <option value="classKPalette.html">kpalette</option>,  <option value="classKPixmapProvider.html">kpixmapprovider</option>,  <option value="classKPopupAccelManager.html">kpopupaccelmanager</option>,  <option value="classKProcess.html">kprocess</option>,  <option value="classKProcessController.html">kprocesscontroller</option>,  <option value="classKProcIO.html">kprocio</option>,  <option value="classKProtocolInfoFactory.html">kprotocolinfofactory</option>,  <option value="classKPty.html">kpty</option>,  <option value="classKRandomSequence.html">krandomsequence</option>,  <option value="classKRegExp.html">kregexp</option>,  <option value="classKRegExpPrivate.html">kregexpprivate</option>,  <option value="classKRFCDate.html">krfcdate</option>,  <option value="classKRootProp.html">krootprop</option>,  <option value="classKSaveFile.html">ksavefile</option>,  <option value="classKServerSocket.html">kserversocket</option>,  <option value="classKSessionManaged.html">ksessionmanaged</option>,  <option value="classKShared.html">kshared</option>,  <option value="classKSharedConfig.html">ksharedconfig</option>,  <option value="classKSharedPtr.html">ksharedptr</option>,  <option value="classKShellProcess.html">kshellprocess</option>,  <option value="classKShortcut.html">kshortcut</option>,  <option value="classKShortcutList.html">kshortcutlist</option>,  <option value="classKSimpleConfig.html">ksimpleconfig</option>,  <option value="classKSocket.html">ksocket</option>,  <option value="classKSocketAddress.html">ksocketaddress</option>,  <option value="classKSocks.html">ksocks</option>,  <option value="classKSortableItem.html">ksortableitem</option>,  <option value="classKSortableValueList.html">ksortablevaluelist</option>,  <option value="classKStandardDirs.html">kstandarddirs</option>,  <option value="classKStaticDeleter.html">kstaticdeleter</option>,  <option value="classKStaticDeleterBase.html">kstaticdeleterbase</option>,  <option value="classKStdAccel_1_1ShortcutList.html">kstdaccel::shortcutlist</option>,  <option value="classKStringHandler.html">kstringhandler</option>,  <option value="classKSycocaEntry.html">ksycocaentry</option>,  <option value="classKSycocaFactoryList.html">ksycocafactorylist</option>,  <option value="classKTempDir.html">ktempdir</option>,  <option value="classKTempFile.html">ktempfile</option>,  <option value="classKTimezone.html">ktimezone</option>,  <option value="classKTimezoneDetails.html">ktimezonedetails</option>,  <option value="classKTimezones.html">ktimezones</option>,  <option value="classKTimezoneSource.html">ktimezonesource</option>,  <option value="classKUniqueApplication.html">kuniqueapplication</option>,  <option value="classKUnixSocketAddress.html">kunixsocketaddress</option>,  <option value="classKURL.html">kurl</option>,  <option value="classKURL_1_1List.html">kurl::list</option>,  <option value="classKURLDrag.html">kurldrag</option>,  <option value="classKUser.html">kuser</option>,  <option value="classKUserGroup.html">kusergroup</option>,  <option value="classKVMAllocator.html">kvmallocator</option>,  <option value="classKWin.html">kwin</option>,  <option value="classKWin_1_1WindowInfo.html">kwin::windowinfo</option>,  <option value="classKWinModule.html">kwinmodule</option>,  <option value="classKWordMacroExpander.html">kwordmacroexpander</option>,  <option value="classKXErrorHandler.html">kxerrorhandler</option>,  <option value="classKZoneAllocator.html">kzoneallocator</option>,  <option value="classNET.html">net</option>,
</select>
</form>
</div>
-->
</div></div>
<div class="menu_box"><h2>API Dox</h2>
<div class="nav_list">
<ul>
<li><a href="../../arts/html/index.html">arts</a></li><li><a href="../../dcop/html/index.html">dcop</a></li><li><a href="../../dnssd/html/index.html">dnssd</a></li><li><a href="../../interfaces/html/index.html">interfaces</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/interface/html/index.html">interface</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/library/html/index.html">library</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/kspeech/html/index.html">kspeech</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/ktexteditor/html/index.html">ktexteditor</a></li><li><a href="../../kabc/html/index.html">kabc</a></li><li><a href="../../kate/html/index.html">kate</a></li><li><a href="../../kcmshell/html/index.html">kcmshell</a></li><li><a href="../../kdecore/html/index.html">kdecore</a></li><li><a href="../../kded/html/index.html">kded</a></li><li><a href="../../kdefx/html/index.html">kdefx</a></li><li><a href="../../kdeprint/html/index.html">kdeprint</a></li><li><a href="../../kdesu/html/index.html">kdesu</a></li><li><a href="../../kdeui/html/index.html">kdeui</a></li><li><a href="../../kdoctools/html/index.html">kdoctools</a></li><li><a href="../../khtml/html/index.html">khtml</a></li><li><a href="../../kimgio/html/index.html">kimgio</a></li><li><a href="../../kinit/html/index.html">kinit</a></li><li><a href="../../kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/bookmarks/html/index.html">bookmarks</a></li><li>&nbsp;&nbsp;<a href="../../kio/httpfilter/html/index.html">httpfilter</a></li><li>&nbsp;&nbsp;<a href="../../kio/kfile/html/index.html">kfile</a></li><li>&nbsp;&nbsp;<a href="../../kio/kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/kioexec/html/index.html">kioexec</a></li><li>&nbsp;&nbsp;<a href="../../kio/kpasswdserver/html/index.html">kpasswdserver</a></li><li>&nbsp;&nbsp;<a href="../../kio/kssl/html/index.html">kssl</a></li><li><a href="../../kioslave/html/index.html">kioslave</a></li><li>&nbsp;&nbsp;<a href="../../kioslave/http/html/index.html">http</a></li><li><a href="../../kjs/html/index.html">kjs</a></li><li><a href="../../kmdi/html/index.html">kmdi</a></li><li>&nbsp;&nbsp;<a href="../../kmdi/kmdi/html/index.html">kmdi</a></li><li><a href="../../knewstuff/html/index.html">knewstuff</a></li><li><a href="../../kparts/html/index.html">kparts</a></li><li><a href="../../kresources/html/index.html">kresources</a></li><li><a href="../../kspell2/html/index.html">kspell2</a></li><li><a href="../../kunittest/html/index.html">kunittest</a></li><li><a href="../../kutils/html/index.html">kutils</a></li><li><a href="../../kwallet/html/index.html">kwallet</a></li><li><a href="../../libkmid/html/index.html">libkmid</a></li><li><a href="../../libkscreensaver/html/index.html">libkscreensaver</a></li>
</ul></div></div>


        </td>
</tr>
</table>

<span class="doNotDisplay">
  <a href="http://www.kde.org/" accesskey="8">KDE Home</a> |
  <a href="http://accessibility.kde.org/" accesskey="9">KDE Accessibility Home</a> |
  <a href="http://www.kde.org/media/accesskeys.php" accesskey="0">Description of Access Keys</a>
</span>


<div style="height: 8px"></div>

<div id="footer">
  <div id="footer_left">
    Maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
and
<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;nter&#64;kde&#46;or&#x67">Allen Winter</a>.
<br/>
    KDE and K Desktop Environment are trademarks of <a href="http://www.kde.org/areas/kde-ev/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
    <a href="http://www.kde.org/contact/impressum.php">Legal</a>
  </div>
  <div id="footer_right"><img src="/media/images/footer_right.png" style="margin: 0px" alt="" /></div>
</div>

<!--
WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL
BE BLOCKED INSTANTLY AND PERMANENTLY!
<a href="mailto:aaaatrap-425acc3b5374943f@kde.org">Block me</a>
WARNING END
-->

</body>
</html>