<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://svn.reviewboard.kde.org/r/5528/">http://svn.reviewboard.kde.org/r/5528/</a>
     </td>
    </tr>
   </table>
   <br />









<div>




<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://svn.reviewboard.kde.org/r/5528/diff/2/?file=38942#file38942line34" style="color: black; font-weight: bold; text-decoration: underline;">/trunk/KDE/kdelibs/knewstuff/knewstuff3/core/cache.h</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">34</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="n">friend</span> <span class="n">class</span> <span class="n">QtSharedPointer</span><span class="o">::</span><span class="n">ExternalRefCount</span><span class="o"><</span><span class="n">Cache</span><span class="o">></span><span class="p">;</span></pre></td>
  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I am not sure if this is clever, since QtSharedPointer::ExternalRefCount<Cache> appears to be a private class.

What do you think?</pre>
</div>
<br />



<p>- Matthias</p>


<br />
<p>On October 5th, 2010, 1:28 p.m., Matthias Fuchs wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://svn.reviewboard.kde.orgrb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for kdelibs and Frederik Gladhorn.</div>
<div>By Matthias Fuchs.</div>


<p style="color: grey;"><i>Updated 2010-10-05 13:28:23</i></p>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Shares the KNS3::Cache amongst every user, thus insuring that it is always consistent.
This way it can't happen, that e.g. KNS3::DownloadManager updates some KNS3::Entries and a call to KNS3::DownloadWidget later on would overwrite the updated ones as updateable.

Using shared pointers ensures that the cache is freed ones noone is using it anymore, resulting in less memory usage compared with a static cache.

NOTE: I am not sure if this is BC, though I think it is as KNS3::Cache is not exported, so please also look at this.

Bugs that could be related: 181730, 234265, 235680</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Tested it with two instances of the plasma applet comic, having a KNS3::DownloadDialog in both open at the same time.
Installing in one a new comic, while not doing this in the other.
This does not update the ui in the other, though this is not target of the patch. Yet since the cache is shared when saving the cache to the hd, both include the newly installed comic.</pre>
  </td>
 </tr>
</table>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>/trunk/KDE/kdelibs/knewstuff/knewstuff3/core/cache.h <span style="color: grey">(1182620)</span></li>

 <li>/trunk/KDE/kdelibs/knewstuff/knewstuff3/core/cache.cpp <span style="color: grey">(1182620)</span></li>

 <li>/trunk/KDE/kdelibs/knewstuff/knewstuff3/core/engine.h <span style="color: grey">(1182620)</span></li>

 <li>/trunk/KDE/kdelibs/knewstuff/knewstuff3/core/engine.cpp <span style="color: grey">(1182620)</span></li>

</ul>

<p><a href="http://svn.reviewboard.kde.org/r/5528/diff/" style="margin-left: 3em;">View Diff</a></p>




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








  </div>
 </body>
</html>