<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>29279</bug_id>
          
          <creation_ts>2009-09-15 13:57:05 -0700</creation_ts>
          <short_desc>[Qt] Use RGB16 format for images on Symbian platform</short_desc>
          <delta_ts>2010-03-05 09:40:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>S60 Hardware</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Performance, Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>ariya.hidayat</cc>
    
    <cc>benjamin</cc>
    
    <cc>eric</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>pkasting</cc>
    
    <cc>skyul</cc>
    
    <cc>s.mathur</cc>
    
    <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>147378</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-09-15 13:57:05 -0700</bug_when>
    <thetext>To reduce the memory footprint on Qt Symbian, rgb565 format(16 bit) can be used for displaying images.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147379</commentid>
    <comment_count>1</comment_count>
      <attachid>39613</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-09-15 14:11:58 -0700</bug_when>
    <thetext>Created attachment 39613
implement support for rgb565 format in ImageDecoderQt.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147646</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-16 15:33:38 -0700</bug_when>
    <thetext>I don&apos;t understand what this patch does.  But I&apos;ve CC&apos;d peter who hopefully does.

Also, single-line ifs do not get { } per the style guideline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147660</commentid>
    <comment_count>3</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-09-16 16:11:56 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I don&apos;t understand what this patch does.  But I&apos;ve CC&apos;d peter who hopefully
&gt; does.

Clearly, it calls some Qt API.  That&apos;s all I know; I don&apos;t know the Qt APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147664</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-16 16:16:30 -0700</bug_when>
    <thetext>Oh, I totally didn&apos;t realize that m_image was a QImage, but that makes sense.  No clue if this is correct then.  A Qt reviewer would have to comment.  This patch is wrong though due to the style as is.  So it will need at least one more round regardless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147797</commentid>
    <comment_count>5</comment_count>
      <attachid>39693</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-09-17 07:47:40 -0700</bug_when>
    <thetext>Created attachment 39693
modified with coding style change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149173</commentid>
    <comment_count>6</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-09-22 14:04:18 -0700</bug_when>
    <thetext>Can anyone from Qt review the code? Thanks very much, -- Chang</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149414</commentid>
    <comment_count>7</comment_count>
      <attachid>39693</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2009-09-23 09:30:14 -0700</bug_when>
    <thetext>Comment on attachment 39693
modified with coding style change


&gt; +        Images with no alpha channel will be converted to 16bit(rgb565) format in Qt Symbian.
&gt; +        This reduces the memory footprint for displaying images.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=29279

Hardcoding the image format sounds like a wrong thing to do. What about having a setting for that (QWebSettings)?

Also, what if the display depth is 24-bit or 32-bit? We save memory footprint with the patch, but we slow down the painting (even without alpha-blending) because of 16-to-32 pixel handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149751</commentid>
    <comment_count>8</comment_count>
      <attachid>40065</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-09-24 07:23:28 -0700</bug_when>
    <thetext>Created attachment 40065
use qwebsettings to control whether or not use 16-bit image</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150006</commentid>
    <comment_count>9</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2009-09-25 07:27:44 -0700</bug_when>
    <thetext>I think a proper entry in QWebSettings, e.g. accepting QImage::Format, would be better (from API point of view).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150114</commentid>
    <comment_count>10</comment_count>
      <attachid>40138</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-09-25 12:38:28 -0700</bug_when>
    <thetext>Created attachment 40138
patch with different QWebSettings API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150551</commentid>
    <comment_count>11</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-09-28 10:32:41 -0700</bug_when>
    <thetext>Hi, Ariya,

Even I have submitted the new patch that uses QImage::Format in API, I am re-thinking this and feel there is some disadvantage of exposing QImage::Format. First, QImage::Format is internal definitions and may change more frequently than public interface. Second, it has many more formats that we don&apos;t really support. And what we really care is the bit-length of the format not other details. So I plan to use a new enum that only has rgb16 and rgb32. Would you let me know what your thought on this? Thanks,

Chang

(In reply to comment #9)
&gt; I think a proper entry in QWebSettings, e.g. accepting QImage::Format, would be
&gt; better (from API point of view).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152552</commentid>
    <comment_count>12</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-10-05 20:46:58 -0700</bug_when>
    <thetext>ImageDecoder should not know about anything from WebKit. Then this method is quite hot and doing a color conversion is not cool for performance.

What is preventing us to decode the image to max RGB565, e.g. by changing QImageReader. The other question is what is QPixmap on symbian, a QImage with RGB565?

Last, do you notice that you consume more memory in some cases?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152639</commentid>
    <comment_count>13</comment_count>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2009-10-06 03:25:36 -0700</bug_when>
    <thetext>
&gt; First, QImage::Format is internal definitions and may change
&gt; more frequently than public interface. Second, it has many more formats that we
&gt; don&apos;t really support. And what we really care is the bit-length of the format
&gt; not other details. So I plan to use a new enum that only has rgb16 and rgb32.
&gt; Would you let me know what your thought on this? Thanks,

It&apos;s a public API, it is not &quot;internal&quot; at all.

Another concern: what about 5-5-5 in some other platforms (not Symbian)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152702</commentid>
    <comment_count>14</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-10-06 06:36:51 -0700</bug_when>
    <thetext> Some more comments why I think it is bad:

From webkit.org point of view:
   - WebCore/* should not know about WebKit/*

From performance point of view:
   - For certain things using 16bit per pixel is more than the original image used. This can be the case for indexed gifs, PNG that are only 8 bit.

   - There is certainly a speed benefit when the image is in the screen depth as it makes blitting them faster.



The problem is that the API user will not get this right. So in the worse case he increases memory usage and  reduces performance. A better API would say &quot;optimize&quot; for speed, &quot;optimize&quot; for memory. And in both cases  QImage reader should do the right thing for decoding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152710</commentid>
    <comment_count>15</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-10-06 07:10:39 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; First, QImage::Format is internal definitions and may change
&gt; &gt; more frequently than public interface. Second, it has many more formats that we
&gt; &gt; don&apos;t really support. And what we really care is the bit-length of the format
&gt; &gt; not other details. So I plan to use a new enum that only has rgb16 and rgb32.
&gt; &gt; Would you let me know what your thought on this? Thanks,
&gt; 
&gt; It&apos;s a public API, it is not &quot;internal&quot; at all.
&gt; 
&gt; Another concern: what about 5-5-5 in some other platforms (not Symbian)?

The conversion is triggered only if
1. no alpha channels
2. the original format is RGB32
3. new format is RGB16

With the current patch, no code changes the default setting to RGB16. Even browser client from other platform starts to use this API, whether internally 5-5-5 or 5-6-5 is used is transparent to the client. I should probably change the title of this bug to &quot;Using RGB16...&quot; to make it less confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152714</commentid>
    <comment_count>16</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-10-06 07:24:02 -0700</bug_when>
    <thetext>(In reply to comment #14)

Thanks for the review. Please see my reply below.

&gt;  Some more comments why I think it is bad:
&gt; 
&gt; From webkit.org point of view:
&gt;    - WebCore/* should not know about WebKit/*

I agree this is valid concern from design. However, the current WebCore/platform/qt code already includes code from WebKit/qt/*, see for example,
WebCore/platform/graphics/qt/ImageQt.cpp:#include &quot;qwebsettings.h&quot;. We can probably improve the code some time later.

&gt; 
&gt; From performance point of view:
&gt;    - For certain things using 16bit per pixel is more than the original image
&gt; used. This can be the case for indexed gifs, PNG that are only 8 bit.

The patch checks the original format of the image. The conversion makes sure it converts 32-bit to 16-bit.

&gt; 
&gt;    - There is certainly a speed benefit when the image is in the screen depth
&gt; as it makes blitting them faster.

I totally agree. Fortunately, based on testing, the speed impact is much less while the memory reduction is significant. Note this patch only provides the API and implementation. It does not force the conversion by default.

&gt; 
&gt; 
&gt; 
&gt; The problem is that the API user will not get this right. So in the worse case
&gt; he increases memory usage and  reduces performance. A better API would say
&gt; &quot;optimize&quot; for speed, &quot;optimize&quot; for memory. And in both cases  QImage reader
&gt; should do the right thing for decoding.

We can say the default behavior is &quot;optimized&quot; for speed and if the setting is changed to RGB16, it is &quot;optimized&quot; for memory. Any suggestion on naming the API function is appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152716</commentid>
    <comment_count>17</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-10-06 07:30:34 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #13)
&gt; &gt; &gt; First, QImage::Format is internal definitions and may change
&gt; &gt; &gt; more frequently than public interface. Second, it has many more formats that we
&gt; &gt; &gt; don&apos;t really support. And what we really care is the bit-length of the format
&gt; &gt; &gt; not other details. So I plan to use a new enum that only has rgb16 and rgb32.
&gt; &gt; &gt; Would you let me know what your thought on this? Thanks,
&gt; &gt; 
&gt; &gt; It&apos;s a public API, it is not &quot;internal&quot; at all.
&gt; &gt; 
&gt; &gt; Another concern: what about 5-5-5 in some other platforms (not Symbian)?
&gt; 
&gt; The conversion is triggered only if
&gt; 1. no alpha channels
&gt; 2. the original format is RGB32
&gt; 3. new format is RGB16

Ah sorry, I didn&apos;t attempt to fully parse the code.


&gt; 
&gt; With the current patch, no code changes the default setting to RGB16. Even
&gt; browser client from other platform starts to use this API, whether internally
&gt; 5-5-5 or 5-6-5 is used is transparent to the client. I should probably change
&gt; the title of this bug to &quot;Using RGB16...&quot; to make it less confusing.

Well the point is that this is a decision that the API user should not take as
he has no idea about the consequences on the platform. On X11 this will kill
performance even more.

Two factors for speed and memory usage: Decode the image to what you want
instead of doing color conversion afterwards (in QImageReader/QImageIO), limit
the maximum size of images (see WebCore decoders).

And there is an easy way to convince me, I have created benchmarks and if less
memory in these benchmarks is allocated and they perform faster I&apos;m open to any
change. So far I think the fix should be in QImageReader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152717</commentid>
    <comment_count>18</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-10-06 07:36:01 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #14)

&gt; I agree this is valid concern from design. However, the current
&gt; WebCore/platform/qt code already includes code from WebKit/qt/*, see for
&gt; example,
&gt; WebCore/platform/graphics/qt/ImageQt.cpp:#include &quot;qwebsettings.h&quot;. We can
&gt; probably improve the code some time later.

Well, this is not a reason to do more harm.


&gt; I totally agree. Fortunately, based on testing, the speed impact is much less
&gt; while the memory reduction is significant. Note this patch only provides the
&gt; API and implementation. It does not force the conversion by default.

The great thing is that we can measure this now and share results: http://trac.webkit.org/wiki/QtWebKitPerformanceWork. If you are with Nokia I can probably give you access to my existing test database. We can both look into loading, cycling speed and memory usage.

Besides that the default depth should be handled by QImageReader and not in WebCore and you need to rebase now as a major rework of the image handling was just landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152721</commentid>
    <comment_count>19</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-10-06 07:48:59 -0700</bug_when>
    <thetext>(In reply to comment #17)

Thanks for the quick reply.

&gt; (In reply to comment #15)
&gt; 
&gt; Well the point is that this is a decision that the API user should not take as
&gt; he has no idea about the consequences on the platform. On X11 this will kill
&gt; performance even more.
&gt; 
&gt; Two factors for speed and memory usage: Decode the image to what you want
&gt; instead of doing color conversion afterwards (in QImageReader/QImageIO), limit
&gt; the maximum size of images (see WebCore decoders).
&gt; 
&gt; And there is an easy way to convince me, I have created benchmarks and if less
&gt; memory in these benchmarks is allocated and they perform faster I&apos;m open to any
&gt; change. So far I think the fix should be in QImageReader.

If the change is in QImageReader, other Qt applications than browser will be affected. Some other Qt guys said no on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152723</commentid>
    <comment_count>20</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-10-06 07:58:05 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; 
&gt; Well, this is not a reason to do more harm.

Yes, yes.  :) But I have to work on what I have now. Good that the change is still limited to qwebsetting which can be re-designed by Qt.
&gt; 
&gt; 
&gt; 
&gt; The great thing is that we can measure this now and share results:
&gt; http://trac.webkit.org/wiki/QtWebKitPerformanceWork. If you are with Nokia I
&gt; can probably give you access to my existing test database. We can both look
&gt; into loading, cycling speed and memory usage.

Yes, I will talk to you through email. Thanks

&gt; 
&gt; Besides that the default depth should be handled by QImageReader and not in
&gt; WebCore and you need to rebase now as a major rework of the image handling was
&gt; just landed.

The concern was whether other Qt applications want this feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153044</commentid>
    <comment_count>21</comment_count>
      <attachid>40138</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-10-07 08:14:20 -0700</bug_when>
    <thetext>Comment on attachment 40138
patch with different QWebSettings API


&gt;          LocalContentCanAccessRemoteUrls,
&gt;          SessionStorageEnabled,
&gt; -        DnsPrefetchEnabled
&gt; +        DnsPrefetchEnabled,

The trailing comma shouldn&apos;t be there :)

&gt;      };
&gt;      enum WebGraphic {
&gt;          MissingImageGraphic,
&gt; @@ -134,6 +134,9 @@ public:
&gt;  
&gt;      static void enablePersistentStorage(const QString&amp; path = QString());
&gt;  
&gt; +    void setImageFormat(QImage::Format format);
&gt; +    QImage::Format imageFormat();
&gt; +

If this is a regular member function of QWebSettings, then it must also be possible to 
set the image format per-page. However in the implementation we can only use QWebSettings::globalSettings(), we
do not have access to the page. Therefore if we decide to use this API, then we it should be a static function in QWebSettings.


I am however concerned that we need such an API in the first place. Is there any way we can make a smart
decision ourselves? Do we really have to bother the application programmer with this?

And most importantly: Is this optimization still necessary after Holger&apos;s changes from #27538 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154310</commentid>
    <comment_count>22</comment_count>
      <attachid>41097</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-10-13 04:13:25 -0700</bug_when>
    <thetext>Created attachment 41097
Memory with RGB16 instead of RGB32</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154311</commentid>
    <comment_count>23</comment_count>
      <attachid>41098</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-10-13 04:14:09 -0700</bug_when>
    <thetext>Created attachment 41098
Memory usage before the QImageReader change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154312</commentid>
    <comment_count>24</comment_count>
      <attachid>41099</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-10-13 04:18:04 -0700</bug_when>
    <thetext>Created attachment 41099
API for QImageReader...

My metric skills are not so good but this looks like a 1.6MB memory saving on images from my benchmark. Can you confirm that you see similiar numbers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154575</commentid>
    <comment_count>25</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-10-14 08:00:48 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Created an attachment (id=41099) [details]
&gt; API for QImageReader...
&gt; 
&gt; My metric skills are not so good but this looks like a 1.6MB memory saving on
&gt; images from my benchmark. Can you confirm that you see similiar numbers?

I tried Holger&apos;s code locally. First, I tried it on Symbian OS with local webkit database. However, since our local webkit does not have the latest image re-work, the code didn&apos;t work after I simply call setPreferredFormat in setData. I need more time to do the debugging. I also tried it on Qt Linux. I applied the patch on Qt4.5. I see the patch is executed successfully. However, there is a call to buffer-&gt;asNewNativeImage() inside function ImageSource::createFrameAtIndex(). This converts 16bit image back to 32bit image as the latter is the native format. And this explains why I didn&apos;t see any improvement through memory monitor tool.
Good that in Qt NSP version, the conversion to native format won&apos;t happen automatically(in QPixmap::fromImage()). Since NSP does not work on Linux, I have to setup a new work environment to test this.

Saying all the above, I am concerned about the availability of Holger&apos;s code. It seems too late to wait for 4.7. I am wondering if we can do this convert-to-preferred-format logic in ImageDecoderQt::internalHandleCurrentImage() for now. Besides, even put the logic in Qt, we still have the headache of how to trigger this: whether through qwebsettings api, or by ifdef(SYMBIAN) or for all Qt platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154678</commentid>
    <comment_count>26</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-10-14 18:23:44 -0700</bug_when>
    <thetext>(In reply to comment #25)

&gt; I tried Holger&apos;s code locally. First, I tried it on Symbian OS with local
&gt; webkit database. However, since our local webkit does not have the latest image
&gt; re-work, the code didn&apos;t work after I simply call setPreferredFormat in
&gt; setData. I need more time to do the debugging. I also tried it on Qt Linux. I
&gt; applied the patch on Qt4.5. I see the patch is executed successfully. However,
&gt; there is a call to buffer-&gt;asNewNativeImage() inside function
&gt; ImageSource::createFrameAtIndex(). This converts 16bit image back to 32bit
&gt; image as the latter is the native format. And this explains why I didn&apos;t see
&gt; any improvement through memory monitor tool.
&gt; Good that in Qt NSP version, the conversion to native format won&apos;t happen
&gt; automatically(in QPixmap::fromImage()). Since NSP does not work on Linux, I
&gt; have to setup a new work environment to test this.

Note, my 1.7memory saving is not taking the QImage-&gt;QPixmap into account. In my benchmark asNewNativeImage is not called at all. I have created bug #30211 to make use of QImage instead of QPixmap for painting but I have not yet benchmarked it.


&gt; 
&gt; Saying all the above, I am concerned about the availability of Holger&apos;s code.
&gt; It seems too late to wait for 4.7. I am wondering if we can do this
&gt; convert-to-preferred-format logic in
&gt; ImageDecoderQt::internalHandleCurrentImage() for now.

No. We are fixing things where they need to be fixed. I have no idea about constraints but you will probably have more than one patch to Qt when doing a release/deployment. Just add the API after Qt has agreed that it will be accepted.


Currently I&apos;m not really convinced that the 1.7MB is a big difference, do you have other data showing a bigger saving?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154688</commentid>
    <comment_count>27</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2009-10-14 19:09:38 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Note, my 1.7memory saving is not taking the QImage-&gt;QPixmap into account. In my
&gt; benchmark asNewNativeImage is not called at all. I have created bug #30211 to
&gt; make use of QImage instead of QPixmap for painting but I have not yet
&gt; benchmarked it.

Can you provide some details about your test case:
1. what&apos;s the size of your image(s)?
2. Without the image, what&apos;s the memory usage?

But anyway, we can calculate the memory saving = w*h*4/2. For example, a 800x600 image saves 0.96MB.

&gt; No. We are fixing things where they need to be fixed. I have no idea about
&gt; constraints but you will probably have more than one patch to Qt when doing a
&gt; release/deployment. Just add the API after Qt has agreed that it will be
&gt; accepted.

I totally agree adding API as early as possible is great idea. This doesn&apos;t prevent us doing the implementation at webkit level for now. Otherwise, we have to wait for mid next year to get the job done.

&gt; Currently I&apos;m not really convinced that the 1.7MB is a big difference, do you
&gt; have other data showing a bigger saving?

I won&apos;t think the memory saving will the different as long as we find out three figures:
the &quot;baseline&quot;: memory consumption with no image; memory consumption with image using this 16bit conversion and without this conversion. Based on the calculation, I feel it&apos;s worthwhile doing it on mobile platforms. Maybe a #ifdef MOBILE is a good way to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154700</commentid>
    <comment_count>28</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-10-14 20:47:59 -0700</bug_when>
    <thetext>(In reply to comment #27)

&gt; Can you provide some details about your test case:
&gt; 1. what&apos;s the size of your image(s)?
&gt; 2. Without the image, what&apos;s the memory usage?
&gt; 
&gt; But anyway, we can calculate the memory saving = w*h*4/2. For example, a
&gt; 800x600 image saves 0.96MB.

I&apos;m using the real web with row01 to row39 and I captured images that got decoded during rendering on a 1024x768 viewport. I have measured the memory usage on the reductions/image_cycling in the same tree.

  - http://gitorious.org/qtwebkit/performance/blobs/master/common/common_init.h



&gt; 
&gt; &gt; No. We are fixing things where they need to be fixed. I have no idea about
&gt; &gt; constraints but you will probably have more than one patch to Qt when doing a
&gt; &gt; release/deployment. Just add the API after Qt has agreed that it will be
&gt; &gt; accepted.
&gt; 
&gt; I totally agree adding API as early as possible is great idea. This doesn&apos;t
&gt; prevent us doing the implementation at webkit level for now. Otherwise, we have
&gt; to wait for mid next year to get the job done.

One thing after another. Currently this will only add a negative performance  impact on converting to 16bit in Qt/ImageDecoder and converting back to 32bit in QPixmap::fromImage.

So let us focus on:

1.) Showing that the color conversion from RGB32 to RGB16 is actually saving significant amount of memory and then to look at the performance impact of that change.

2.) Look at decoding gif&apos;s to 8bit or below...





&gt; 
&gt; &gt; Currently I&apos;m not really convinced that the 1.7MB is a big difference, do you
&gt; &gt; have other data showing a bigger saving?
&gt; 
&gt; I won&apos;t think the memory saving will the different as long as we find out three
&gt; figures:
&gt; the &quot;baseline&quot;: memory consumption with no image; memory consumption with image
&gt; using this 16bit conversion and without this conversion.

For the baseline. Looking at the mirrored sites, do you think anything major is missing? Should we have a pure top50 data set as well. I highly encourage you start to look into the mirror tool and attempt to verify my benchmark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196522</commentid>
    <comment_count>29</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-03-05 09:40:18 -0800</bug_when>
    <thetext>Closing as invalid.

I might be wrong but it looks like:
-images are always decoded to QPixmap
-QPixmap have the correct color depth (tested on Maemo)

So 32 bits images are kept only into m_frameBufferCache of ImageDecoder. It might make sense to keep ARGB image in 32 bits, but that is a problem of Qt which is currently being investigated by the graphics team.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39613</attachid>
            <date>2009-09-15 14:11:58 -0700</date>
            <delta_ts>2009-09-17 07:47:40 -0700</delta_ts>
            <desc>implement support for rgb565 format in ImageDecoderQt.cpp</desc>
            <filename>bug29279.patch</filename>
            <type>text/plain</type>
            <size>1329</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQu
Y3BwCShyZXZpc2lvbiA0ODM5OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1h
Z2VEZWNvZGVyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTYsNiArMzE2LDExIEBACiAgICAg
ICAgIHJldHVybiAwOwogCiAgICAgaWYgKCFtX3BpeG1hcENhY2hlLmNvbnRhaW5zKGluZGV4KSkg
eworI2lmIFBMQVRGT1JNKFNZTUJJQU4pCisgICAgICAgIGlmICghc3VwcG9ydHNBbHBoYSgpKSB7
CisgICAgICAgICAgICBtX2ltYWdlTGlzdFtpbmRleF0ubV9pbWFnZSA9IG1faW1hZ2VMaXN0W2lu
ZGV4XS5tX2ltYWdlLmNvbnZlcnRUb0Zvcm1hdChRSW1hZ2U6OkZvcm1hdF9SR0IxNik7CisgICAg
ICAgIH0KKyNlbmRpZgogICAgICAgICBtX3BpeG1hcENhY2hlLmluc2VydChpbmRleCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUVBpeG1hcDo6ZnJvbUltYWdlKG1faW1hZ2VMaXN0W2lu
ZGV4XS5tX2ltYWdlKSk7CiAKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0ODQwMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDktMTUgIFNodSBDaGFuZyAg
PENoYW5nLlNodUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1hZ2VzIHdpdGggbm8gYWxwaGEgY2hhbm5lbCB3aWxsIGJlIGNvbnZl
cnRlZCB0byAxNmJpdChyZ2I1NjUpIGZvcm1hdCBpbiBRdCBTeW1iaWFuLgorICAgICAgICBUaGlz
IHJlZHVjZXMgdGhlIG1lbW9yeSBmb290cHJpbnQgZm9yIGRpc3BsYXlpbmcgaW1hZ2VzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkyNzkKKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlRGVjb2RlclF0OjppbWFnZUF0SW5kZXgpOgorCiAyMDA5LTA5LTE1ICBB
bGV4IE1pbG93c2tpICA8YWxleEBtaWxvd3NraS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
VG9yIEFybmUgVmVzdGLDuC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39693</attachid>
            <date>2009-09-17 07:47:40 -0700</date>
            <delta_ts>2009-09-24 07:23:28 -0700</delta_ts>
            <desc>modified with coding style change</desc>
            <filename>bug29279_2.patch</filename>
            <type>text/plain</type>
            <size>1316</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODQwMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMDktMTUgIFNodSBDaGFuZyAgPENoYW5nLlNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1h
Z2VzIHdpdGggbm8gYWxwaGEgY2hhbm5lbCB3aWxsIGJlIGNvbnZlcnRlZCB0byAxNmJpdChyZ2I1
NjUpIGZvcm1hdCBpbiBRdCBTeW1iaWFuLgorICAgICAgICBUaGlzIHJlZHVjZXMgdGhlIG1lbW9y
eSBmb290cHJpbnQgZm9yIGRpc3BsYXlpbmcgaW1hZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkyNzkKKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVj
b2RlclF0OjppbWFnZUF0SW5kZXgpOgorCiAyMDA5LTA5LTE1ICBBbGV4IE1pbG93c2tpICA8YWxl
eEBtaWxvd3NraS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQu
Y3BwCShyZXZpc2lvbiA0ODM5OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1h
Z2VEZWNvZGVyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTYsNiArMzE2LDEwIEBACiAgICAg
ICAgIHJldHVybiAwOwogCiAgICAgaWYgKCFtX3BpeG1hcENhY2hlLmNvbnRhaW5zKGluZGV4KSkg
eworI2lmIFBMQVRGT1JNKFNZTUJJQU4pCisgICAgICAgIGlmICghc3VwcG9ydHNBbHBoYSgpKQor
ICAgICAgICAgICAgbV9pbWFnZUxpc3RbaW5kZXhdLm1faW1hZ2UgPSBtX2ltYWdlTGlzdFtpbmRl
eF0ubV9pbWFnZS5jb252ZXJ0VG9Gb3JtYXQoUUltYWdlOjpGb3JtYXRfUkdCMTYpOworI2VuZGlm
CiAgICAgICAgIG1fcGl4bWFwQ2FjaGUuaW5zZXJ0KGluZGV4LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBRUGl4bWFwOjpmcm9tSW1hZ2UobV9pbWFnZUxpc3RbaW5kZXhdLm1faW1hZ2Up
KTsKIAo=
</data>
<flag name="review"
          id="20822"
          type_id="1"
          status="-"
          setter="ariya.hidayat"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40065</attachid>
            <date>2009-09-24 07:23:28 -0700</date>
            <delta_ts>2009-09-25 12:38:28 -0700</delta_ts>
            <desc>use qwebsettings to control whether or not use 16-bit image</desc>
            <filename>bug29279_3.patch</filename>
            <type>text/plain</type>
            <size>3411</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODcxOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDktMjQgIFNodSBDaGFuZyAgPENoYW5nLlNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1h
Z2VzIHdpdGggbm8gYWxwaGEgY2hhbm5lbCB3aWxsIGJlIGNvbnZlcnRlZCB0byAxNmJpdChyZ2I1
NjUpIGZvcm1hdCBiYXNlZCBvbiBRV2ViU2V0dGluZ3MuCisgICAgICAgIFRoaXMgcmVkdWNlcyB0
aGUgbWVtb3J5IGZvb3RwcmludCBmb3IgZGlzcGxheWluZyBpbWFnZXMuCisgICAgICAgIAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkyNzkKKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlRGVjb2RlclF0OjppbWFnZUF0SW5kZXgpOgorCiAyMDA5LTA5LTI0ICBQ
YXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFRpbW90aHkgSGF0Y2hlci4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
SW1hZ2VEZWNvZGVyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvSW1hZ2VEZWNvZGVyUXQuY3BwCShyZXZpc2lvbiA0ODM5OSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVy
UXQuaCIKIAorI2luY2x1ZGUgInF3ZWJzZXR0aW5ncy5oIgorCiAjaW5jbHVkZSA8UXRDb3JlL1FC
eXRlQXJyYXk+CiAjaW5jbHVkZSA8UXRDb3JlL1FCdWZmZXI+CiAKQEAgLTMxNiw2ICszMTgsMTAg
QEAgUVBpeG1hcCogSW1hZ2VEZWNvZGVyUXQ6OmltYWdlQXRJbmRleChzaQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIGlmICghbV9waXhtYXBDYWNoZS5jb250YWlucyhpbmRleCkpIHsKKyAgICAg
ICAgaWYgKFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKS0+dGVzdEF0dHJpYnV0ZShRV2Vi
U2V0dGluZ3M6OlVzZU1lZGl1bUltYWdlUXVhbGl0eSkpCisgICAgICAgICAgICBpZiAoIXN1cHBv
cnRzQWxwaGEoKSAmJiBtX2ltYWdlTGlzdFtpbmRleF0ubV9pbWFnZS5mb3JtYXQoKSA9PSBRSW1h
Z2U6OkZvcm1hdF9SR0IzMikKKyAgICAgICAgICAgICAgICBtX2ltYWdlTGlzdFtpbmRleF0ubV9p
bWFnZSA9IG1faW1hZ2VMaXN0W2luZGV4XS5tX2ltYWdlLmNvbnZlcnRUb0Zvcm1hdChRSW1hZ2U6
OkZvcm1hdF9SR0IxNik7CisKICAgICAgICAgbV9waXhtYXBDYWNoZS5pbnNlcnQoaW5kZXgsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFQaXhtYXA6OmZyb21JbWFnZShtX2ltYWdlTGlz
dFtpbmRleF0ubV9pbWFnZSkpOwogCkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4NzE5KQorKysgV2ViS2l0L3F0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA5LTA5LTI0ICBT
aHUgQ2hhbmcgIDxDaGFuZy5TaHVAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHNldHRpbmcgdG8gdXNlIG1lZGl1bSBpbWFn
ZSBxdWFsaXR5ICgxNi1iaXQpIG9yIG5vdC4KKyAgICAgICAgRGVmYXVsdCB2YWx1ZSBpcyBmYWxz
ZSwgbWVhbmluZyBoaWdoIGltYWdlIHF1YWxpdHkgKDMyLWJpdCkuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5Mjc5CisKKyAgICAgICAgKiBBcGkv
cXdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKFFXZWJTZXR0aW5nczo6UVdlYlNldHRpbmdzKToK
KyAgICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmg6CisKIDIwMDktMDktMjQgIE1hcnRpbiBTbWl0
aCAgPG1zbWl0aEB0cm9sbHRlY2guY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhh
dXNtYW5uLgpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkocmV2aXNpb24gNDgzOTkpCisrKyBX
ZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3Niw2ICsz
NzYsNyBAQCBRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncygpCiAgICAgZC0+YXR0cmlidXRlcy5p
bnNlcnQoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VFbmFibGVkLCBmYWxzZSk7CiAgICAgZC0+
YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpMb2NhbENvbnRlbnRDYW5BY2Nlc3NSZW1v
dGVVcmxzLCBmYWxzZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpT
ZXNzaW9uU3RvcmFnZUVuYWJsZWQsIHRydWUpOworICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFX
ZWJTZXR0aW5nczo6VXNlTWVkaXVtSW1hZ2VRdWFsaXR5LCBmYWxzZSk7CiAgICAgZC0+b2ZmbGlu
ZVN0b3JhZ2VEZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEwMjQ7CiB9CiAKSW5kZXg6IFdlYktp
dC9xdC9BcGkvcXdlYnNldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vi
c2V0dGluZ3MuaAkocmV2aXNpb24gNDgzOTkpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw4IEBAIHB1YmxpYzoKICNlbmRpZgogICAg
ICAgICBMb2NhbENvbnRlbnRDYW5BY2Nlc3NSZW1vdGVVcmxzLAogICAgICAgICBTZXNzaW9uU3Rv
cmFnZUVuYWJsZWQsCi0gICAgICAgIERuc1ByZWZldGNoRW5hYmxlZAorICAgICAgICBEbnNQcmVm
ZXRjaEVuYWJsZWQsCisgICAgICAgIFVzZU1lZGl1bUltYWdlUXVhbGl0eQogICAgIH07CiAgICAg
ZW51bSBXZWJHcmFwaGljIHsKICAgICAgICAgTWlzc2luZ0ltYWdlR3JhcGhpYywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40138</attachid>
            <date>2009-09-25 12:38:28 -0700</date>
            <delta_ts>2009-10-07 08:14:19 -0700</delta_ts>
            <desc>patch with different QWebSettings API</desc>
            <filename>bug29279_4.patch</filename>
            <type>text/plain</type>
            <size>4609</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODc2NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDktMjUgIFNodSBDaGFuZyAgPENoYW5nLlNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkdC
MzIgaW1hZ2VzIHdpdGggbm8gYWxwaGEgY2hhbm5lbCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIGZv
cm1hdCBzcGVjaWZpZWQgYnkgUVdlYlNldHRpbmdzLgorICAgICAgICBVc2luZyBhIGxvd2VyIHF1
YWxpdHkgZm9ybWF0LCBzdWNoIGFzIFJHQjE2LCBoZWxwcyByZWR1Y2luZyB0aGUgbWVtb3J5IGZv
b3RwcmludC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjkyNzkKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlclF0OjppbWFnZUF0SW5kZXgpOgor
CiAyMDA5LTA5LTI1ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIsIERhbiBCZXJuc3RlaW4sIEFkZWxlIFBldGVyc29u
LCBhbmQgb3RoZXJzLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURl
Y29kZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9J
bWFnZURlY29kZXJRdC5jcHAJKHJldmlzaW9uIDQ4Mzk5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbWFnZURlY29kZXJRdC5oIgog
CisjaW5jbHVkZSAicXdlYnNldHRpbmdzLmgiCisKICNpbmNsdWRlIDxRdENvcmUvUUJ5dGVBcnJh
eT4KICNpbmNsdWRlIDxRdENvcmUvUUJ1ZmZlcj4KIApAQCAtMzE2LDYgKzMxOCwxMSBAQCBRUGl4
bWFwKiBJbWFnZURlY29kZXJRdDo6aW1hZ2VBdEluZGV4KHNpCiAgICAgICAgIHJldHVybiAwOwog
CiAgICAgaWYgKCFtX3BpeG1hcENhY2hlLmNvbnRhaW5zKGluZGV4KSkgeworICAgICAgICBpZiAo
IXN1cHBvcnRzQWxwaGEoKSAKKyAgICAgICAgICAgICYmIG1faW1hZ2VMaXN0W2luZGV4XS5tX2lt
YWdlLmZvcm1hdCgpID09IFFJbWFnZTo6Rm9ybWF0X1JHQjMyCisgICAgICAgICAgICAmJiBRV2Vi
U2V0dGluZ3M6Omdsb2JhbFNldHRpbmdzKCktPmltYWdlRm9ybWF0KCkgIT0gUUltYWdlOjpGb3Jt
YXRfUkdCMzIpCisgICAgICAgICAgICBtX2ltYWdlTGlzdFtpbmRleF0ubV9pbWFnZSA9IG1faW1h
Z2VMaXN0W2luZGV4XS5tX2ltYWdlLmNvbnZlcnRUb0Zvcm1hdChRV2ViU2V0dGluZ3M6Omdsb2Jh
bFNldHRpbmdzKCktPmltYWdlRm9ybWF0KCkpOworCiAgICAgICAgIG1fcGl4bWFwQ2FjaGUuaW5z
ZXJ0KGluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRUGl4bWFwOjpmcm9tSW1h
Z2UobV9pbWFnZUxpc3RbaW5kZXhdLm1faW1hZ2UpKTsKIApJbmRleDogV2ViS2l0L3F0L0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA0ODc2NCkK
KysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAor
MjAwOS0wOS0yNSAgU2h1IENoYW5nICA8Q2hhbmcuU2h1QG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzZXR0aW5nIHRvIHNw
ZWNpZnkgdGhlIGltYWdlIGZvcm1hdC4gUkdCMzIgaW1hZ2VzIHdpdGggCisgICAgICAgIG5vIGFs
cGhhIGNoYW5uZWwgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdGhpcyBmb3JtYXQgYmVmb3JlIGRpc3Bs
YXlpbmcuCisgICAgICAgIFVzaW5nIGEgbG93ZXIgcXVhbGl0eSBmb3JtYXQsIHN1Y2ggYXMgUkdC
MTYsIGhlbHBzIHJlZHVjaW5nIHRoZSBtZW1vcnkgZm9vdHByaW50LgorICAgICAgICBEZWZhdWx0
IHZhbHVlIGlzIFJHQjMyLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yOTI3OQorCisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6CisgICAg
ICAgIChRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncyk6CisgICAgICAgIChRV2ViU2V0dGluZ3M6
OnNldEltYWdlRm9ybWF0KToKKyAgICAgICAgKFFXZWJTZXR0aW5nczo6aW1hZ2VGb3JtYXQpOgor
ICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuaDoKKwogMjAwOS0wOS0yNSAgQ3NhYmEgT3N6dHJv
Z29uYWMgIDxvc3ppQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBIYXVzbWFubi4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAJKHJldmlzaW9uIDQ4Mzk5KQor
KysgV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2
ICs2Miw3IEBAIHB1YmxpYzoKICAgICBRU3RyaW5nIGxvY2FsU3RvcmFnZVBhdGg7CiAgICAgUVN0
cmluZyBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVBhdGg7CiAgICAgcWludDY0IG9mZmxpbmVT
dG9yYWdlRGVmYXVsdFF1b3RhOworICAgIFFJbWFnZTo6Rm9ybWF0IGltZ0Zvcm1hdDsKIAogICAg
IHZvaWQgYXBwbHkoKTsKICAgICBXZWJDb3JlOjpTZXR0aW5ncyogc2V0dGluZ3M7CkBAIC0zNzcs
NiArMzc4LDggQEAgUVdlYlNldHRpbmdzOjpRV2ViU2V0dGluZ3MoKQogICAgIGQtPmF0dHJpYnV0
ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6TG9jYWxDb250ZW50Q2FuQWNjZXNzUmVtb3RlVXJscywg
ZmFsc2UpOwogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6U2Vzc2lvblN0
b3JhZ2VFbmFibGVkLCB0cnVlKTsKICAgICBkLT5vZmZsaW5lU3RvcmFnZURlZmF1bHRRdW90YSA9
IDUgKiAxMDI0ICogMTAyNDsKKworICAgIGQtPmltZ0Zvcm1hdCA9IFFJbWFnZTo6Rm9ybWF0X1JH
QjMyOwogfQogCiAvKiEKQEAgLTk1Myw2ICs5NTYsMjggQEAgdm9pZCBRV2ViU2V0dGluZ3M6OmVu
YWJsZVBlcnNpc3RlbnRTdG9yYQogfQogCiAvKiEKKyAgICBcc2luY2UgNC42CisgICAgXHJlbGF0
ZXMgUVdlYlNldHRpbmdzCisKKyAgICBGb3JjZSB1c2luZyBzcGVjaWZpZWQgaW1hZ2UgZm9ybWF0
IGZvciBkaXNwbGF5LgorKi8KK3ZvaWQgUVdlYlNldHRpbmdzOjpzZXRJbWFnZUZvcm1hdChRSW1h
Z2U6OkZvcm1hdCBmb3JtYXQpCit7CisgICAgZC0+aW1nRm9ybWF0ID0gZm9ybWF0OworfQorCisv
KiEKKyAgICBcc2luY2UgNC42CisgICAgXHJlbGF0ZXMgUVdlYlNldHRpbmdzCisKKyAgICBSZXR1
cm5zIHRoZSBzcGVjaWZpZWQgaW1hZ2UgZm9ybWF0IGZvciBkaXNwbGF5LgorKi8KK1FJbWFnZTo6
Rm9ybWF0IFFXZWJTZXR0aW5nczo6aW1hZ2VGb3JtYXQoKQoreworICAgIHJldHVybiBkLT5pbWdG
b3JtYXQ7Cit9CisKKy8qIQogICAgIFxmbiBRV2ViU2V0dGluZ3NQcml2YXRlKiBRV2ViU2V0dGlu
Z3M6OmhhbmRsZSgpIGNvbnN0CiAgICAgXGludGVybmFsCiAqLwpJbmRleDogV2ViS2l0L3F0L0Fw
aS9xd2Vic2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5oCShyZXZpc2lvbiA0ODM5OSkKKysrIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgICAgIExv
Y2FsQ29udGVudENhbkFjY2Vzc1JlbW90ZVVybHMsCiAgICAgICAgIFNlc3Npb25TdG9yYWdlRW5h
YmxlZCwKLSAgICAgICAgRG5zUHJlZmV0Y2hFbmFibGVkCisgICAgICAgIERuc1ByZWZldGNoRW5h
YmxlZCwKICAgICB9OwogICAgIGVudW0gV2ViR3JhcGhpYyB7CiAgICAgICAgIE1pc3NpbmdJbWFn
ZUdyYXBoaWMsCkBAIC0xMzQsNiArMTM0LDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQg
ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgUVN0cmluZyYgcGF0aCA9IFFTdHJpbmcoKSk7
CiAKKyAgICB2b2lkIHNldEltYWdlRm9ybWF0KFFJbWFnZTo6Rm9ybWF0IGZvcm1hdCk7CisgICAg
UUltYWdlOjpGb3JtYXQgaW1hZ2VGb3JtYXQoKTsKKwogICAgIGlubGluZSBRV2ViU2V0dGluZ3NQ
cml2YXRlKiBoYW5kbGUoKSBjb25zdCB7IHJldHVybiBkOyB9CiAKIHByaXZhdGU6Cg==
</data>
<flag name="review"
          id="21320"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>41097</attachid>
            <date>2009-10-13 04:13:25 -0700</date>
            <delta_ts>2009-10-13 04:13:25 -0700</delta_ts>
            <desc>Memory with RGB16 instead of RGB32</desc>
            <filename>memuage.after.png</filename>
            <type>image/png</type>
            <size>6253</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>41098</attachid>
            <date>2009-10-13 04:14:09 -0700</date>
            <delta_ts>2009-10-13 04:14:09 -0700</delta_ts>
            <desc>Memory usage before the QImageReader change</desc>
            <filename>memuage.before.png</filename>
            <type>image/png</type>
            <size>6144</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYBAMAAABoWJ9DAAAAElBMVEXg4OD/AAAAggAAAP+azTIA
AABT7M1nAAAXqUlEQVR4nO2dCWKzOpZGJfIWIP1VCyD0BtKVXsCrrt7/mhoNYE0ggYV8Ed9JQjDD
Bd9jDQy2GQNNGb6nP9P397f88/3n0/sCGISQA0KIASHEgBBiQAgxIIQYEEIMCCEGhBADQogBIcSA
EGJACDEghBgQQowCIVK8fvn8A67EFzKN8+/gLzE7WH+ZEBByLZ6QgQ36N4Cvv1qL+MR+Poagyppl
zEJGbxEu1K/yIJSQWczvzfjXZPn0jhTwL0fIDxtmFWNURHTxsAOu3Pw0erXUYliEfHpHChg8IarS
0lY8tAtdRmwJgZDriISMYSOytOi6f6UadQEhF+IJMS162IboDi+Xcv41tRaEXIhfQuY+7zSpamsf
CLmOoMoqA0KuA0KIASHEgBBiQAgxIIQYEEIMCCEGhBBDCfmGEDpACDEghBgQQgwIIQaEEANCiAEh
xIAQYkAIMSCEGBBCDAghBoQQA0KIASHEgBBiQAgxIIQYEEIMCCEGhBADQogBIcSAEGJACDEghBgQ
QgwIIQaEEANCiAEhxIAQYkAIMSCEGBBCDAghBoQQA0KIASHEgBBiQAgxIIQYEEIMCCEGhBADQogB
IcSAEGJACDEghBgQQgwIIcYDhAwQQgsIIcaqo4qQsUKMvSgPEDJBCC0ghBgQQoyUkNzXnm0zVtgj
CIEQSkAIMSCEGBBCDAghxg2FTBBSzFhhjyAEQigxJYxAyAeBEGJACDEghBhTxDjMf3bUszUmFg7X
HTeiminDpGS/wo7Rcna6DjJE04fpiUI2eE/IklAtJB9GBxkScyBkpUzItBsVQvLks2OBkDbks2OB
kDbks2OBkDbks2OBkDbks2OpJiSV5zCMDpJaEEJWIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN
+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exY
IKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN
+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exYIKQN+exY
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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41099</attachid>
            <date>2009-10-13 04:18:04 -0700</date>
            <delta_ts>2009-10-13 04:18:04 -0700</delta_ts>
            <desc>API for QImageReader...</desc>
            <filename>0011-QImage-Introduce-API-to-ask-for-a-lower-depth-image.patch</filename>
            <type>text/plain</type>
            <size>4966</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">RnJvbSAwODM1ZTJiNDg5ZTNjYTMzMzQxNTBhNGEyOGEzMjlhZjE5OTU2Zjc5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciA8emVja2VAc2Vs
ZmlzaC5vcmc+CkRhdGU6IFR1ZSwgMTMgT2N0IDIwMDkgMTM6MTA6MTAgKzAyMDAKU3ViamVjdDog
W1BBVENIIDExLzExXSBRSW1hZ2U6IEludHJvZHVjZSBBUEkgdG8gYXNrIGZvciBhIGxvd2VyIGRl
cHRoIGltYWdlCgpBZGQgYSBwcmVmZXJyZWQgZm9ybmF0IGZsYWcgdG8gUUltYWdlSU9IYW5kbGVy
IGFuZCBtYWtlIHVzZSBvZgppdCBmcm9tIHRoZSBRSW1hZ2VSZWFkZXIuIFRoaXMgZmxhZyBhc2tz
IHRoZSBRSW1hZ2VJT0hhbmRsZXIgdG8KcGljayBhIGxvd2VyIGRlcHRoIGltYWdlIHRvIHNhdmUg
c29tZSBtZW1vcnkuIEEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgppcyBhZGRlZCB0byBnbyBmcm9t
IFJHQjMyIHRvIHRoZSB3YW50ZWQgZm9ybWF0LiBUaGUgYXNzdW1wdGlvbgppcyB0aGF0IFJHQjMy
IGlzIHVzZWQgZm9yIGltYWdlcyB3aXRob3V0IGFuIGFscGhhIGNoYW5uZWwuCi0tLQogc3JjL2d1
aS9pbWFnZS9xaW1hZ2Vpb2hhbmRsZXIuY3BwIHwgICAgNSArKysrCiBzcmMvZ3VpL2ltYWdlL3Fp
bWFnZWlvaGFuZGxlci5oICAgfCAgICAzICstCiBzcmMvZ3VpL2ltYWdlL3FpbWFnZXJlYWRlci5j
cHAgICAgfCAgIDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9n
dWkvaW1hZ2UvcWltYWdlcmVhZGVyLmggICAgICB8ICAgIDMgKysKIDQgZmlsZXMgY2hhbmdlZCwg
NTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvZ3VpL2lt
YWdlL3FpbWFnZWlvaGFuZGxlci5jcHAgYi9zcmMvZ3VpL2ltYWdlL3FpbWFnZWlvaGFuZGxlci5j
cHAKaW5kZXggOTlhNWFkNC4uNWQ0NWU5MiAxMDA2NDQKLS0tIGEvc3JjL2d1aS9pbWFnZS9xaW1h
Z2Vpb2hhbmRsZXIuY3BwCisrKyBiL3NyYy9ndWkvaW1hZ2UvcWltYWdlaW9oYW5kbGVyLmNwcApA
QCAtMTU2LDYgKzE1NiwxMSBAQAogCiAgICAgXHZhbHVlIEltYWdlRm9ybWF0IFRoZSBpbWFnZSdz
IGRhdGEgZm9ybWF0IHJldHVybmVkIGJ5IHRoZSBoYW5kbGVyLgogICAgIFRoaXMgY2FuIGJlIGFu
eSBvZiB0aGUgZm9ybWF0cyBsaXN0ZWQgaW4gUUltYWdlOjpGb3JtYXQuCisKKyAgICBcdmFsdWUg
UHJlZmVycmVkSW1hZ2VGb3JtYXQgVGhlIHVzZXJzIHByZWZlcnJlZCBpbWFnZSBmb3JtYXQuIEEK
KyAgICBoYW5kbGVyIHRoYXQgc3VwcG9ydHMgdGhpcyBvcHRpb24gd2lsbCBhdHRlbXB0IHRvIGRl
Y29kZSB0aGUgaW1hZ2UKKyAgICB0byB0aGlzIGZvcm1hdC4gVGhlIHZhbHVlIGNhbiBiZSBhbnkg
b2YgdGhlIGZvcm1hdHMgbGlzdGVkIGluCisgICAgUUltYWdlOjpGb3JtYXQuCiAqLwogCiAvKiEK
ZGlmZiAtLWdpdCBhL3NyYy9ndWkvaW1hZ2UvcWltYWdlaW9oYW5kbGVyLmggYi9zcmMvZ3VpL2lt
YWdlL3FpbWFnZWlvaGFuZGxlci5oCmluZGV4IDk4MGMxNzcuLmI1ODVkMmUgMTAwNjQ0Ci0tLSBh
L3NyYy9ndWkvaW1hZ2UvcWltYWdlaW9oYW5kbGVyLmgKKysrIGIvc3JjL2d1aS9pbWFnZS9xaW1h
Z2Vpb2hhbmRsZXIuaApAQCAtOTMsNyArOTMsOCBAQCBwdWJsaWM6CiAgICAgICAgIEVuZGlhbm5l
c3MsCiAgICAgICAgIEFuaW1hdGlvbiwKICAgICAgICAgQmFja2dyb3VuZENvbG9yLAotICAgICAg
ICBJbWFnZUZvcm1hdAorICAgICAgICBJbWFnZUZvcm1hdCwKKyAgICAgICAgUHJlZmVycmVkSW1h
Z2VGb3JtYXQsCiAgICAgfTsKICAgICB2aXJ0dWFsIFFWYXJpYW50IG9wdGlvbihJbWFnZU9wdGlv
biBvcHRpb24pIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRPcHRpb24oSW1hZ2VPcHRpb24g
b3B0aW9uLCBjb25zdCBRVmFyaWFudCAmdmFsdWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2d1aS9pbWFn
ZS9xaW1hZ2VyZWFkZXIuY3BwIGIvc3JjL2d1aS9pbWFnZS9xaW1hZ2VyZWFkZXIuY3BwCmluZGV4
IGM1YWEyOGIuLjRhYzY2NDYgMTAwNjQ0Ci0tLSBhL3NyYy9ndWkvaW1hZ2UvcWltYWdlcmVhZGVy
LmNwcAorKysgYi9zcmMvZ3VpL2ltYWdlL3FpbWFnZXJlYWRlci5jcHAKQEAgLTQ1Myw2ICs0NTMs
OSBAQCBwdWJsaWM6CiAgICAgUU1hcDxRU3RyaW5nLCBRU3RyaW5nPiB0ZXh0OwogICAgIHZvaWQg
Z2V0VGV4dCgpOwogCisgICAgLy8gbWVtb3J5IGZlYXR1cmVzCisgICAgUUltYWdlOjpGb3JtYXQg
cHJlZmVycmVkRm9ybWF0OworCiAgICAgLy8gZXJyb3IKICAgICBRSW1hZ2VSZWFkZXI6OkltYWdl
UmVhZGVyRXJyb3IgaW1hZ2VSZWFkZXJFcnJvcjsKICAgICBRU3RyaW5nIGVycm9yU3RyaW5nOwpA
QCAtNDcxLDYgKzQ3NCw3IEBAIFFJbWFnZVJlYWRlclByaXZhdGU6OlFJbWFnZVJlYWRlclByaXZh
dGUoUUltYWdlUmVhZGVyICpxcSkKICAgICBoYW5kbGVyID0gMDsKICAgICBxdWFsaXR5ID0gLTE7
CiAgICAgaW1hZ2VSZWFkZXJFcnJvciA9IFFJbWFnZVJlYWRlcjo6VW5rbm93bkVycm9yOworICAg
IHByZWZlcnJlZEZvcm1hdCA9IFFJbWFnZTo6Rm9ybWF0X0ludmFsaWQ7CiAKICAgICBxID0gcXE7
CiB9CkBAIC0xMTEyLDYgKzExMTYsOSBAQCBib29sIFFJbWFnZVJlYWRlcjo6cmVhZChRSW1hZ2Ug
KmltYWdlKQogICAgICAgICBkLT5oYW5kbGVyLT5zZXRPcHRpb24oUUltYWdlSU9IYW5kbGVyOjpT
Y2FsZWRDbGlwUmVjdCwgZC0+c2NhbGVkQ2xpcFJlY3QpOwogICAgIGlmIChkLT5oYW5kbGVyLT5z
dXBwb3J0c09wdGlvbihRSW1hZ2VJT0hhbmRsZXI6OlF1YWxpdHkpKQogICAgICAgICBkLT5oYW5k
bGVyLT5zZXRPcHRpb24oUUltYWdlSU9IYW5kbGVyOjpRdWFsaXR5LCBkLT5xdWFsaXR5KTsKKyAg
ICBpZiAoZC0+cHJlZmVycmVkRm9ybWF0ICE9IFFJbWFnZTo6Rm9ybWF0X0ludmFsaWQKKyAgICAg
ICAgJiYgZC0+aGFuZGxlci0+c3VwcG9ydHNPcHRpb24oUUltYWdlSU9IYW5kbGVyOjpQcmVmZXJy
ZWRJbWFnZUZvcm1hdCkpCisgICAgICAgIGQtPmhhbmRsZXItPnNldE9wdGlvbihRSW1hZ2VJT0hh
bmRsZXI6OlByZWZlcnJlZEltYWdlRm9ybWF0LCBkLT5wcmVmZXJyZWRGb3JtYXQpOwogCiAgICAg
Ly8gcmVhZCB0aGUgaW1hZ2UKICAgICBpZiAoIWQtPmhhbmRsZXItPnJlYWQoaW1hZ2UpKSB7CkBA
IC0xMTc1LDYgKzExODIsMTUgQEAgYm9vbCBRSW1hZ2VSZWFkZXI6OnJlYWQoUUltYWdlICppbWFn
ZSkKICAgICAgICAgfQogICAgIH0KIAorICAgIC8vIERlZmF1bHQgaG9vayB0byBnbyBmcm9tIFJH
QjMyIHRvIHNvbWV0aGluZyBzbWFsbGVyOgorICAgIHFXYXJuaW5nKCJJbWFnZTogJWQgJWR4JWQi
LCBpbWFnZS0+Zm9ybWF0KCksIGltYWdlLT5zaXplKCkud2lkdGgoKSwgaW1hZ2UtPnNpemUoKS5o
ZWlnaHQoKSk7CisgICAgaWYgKCFkLT5oYW5kbGVyLT5zdXBwb3J0c09wdGlvbihRSW1hZ2VJT0hh
bmRsZXI6OlByZWZlcnJlZEltYWdlRm9ybWF0KQorICAgICAgICAmJiBpbWFnZS0+Zm9ybWF0KCkg
PT0gUUltYWdlOjpGb3JtYXRfUkdCMzIKKyAgICAgICAgJiYgaW1hZ2UtPmZvcm1hdCgpICE9IGQt
PnByZWZlcnJlZEZvcm1hdAorICAgICAgICAmJiBkLT5wcmVmZXJyZWRGb3JtYXQgIT0gUUltYWdl
OjpGb3JtYXRfSW52YWxpZCkgeworICAgICAgICAqaW1hZ2UgPSBpbWFnZS0+Y29udmVydFRvRm9y
bWF0KGQtPnByZWZlcnJlZEZvcm1hdCk7CisgICAgfQorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTE0MjIsNCArMTQzOCwzMSBAQCBRTGlzdDxRQnl0ZUFycmF5PiBRSW1hZ2VSZWFkZXI6OnN1
cHBvcnRlZEltYWdlRm9ybWF0cygpCiAgICAgcmV0dXJuIHNvcnRlZEZvcm1hdHM7CiB9CiAKKy8q
CisgICAgXHNpbmNlIDQuNworCisgICAgU2V0IHRoZSBwcmVmZXJyZWQgaW1hZ2UgZm9ybWF0IGZv
ciB0aGUgdG8gYmUKKyAgICBkZWNvZGVkIGltYWdlcy4gVGhpcyBmdW5jdGlvbiBpcyB3b3JraW5n
IG9uIGJlc3QgZWZmb3J0CisgICAgYW5kIHRoZSByZXR1cm5lZCBpbWFnZSBtaWdodCBoYXZlIGEg
ZGlmZmVyZW50IGZvcm1hdCB0aGFuCisgICAgdGhlIG9uZSBzcGVjaWZpZWQuCisKKyAqLwordm9p
ZCBRSW1hZ2VSZWFkZXI6OnNldFByZWZlcnJlZEltYWdlRm9ybWF0KFFJbWFnZTo6Rm9ybWF0IGZv
cm1hdCkKK3sKKyAgICBkLT5wcmVmZXJyZWRGb3JtYXQgPSBmb3JtYXQ7Cit9CisKKy8qCisgICAg
XHNpbmNlIDQuNworCisgICAgUmV0dXJucyB0aGUgcHJlZmVycmVkIGltYWdlIGZvcm1hdCBmb3Ig
dGhlIHRvIGJlCisgICAgZGVjb2RlZCBpbWFnZXMuCisKKyAgICBcc2Egc2V0UHJlZmVycmVkSW1h
Z2VGb3JtYXQKKyovCitRSW1hZ2U6OkZvcm1hdCBRSW1hZ2VSZWFkZXI6OnByZWZlcnJlZEltYWdl
Rm9ybWF0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+cHJlZmVycmVkRm9ybWF0OworfQorCiBR
VF9FTkRfTkFNRVNQQUNFCmRpZmYgLS1naXQgYS9zcmMvZ3VpL2ltYWdlL3FpbWFnZXJlYWRlci5o
IGIvc3JjL2d1aS9pbWFnZS9xaW1hZ2VyZWFkZXIuaAppbmRleCAxMWFmZmI4Li5mODc1MDZlIDEw
MDY0NAotLS0gYS9zcmMvZ3VpL2ltYWdlL3FpbWFnZXJlYWRlci5oCisrKyBiL3NyYy9ndWkvaW1h
Z2UvcWltYWdlcmVhZGVyLmgKQEAgLTEzMSw2ICsxMzEsOSBAQCBwdWJsaWM6CiAKICAgICBib29s
IHN1cHBvcnRzT3B0aW9uKFFJbWFnZUlPSGFuZGxlcjo6SW1hZ2VPcHRpb24gb3B0aW9uKSBjb25z
dDsKIAorICAgIHZvaWQgc2V0UHJlZmVycmVkSW1hZ2VGb3JtYXQoUUltYWdlOjpGb3JtYXQpOwor
ICAgIFFJbWFnZTo6Rm9ybWF0IHByZWZlcnJlZEltYWdlRm9ybWF0KCkgY29uc3Q7CisKICAgICBz
dGF0aWMgUUJ5dGVBcnJheSBpbWFnZUZvcm1hdChjb25zdCBRU3RyaW5nICZmaWxlTmFtZSk7CiAg
ICAgc3RhdGljIFFCeXRlQXJyYXkgaW1hZ2VGb3JtYXQoUUlPRGV2aWNlICpkZXZpY2UpOwogICAg
IHN0YXRpYyBRTGlzdDxRQnl0ZUFycmF5PiBzdXBwb3J0ZWRJbWFnZUZvcm1hdHMoKTsKLS0gCjEu
Ni4zLjMKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>