<?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>40797</bug_id>
          
          <creation_ts>2010-06-17 12:40:13 -0700</creation_ts>
          <short_desc>[Qt] Decode images directly to QPixmap</short_desc>
          <delta_ts>2011-04-19 05:15:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Performance, Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>40620</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hausmann</cc>
    
    <cc>kbalazs</cc>
    
    <cc>kenneth</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>239532</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-06-17 12:40:13 -0700</bug_when>
    <thetext>WebKit could decode images directly to QPixmap instead of converting from QImage to QPixmap. This has the advantage of reducing memory consumption, because the images do not have to be twice in memory during the conversion.

Concretely, if a decoded image takes 10 mbytes of memory, converting it will currently use 20 mbytes of memory. Using pixmap directy would leave us a 10 mbytes of memory consumption.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239534</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-17 12:47:20 -0700</bug_when>
    <thetext>That would be a really nice change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239537</commentid>
    <comment_count>2</comment_count>
      <attachid>59029</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-06-17 13:01:23 -0700</bug_when>
    <thetext>Created attachment 59029
Patch

This patch require changes in Qt to reduce the memory usage.

The change also has a side effect if the graphic system is OpenGL. With the patch, a compressed texture can be loaded as an image in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239541</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-17 13:07:48 -0700</bug_when>
    <thetext>Attachment 59029 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/graphics/qt/ImageDecoderQt.cpp:192:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239542</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-06-17 13:08:07 -0700</bug_when>
    <thetext>Attachment 59029 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3321328</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239546</commentid>
    <comment_count>5</comment_count>
      <attachid>59030</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-06-17 13:12:44 -0700</bug_when>
    <thetext>Created attachment 59030
Patch

Fix the style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239551</commentid>
    <comment_count>6</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-06-17 13:19:26 -0700</bug_when>
    <thetext>Attachment 59030 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3302306</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239552</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-06-17 13:21:47 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Attachment 59030 [details] did not build on qt:
&gt; Build output: http://webkit-commit-queue.appspot.com/results/3302306

To the reviewer, it does not build because 40620 has not landed yet. If it is still not landed tomorrow, I&apos;ll do it manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239560</commentid>
    <comment_count>8</comment_count>
      <attachid>59030</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-17 13:57:43 -0700</bug_when>
    <thetext>Comment on attachment 59030
Patch

LGTM, cq- as the patch in Qt is not available on gitorious yet and waiting for final review.

A few questions:

 192     else {
 193         QImage img;
 194         const bool imageLoaded = m_reader-&gt;read(&amp;img);
 195         if (imageLoaded) {
 196             pixmap = QPixmap::fromImage(img);
 197             pixmapLoaded = true;
 198         }
 199     }

So we do not support animations? gif etc? Can imageCount() be 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239578</commentid>
    <comment_count>9</comment_count>
      <attachid>59033</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-06-17 14:24:40 -0700</bug_when>
    <thetext>Created attachment 59033
Patch

Add the case &quot;imageCount == 0&quot; thanks to Kenneth&apos;s comments on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239580</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-17 14:27:12 -0700</bug_when>
    <thetext>Attachment 59033 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/graphics/qt/ImageDecoderQt.cpp:191:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239583</commentid>
    <comment_count>11</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-06-17 14:30:58 -0700</bug_when>
    <thetext>Attachment 59033 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3318304</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239603</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-17 15:26:54 -0700</bug_when>
    <thetext>The Qt patch will be applied to Qt 4.6 as well? if not we need an ifdef for checking the Qt version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239604</commentid>
    <comment_count>13</comment_count>
      <attachid>59033</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-17 15:27:47 -0700</bug_when>
    <thetext>Comment on attachment 59033
Patch

You can re-set the cq when the patches are in Qt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239606</commentid>
    <comment_count>14</comment_count>
      <attachid>59030</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-17 15:29:25 -0700</bug_when>
    <thetext>Comment on attachment 59030
Patch

Cleared Kenneth Rohde Christiansen&apos;s review+ from obsolete attachment 59030 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239675</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-06-17 17:31:59 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; The Qt patch will be applied to Qt 4.6 as well? if not we need an ifdef for checking the Qt version.

It will not be applied to 4.6, but that should not be a problem. The previous implementation of QPixmap::loadFromData() uses ImageReader, exactly what we do in ImageReaderQt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240628</commentid>
    <comment_count>16</comment_count>
      <attachid>59033</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-21 01:30:52 -0700</bug_when>
    <thetext>Comment on attachment 59033
Patch

Clearing flags on attachment: 59033

Committed r61534: &lt;http://trac.webkit.org/changeset/61534&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240629</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-21 01:30:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240658</commentid>
    <comment_count>18</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-06-21 05:22:28 -0700</bug_when>
    <thetext>There is a useless conversion between QImage and QPixmap in RGBA32Buffer::zeroFill(). See bug 59242.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240660</commentid>
    <comment_count>19</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-06-21 05:25:19 -0700</bug_when>
    <thetext>Oh, no! It is the attachment, the bug is 40910 :S

(In reply to comment #18)
&gt; There is a useless conversion between QImage and QPixmap in RGBA32Buffer::zeroFill(). See bug 59242.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240673</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-21 06:01:47 -0700</bug_when>
    <thetext>Revision r61534 cherry-picked into qtwebkit-2.0 with commit 7a3bddf10bee16ee9ff176d0e99d100afe8a0782</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246714</commentid>
    <comment_count>21</comment_count>
      <attachid>60555</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-07-05 10:59:17 -0700</bug_when>
    <thetext>Created attachment 60555
Update to take advantage of new APIs in Qt

We added new API to Qt 4.7 in order to do in-place color conversion in the all cases. This patch update WebKit to take advantages of this new API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246715</commentid>
    <comment_count>22</comment_count>
      <attachid>60555</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-05 11:04:34 -0700</bug_when>
    <thetext>Comment on attachment 60555
Update to take advantage of new APIs in Qt

r=me, you can set qc+ if this is already in public Qt repo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246727</commentid>
    <comment_count>23</comment_count>
      <attachid>60555</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-07-05 11:30:27 -0700</bug_when>
    <thetext>Comment on attachment 60555
Update to take advantage of new APIs in Qt

Yup, it landed in 4.7 recently: c16162214eb8757a62e221c34d38cefc402e5b05</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246922</commentid>
    <comment_count>24</comment_count>
      <attachid>60555</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-07-06 00:39:43 -0700</bug_when>
    <thetext>Comment on attachment 60555
Update to take advantage of new APIs in Qt

WebCore/platform/graphics/qt/ImageDecoderQt.cpp:200
 +          pixmap = QPixmap::fromImage(img);
I believe this function can return a null pixmap if we run out of memory (I&apos;ve seen this actually on Symbian).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246963</commentid>
    <comment_count>25</comment_count>
      <attachid>60606</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-07-06 02:28:27 -0700</bug_when>
    <thetext>Created attachment 60606
Update to take advantage of new APIs in Qt + null pixmap

&gt; (From update of attachment 60555 [details])
&gt; WebCore/platform/graphics/qt/ImageDecoderQt.cpp:200
&gt;  +          pixmap = QPixmap::fromImage(img);
&gt; I believe this function can return a null pixmap if we run out of memory (I&apos;ve seen this actually on Symbian).

Yep you are right, the pixmap could be null after this call.
I updated the patch to simply abort as soon as we get a null pixmap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246981</commentid>
    <comment_count>26</comment_count>
      <attachid>60606</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-07-06 03:13:40 -0700</bug_when>
    <thetext>Comment on attachment 60606
Update to take advantage of new APIs in Qt + null pixmap

r=me, this version is much nicer :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263680</commentid>
    <comment_count>27</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-08-12 02:44:38 -0700</bug_when>
    <thetext>Committed r65227: &lt;http://trac.webkit.org/changeset/65227&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263749</commentid>
    <comment_count>28</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-08-12 05:48:02 -0700</bug_when>
    <thetext>Revision r65227 cherry-picked into qtwebkit-2.1 with commit f1c7842276d4ca19ad19083b8182b2d1351ebc4f</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59029</attachid>
            <date>2010-06-17 13:01:23 -0700</date>
            <delta_ts>2010-06-17 13:12:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>40797.patch</filename>
            <type>text/plain</type>
            <size>6790</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzAzNDM1Mi4uYzQ3YWI0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0wNi0xNyAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRGVjb2RlIGltYWdlcyBkaXJlY3RseSB0
byBRUGl4bWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDc5NworCisgICAgICAgIERlY29kZSBpbWFnZXMgdG8gUVBpeG1hcCBkaXJlY3RseSBpbnN0
ZWFkIG9mIFFJbWFnZSB3aGVuIHBvc3NpYmxlLgorICAgICAgICBSR0JBMzJCdWZmZXIgdHJhbnNm
b3JtcyB0aGUgcGl4bWFwIGJhY2sgdG8gaW1hZ2UgaWYKKyAgICAgICAgbmVjZXNzYXJ5LgorCisg
ICAgICAgIFRoaXMgaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugd2l0aCBjZXJ0YWluIGdyYXBoaWMg
c3lzdGVtLCBhbmQKKyAgICAgICAgY2FuIHJlZHVjZSBtZW1vcnkgdXNhZ2UuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZURlY29kZXJRdDo6c2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURl
Y29kZXJRdDo6aW50ZXJuYWxIYW5kbGVDdXJyZW50SW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6UkdCQTMy
QnVmZmVyOjpnZXRBZGRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9xdC9S
R0JBMzJCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSR0JBMzJCdWZmZXI6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJHQkEzMkJ1ZmZlcjo6emVyb0ZpbGwpOgorICAgICAgICAo
V2ViQ29yZTo6UkdCQTMyQnVmZmVyOjpjb3B5Qml0bWFwRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSR0JBMzJCdWZmZXI6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UkdCQTMyQnVmZmVy
Ojphc05ld05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJHQkEzMkJ1ZmZlcjo6c2V0
UGl4bWFwKToKKwogMjAxMC0wNi0xNiAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggQ2hyaXN0aWFuc2VuLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmNwcAppbmRleCBlODZi
M2RhLi5jMTg1OWQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0lt
YWdlRGVjb2RlclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdl
RGVjb2RlclF0LmNwcApAQCAtNzgsOSArNzgsNiBAQCB2b2lkIEltYWdlRGVjb2RlclF0OjpzZXRE
YXRhKFNoYXJlZEJ1ZmZlciogZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAgICAgbV9idWZm
ZXItPm9wZW4oUUlPRGV2aWNlOjpSZWFkT25seSB8IFFJT0RldmljZTo6VW5idWZmZXJlZCk7CiAg
ICAgbV9yZWFkZXIuc2V0KG5ldyBRSW1hZ2VSZWFkZXIobV9idWZmZXIuZ2V0KCksIG1fZm9ybWF0
KSk7CiAKLSAgICAvLyBUaGlzIHdpbGwgZm9yY2UgdGhlIEpQRUcgZGVjb2RlciB0byB1c2UgSkRD
VF9JRkFTVAotICAgIG1fcmVhZGVyLT5zZXRRdWFsaXR5KDQ5KTsKLQogICAgIC8vIFFJbWFnZVJl
YWRlciBvbmx5IGFsbG93cyByZXRyaWV2aW5nIHRoZSBmb3JtYXQgYmVmb3JlIHJlYWRpbmcgdGhl
IGltYWdlCiAgICAgbV9mb3JtYXQgPSBtX3JlYWRlci0+Zm9ybWF0KCk7CiB9CkBAIC0xODgsOSAr
MTg1LDIwIEBAIHZvaWQgSW1hZ2VEZWNvZGVyUXQ6OmludGVybmFsUmVhZEltYWdlKHNpemVfdCBm
cmFtZUluZGV4KQogCiBib29sIEltYWdlRGVjb2RlclF0OjppbnRlcm5hbEhhbmRsZUN1cnJlbnRJ
bWFnZShzaXplX3QgZnJhbWVJbmRleCkKIHsKLSAgICAvLyBOb3cgZ2V0IHRoZSBRSW1hZ2UgZnJv
bSBRdCBhbmQgcGxhY2UgaXQgaW4gdGhlIFJHQkEzMkJ1ZmZlcgotICAgIFFJbWFnZSBpbWc7Ci0g
ICAgaWYgKCFtX3JlYWRlci0+cmVhZCgmaW1nKSkgeworICAgIFFQaXhtYXAgcGl4bWFwOworICAg
IGJvb2wgcGl4bWFwTG9hZGVkOworICAgIGlmIChtX3JlYWRlci0+aW1hZ2VDb3VudCgpID09IDEp
IHsKKyAgICAgICAgcGl4bWFwTG9hZGVkID0gcGl4bWFwLmxvYWRGcm9tRGF0YSgoY29uc3QgdWNo
YXIqKShtX2RhdGEtPmRhdGEoKSksIG1fZGF0YS0+c2l6ZSgpLCBtX2Zvcm1hdCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgUUltYWdlIGltZzsKKyAgICAgICAgY29uc3QgYm9vbCBpbWFnZUxvYWRl
ZCA9IG1fcmVhZGVyLT5yZWFkKCZpbWcpOworICAgICAgICBpZiAoaW1hZ2VMb2FkZWQpIHsKKyAg
ICAgICAgICAgIHBpeG1hcCA9IFFQaXhtYXA6OmZyb21JbWFnZShpbWcpOworICAgICAgICAgICAg
cGl4bWFwTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghcGl4bWFw
TG9hZGVkKSB7CiAgICAgICAgIGZyYW1lQ291bnQoKTsKICAgICAgICAgcmVwZXRpdGlvbkNvdW50
KCk7CiAgICAgICAgIGNsZWFyUG9pbnRlcnMoKTsKQEAgLTIwMiw3ICsyMTAsNyBAQCBib29sIElt
YWdlRGVjb2RlclF0OjppbnRlcm5hbEhhbmRsZUN1cnJlbnRJbWFnZShzaXplX3QgZnJhbWVJbmRl
eCkKICAgICBidWZmZXItPnNldFJlY3QobV9yZWFkZXItPmN1cnJlbnRJbWFnZVJlY3QoKSk7CiAg
ICAgYnVmZmVyLT5zZXRTdGF0dXMoUkdCQTMyQnVmZmVyOjpGcmFtZUNvbXBsZXRlKTsKICAgICBi
dWZmZXItPnNldER1cmF0aW9uKG1fcmVhZGVyLT5uZXh0SW1hZ2VEZWxheSgpKTsKLSAgICBidWZm
ZXItPnNldERlY29kZWRJbWFnZShpbWcpOworICAgIGJ1ZmZlci0+c2V0UGl4bWFwKHBpeG1hcCk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmggYi9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL0ltYWdlRGVjb2Rlci5oCmluZGV4IGQ1MjZlNWUuLjEwNzQ3NTMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaApAQCAtNDAsNiArNDAsNyBA
QAogI2lmIFBMQVRGT1JNKFNLSUEpCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjZWxp
ZiBQTEFURk9STShRVCkKKyNpbmNsdWRlIDxRUGl4bWFwPgogI2luY2x1ZGUgPFFJbWFnZT4KICNl
bmRpZgogCkBAIC0xMzAsOCArMTMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9
CiAKICNpZiBQTEFURk9STShRVCkKLSAgICAgICAgdm9pZCBzZXREZWNvZGVkSW1hZ2UoY29uc3Qg
UUltYWdlJiBpbWFnZSk7Ci0gICAgICAgIFFJbWFnZSBkZWNvZGVkSW1hZ2UoKSBjb25zdCB7IHJl
dHVybiBtX2ltYWdlOyB9CisgICAgICAgIHZvaWQgc2V0UGl4bWFwKGNvbnN0IFFQaXhtYXAmIHBp
eG1hcCk7CiAjZW5kaWYKIAogICAgIHByaXZhdGU6CkBAIC0xNDMsNiArMTQzLDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogI2lmIFBMQVRGT1JNKFNLSUEpCiAgICAgICAgICAgICByZXR1cm4gbV9i
aXRtYXAuZ2V0QWRkcjMyKHgsIHkpOwogI2VsaWYgUExBVEZPUk0oUVQpCisgICAgICAgICAgICBt
X2ltYWdlID0gbV9waXhtYXAudG9JbWFnZSgpOworICAgICAgICAgICAgbV9waXhtYXAgPSBRUGl4
bWFwKCk7CiAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxRUmdiKj4obV9pbWFn
ZS5zY2FuTGluZSh5KSkgKyB4OwogI2Vsc2UKICAgICAgICAgICAgIHJldHVybiBtX2J5dGVzLmRh
dGEoKSArICh5ICogd2lkdGgoKSkgKyB4OwpAQCAtMTY4LDYgKzE3MCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICNpZiBQTEFURk9STShTS0lBKQogICAgICAgICBOYXRpdmVJbWFnZVNraWEgbV9i
aXRtYXA7CiAjZWxpZiBQTEFURk9STShRVCkKKyAgICAgICAgbXV0YWJsZSBRUGl4bWFwIG1fcGl4
bWFwOwogICAgICAgICBtdXRhYmxlIFFJbWFnZSBtX2ltYWdlOwogICAgICAgICBib29sIG1faGFz
QWxwaGE7CiAgICAgICAgIEludFNpemUgbV9zaXplOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9xdC9SR0JBMzJCdWZmZXJRdC5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL3F0L1JHQkEzMkJ1ZmZlclF0LmNwcAppbmRleCBiMmU1ZTE3Li5h
YzRjOTUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3F0L1JH
QkEzMkJ1ZmZlclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3F0
L1JHQkEzMkJ1ZmZlclF0LmNwcApAQCAtNTcsNiArNTcsNyBAQCBSR0JBMzJCdWZmZXImIFJHQkEz
MkJ1ZmZlcjo6b3BlcmF0b3I9KGNvbnN0IFJHQkEzMkJ1ZmZlciYgb3RoZXIpCiAKIHZvaWQgUkdC
QTMyQnVmZmVyOjpjbGVhcigpCiB7CisgICAgbV9waXhtYXAgPSBRUGl4bWFwKCk7CiAgICAgbV9p
bWFnZSA9IFFJbWFnZSgpOwogICAgIG1fc3RhdHVzID0gRnJhbWVFbXB0eTsKICAgICAvLyBOT1RF
OiBEbyBub3QgcmVzZXQgb3RoZXIgbWVtYmVycyBoZXJlOyBjbGVhckZyYW1lQnVmZmVyQ2FjaGUo
KQpAQCAtNjcsNyArNjgsMTEgQEAgdm9pZCBSR0JBMzJCdWZmZXI6OmNsZWFyKCkKIAogdm9pZCBS
R0JBMzJCdWZmZXI6Onplcm9GaWxsKCkKIHsKLSAgICBtX2ltYWdlLmZpbGwoMCk7CisgICAgaWYg
KG1fcGl4bWFwLmlzTnVsbCgpICYmICFtX2ltYWdlLmlzTnVsbCgpKSB7CisgICAgICAgIG1fcGl4
bWFwID0gUVBpeG1hcDo6ZnJvbUltYWdlKG1faW1hZ2UpOworICAgICAgICBtX2ltYWdlID0gUUlt
YWdlKCk7CisgICAgfQorICAgIG1fcGl4bWFwLmZpbGwoUUNvbG9yKDAsIDAsIDAsIDApKTsKIH0K
IAogdm9pZCBSR0JBMzJCdWZmZXI6OmNvcHlCaXRtYXBEYXRhKGNvbnN0IFJHQkEzMkJ1ZmZlciYg
b3RoZXIpCkBAIC03Niw2ICs4MSw3IEBAIHZvaWQgUkdCQTMyQnVmZmVyOjpjb3B5Qml0bWFwRGF0
YShjb25zdCBSR0JBMzJCdWZmZXImIG90aGVyKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2lt
YWdlID0gb3RoZXIubV9pbWFnZTsKKyAgICBtX3BpeG1hcCA9IG90aGVyLm1fcGl4bWFwOwogICAg
IG1fc2l6ZSA9IG90aGVyLm1fc2l6ZTsKICAgICBtX2hhc0FscGhhID0gb3RoZXIubV9oYXNBbHBo
YTsKIH0KQEAgLTg3LDggKzkzLDkgQEAgYm9vbCBSR0JBMzJCdWZmZXI6OnNldFNpemUoaW50IG5l
d1dpZHRoLCBpbnQgbmV3SGVpZ2h0KQogICAgIEFTU0VSVCh3aWR0aCgpID09IDAgJiYgaGVpZ2h0
KCkgPT0gMCk7CiAKICAgICBtX3NpemUgPSBJbnRTaXplKG5ld1dpZHRoLCBuZXdIZWlnaHQpOwot
ICAgIG1faW1hZ2UgPSBRSW1hZ2UobmV3V2lkdGgsIG5ld0hlaWdodCwgUUltYWdlOjpGb3JtYXRf
QVJHQjMyX1ByZW11bHRpcGxpZWQpOwotICAgIGlmIChtX2ltYWdlLmlzTnVsbCgpKQorICAgIG1f
aW1hZ2UgPSBRSW1hZ2UoKTsKKyAgICBtX3BpeG1hcCA9IFFQaXhtYXAobmV3V2lkdGgsIG5ld0hl
aWdodCk7CisgICAgaWYgKG1fcGl4bWFwLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAvLyBaZXJvIHRoZSBpbWFnZS4KQEAgLTk5LDEwICsxMDYsMTEgQEAgYm9vbCBSR0JB
MzJCdWZmZXI6OnNldFNpemUoaW50IG5ld1dpZHRoLCBpbnQgbmV3SGVpZ2h0KQogCiBRUGl4bWFw
KiBSR0JBMzJCdWZmZXI6OmFzTmV3TmF0aXZlSW1hZ2UoKSBjb25zdAogewotICAgIFFQaXhtYXAg
cGl4ID0gUVBpeG1hcDo6ZnJvbUltYWdlKG1faW1hZ2UpOwotICAgIG1faW1hZ2UgPSBRSW1hZ2Uo
KTsKLQotICAgIHJldHVybiBuZXcgUVBpeG1hcChwaXgpOworICAgIGlmIChtX3BpeG1hcC5pc051
bGwoKSAmJiAhbV9pbWFnZS5pc051bGwoKSkgeworICAgICAgICBtX3BpeG1hcCA9IFFQaXhtYXA6
OmZyb21JbWFnZShtX2ltYWdlKTsKKyAgICAgICAgbV9pbWFnZSA9IFFJbWFnZSgpOworICAgIH0K
KyAgICByZXR1cm4gbmV3IFFQaXhtYXAobV9waXhtYXApOwogfQogCiBib29sIFJHQkEzMkJ1ZmZl
cjo6aGFzQWxwaGEoKSBjb25zdApAQCAtMTIxLDExICsxMjksMTIgQEAgdm9pZCBSR0JBMzJCdWZm
ZXI6OnNldFN0YXR1cyhGcmFtZVN0YXR1cyBzdGF0dXMpCiB9CiAKIC8vIFRoZSBpbWFnZSBtdXN0
IG5vdCBoYXZlIGZvcm1hdCA4ODg4IHByZSBtdWx0aXBsaWVkLi4uCi12b2lkIFJHQkEzMkJ1ZmZl
cjo6c2V0RGVjb2RlZEltYWdlKGNvbnN0IFFJbWFnZSYgaW1hZ2UpCit2b2lkIFJHQkEzMkJ1ZmZl
cjo6c2V0UGl4bWFwKGNvbnN0IFFQaXhtYXAmIHBpeG1hcCkKIHsKLSAgICBtX2ltYWdlID0gaW1h
Z2U7Ci0gICAgbV9zaXplID0gaW1hZ2Uuc2l6ZSgpOwotICAgIG1faGFzQWxwaGEgPSBpbWFnZS5o
YXNBbHBoYUNoYW5uZWwoKTsKKyAgICBtX3BpeG1hcCA9IHBpeG1hcDsKKyAgICBtX2ltYWdlID0g
UUltYWdlKCk7CisgICAgbV9zaXplID0gcGl4bWFwLnNpemUoKTsKKyAgICBtX2hhc0FscGhhID0g
cGl4bWFwLmhhc0FscGhhQ2hhbm5lbCgpOwogfQogCiBpbnQgUkdCQTMyQnVmZmVyOjp3aWR0aCgp
IGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59030</attachid>
            <date>2010-06-17 13:12:44 -0700</date>
            <delta_ts>2010-06-17 15:29:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>40797.patch</filename>
            <type>text/plain</type>
            <size>6786</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzAzNDM1Mi4uYzQ3YWI0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0wNi0xNyAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRGVjb2RlIGltYWdlcyBkaXJlY3RseSB0
byBRUGl4bWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDc5NworCisgICAgICAgIERlY29kZSBpbWFnZXMgdG8gUVBpeG1hcCBkaXJlY3RseSBpbnN0
ZWFkIG9mIFFJbWFnZSB3aGVuIHBvc3NpYmxlLgorICAgICAgICBSR0JBMzJCdWZmZXIgdHJhbnNm
b3JtcyB0aGUgcGl4bWFwIGJhY2sgdG8gaW1hZ2UgaWYKKyAgICAgICAgbmVjZXNzYXJ5LgorCisg
ICAgICAgIFRoaXMgaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugd2l0aCBjZXJ0YWluIGdyYXBoaWMg
c3lzdGVtLCBhbmQKKyAgICAgICAgY2FuIHJlZHVjZSBtZW1vcnkgdXNhZ2UuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZURlY29kZXJRdDo6c2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURl
Y29kZXJRdDo6aW50ZXJuYWxIYW5kbGVDdXJyZW50SW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6UkdCQTMy
QnVmZmVyOjpnZXRBZGRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9xdC9S
R0JBMzJCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSR0JBMzJCdWZmZXI6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJHQkEzMkJ1ZmZlcjo6emVyb0ZpbGwpOgorICAgICAgICAo
V2ViQ29yZTo6UkdCQTMyQnVmZmVyOjpjb3B5Qml0bWFwRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSR0JBMzJCdWZmZXI6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UkdCQTMyQnVmZmVy
Ojphc05ld05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJHQkEzMkJ1ZmZlcjo6c2V0
UGl4bWFwKToKKwogMjAxMC0wNi0xNiAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggQ2hyaXN0aWFuc2VuLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmNwcAppbmRleCBlODZi
M2RhLi5kNjE1NTBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0lt
YWdlRGVjb2RlclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdl
RGVjb2RlclF0LmNwcApAQCAtNzgsOSArNzgsNiBAQCB2b2lkIEltYWdlRGVjb2RlclF0OjpzZXRE
YXRhKFNoYXJlZEJ1ZmZlciogZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAgICAgbV9idWZm
ZXItPm9wZW4oUUlPRGV2aWNlOjpSZWFkT25seSB8IFFJT0RldmljZTo6VW5idWZmZXJlZCk7CiAg
ICAgbV9yZWFkZXIuc2V0KG5ldyBRSW1hZ2VSZWFkZXIobV9idWZmZXIuZ2V0KCksIG1fZm9ybWF0
KSk7CiAKLSAgICAvLyBUaGlzIHdpbGwgZm9yY2UgdGhlIEpQRUcgZGVjb2RlciB0byB1c2UgSkRD
VF9JRkFTVAotICAgIG1fcmVhZGVyLT5zZXRRdWFsaXR5KDQ5KTsKLQogICAgIC8vIFFJbWFnZVJl
YWRlciBvbmx5IGFsbG93cyByZXRyaWV2aW5nIHRoZSBmb3JtYXQgYmVmb3JlIHJlYWRpbmcgdGhl
IGltYWdlCiAgICAgbV9mb3JtYXQgPSBtX3JlYWRlci0+Zm9ybWF0KCk7CiB9CkBAIC0xODgsOSAr
MTg1LDIwIEBAIHZvaWQgSW1hZ2VEZWNvZGVyUXQ6OmludGVybmFsUmVhZEltYWdlKHNpemVfdCBm
cmFtZUluZGV4KQogCiBib29sIEltYWdlRGVjb2RlclF0OjppbnRlcm5hbEhhbmRsZUN1cnJlbnRJ
bWFnZShzaXplX3QgZnJhbWVJbmRleCkKIHsKLSAgICAvLyBOb3cgZ2V0IHRoZSBRSW1hZ2UgZnJv
bSBRdCBhbmQgcGxhY2UgaXQgaW4gdGhlIFJHQkEzMkJ1ZmZlcgotICAgIFFJbWFnZSBpbWc7Ci0g
ICAgaWYgKCFtX3JlYWRlci0+cmVhZCgmaW1nKSkgeworICAgIFFQaXhtYXAgcGl4bWFwOworICAg
IGJvb2wgcGl4bWFwTG9hZGVkOworICAgIGlmIChtX3JlYWRlci0+aW1hZ2VDb3VudCgpID09IDEp
CisgICAgICAgIHBpeG1hcExvYWRlZCA9IHBpeG1hcC5sb2FkRnJvbURhdGEoKGNvbnN0IHVjaGFy
KikobV9kYXRhLT5kYXRhKCkpLCBtX2RhdGEtPnNpemUoKSwgbV9mb3JtYXQpOworICAgIGVsc2Ug
eworICAgICAgICBRSW1hZ2UgaW1nOworICAgICAgICBjb25zdCBib29sIGltYWdlTG9hZGVkID0g
bV9yZWFkZXItPnJlYWQoJmltZyk7CisgICAgICAgIGlmIChpbWFnZUxvYWRlZCkgeworICAgICAg
ICAgICAgcGl4bWFwID0gUVBpeG1hcDo6ZnJvbUltYWdlKGltZyk7CisgICAgICAgICAgICBwaXht
YXBMb2FkZWQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFwaXhtYXBMb2Fk
ZWQpIHsKICAgICAgICAgZnJhbWVDb3VudCgpOwogICAgICAgICByZXBldGl0aW9uQ291bnQoKTsK
ICAgICAgICAgY2xlYXJQb2ludGVycygpOwpAQCAtMjAyLDcgKzIxMCw3IEBAIGJvb2wgSW1hZ2VE
ZWNvZGVyUXQ6OmludGVybmFsSGFuZGxlQ3VycmVudEltYWdlKHNpemVfdCBmcmFtZUluZGV4KQog
ICAgIGJ1ZmZlci0+c2V0UmVjdChtX3JlYWRlci0+Y3VycmVudEltYWdlUmVjdCgpKTsKICAgICBi
dWZmZXItPnNldFN0YXR1cyhSR0JBMzJCdWZmZXI6OkZyYW1lQ29tcGxldGUpOwogICAgIGJ1ZmZl
ci0+c2V0RHVyYXRpb24obV9yZWFkZXItPm5leHRJbWFnZURlbGF5KCkpOwotICAgIGJ1ZmZlci0+
c2V0RGVjb2RlZEltYWdlKGltZyk7CisgICAgYnVmZmVyLT5zZXRQaXhtYXAocGl4bWFwKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9JbWFnZURlY29kZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
SW1hZ2VEZWNvZGVyLmgKaW5kZXggZDUyNmU1ZS4uMTA3NDc1MyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCkBAIC00MCw2ICs0MCw3IEBACiAj
aWYgUExBVEZPUk0oU0tJQSkKICNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKICNlbGlmIFBM
QVRGT1JNKFFUKQorI2luY2x1ZGUgPFFQaXhtYXA+CiAjaW5jbHVkZSA8UUltYWdlPgogI2VuZGlm
CiAKQEAgLTEzMCw4ICsxMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH0KIAog
I2lmIFBMQVRGT1JNKFFUKQotICAgICAgICB2b2lkIHNldERlY29kZWRJbWFnZShjb25zdCBRSW1h
Z2UmIGltYWdlKTsKLSAgICAgICAgUUltYWdlIGRlY29kZWRJbWFnZSgpIGNvbnN0IHsgcmV0dXJu
IG1faW1hZ2U7IH0KKyAgICAgICAgdm9pZCBzZXRQaXhtYXAoY29uc3QgUVBpeG1hcCYgcGl4bWFw
KTsKICNlbmRpZgogCiAgICAgcHJpdmF0ZToKQEAgLTE0Myw2ICsxNDMsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAjaWYgUExBVEZPUk0oU0tJQSkKICAgICAgICAgICAgIHJldHVybiBtX2JpdG1h
cC5nZXRBZGRyMzIoeCwgeSk7CiAjZWxpZiBQTEFURk9STShRVCkKKyAgICAgICAgICAgIG1faW1h
Z2UgPSBtX3BpeG1hcC50b0ltYWdlKCk7CisgICAgICAgICAgICBtX3BpeG1hcCA9IFFQaXhtYXAo
KTsKICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFFSZ2IqPihtX2ltYWdlLnNj
YW5MaW5lKHkpKSArIHg7CiAjZWxzZQogICAgICAgICAgICAgcmV0dXJuIG1fYnl0ZXMuZGF0YSgp
ICsgKHkgKiB3aWR0aCgpKSArIHg7CkBAIC0xNjgsNiArMTcwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogI2lmIFBMQVRGT1JNKFNLSUEpCiAgICAgICAgIE5hdGl2ZUltYWdlU2tpYSBtX2JpdG1h
cDsKICNlbGlmIFBMQVRGT1JNKFFUKQorICAgICAgICBtdXRhYmxlIFFQaXhtYXAgbV9waXhtYXA7
CiAgICAgICAgIG11dGFibGUgUUltYWdlIG1faW1hZ2U7CiAgICAgICAgIGJvb2wgbV9oYXNBbHBo
YTsKICAgICAgICAgSW50U2l6ZSBtX3NpemU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL3F0L1JHQkEzMkJ1ZmZlclF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvcXQvUkdCQTMyQnVmZmVyUXQuY3BwCmluZGV4IGIyZTVlMTcuLmFjNGM5
NTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcXQvUkdCQTMy
QnVmZmVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcXQvUkdC
QTMyQnVmZmVyUXQuY3BwCkBAIC01Nyw2ICs1Nyw3IEBAIFJHQkEzMkJ1ZmZlciYgUkdCQTMyQnVm
ZmVyOjpvcGVyYXRvcj0oY29uc3QgUkdCQTMyQnVmZmVyJiBvdGhlcikKIAogdm9pZCBSR0JBMzJC
dWZmZXI6OmNsZWFyKCkKIHsKKyAgICBtX3BpeG1hcCA9IFFQaXhtYXAoKTsKICAgICBtX2ltYWdl
ID0gUUltYWdlKCk7CiAgICAgbV9zdGF0dXMgPSBGcmFtZUVtcHR5OwogICAgIC8vIE5PVEU6IERv
IG5vdCByZXNldCBvdGhlciBtZW1iZXJzIGhlcmU7IGNsZWFyRnJhbWVCdWZmZXJDYWNoZSgpCkBA
IC02Nyw3ICs2OCwxMSBAQCB2b2lkIFJHQkEzMkJ1ZmZlcjo6Y2xlYXIoKQogCiB2b2lkIFJHQkEz
MkJ1ZmZlcjo6emVyb0ZpbGwoKQogewotICAgIG1faW1hZ2UuZmlsbCgwKTsKKyAgICBpZiAobV9w
aXhtYXAuaXNOdWxsKCkgJiYgIW1faW1hZ2UuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9waXhtYXAg
PSBRUGl4bWFwOjpmcm9tSW1hZ2UobV9pbWFnZSk7CisgICAgICAgIG1faW1hZ2UgPSBRSW1hZ2Uo
KTsKKyAgICB9CisgICAgbV9waXhtYXAuZmlsbChRQ29sb3IoMCwgMCwgMCwgMCkpOwogfQogCiB2
b2lkIFJHQkEzMkJ1ZmZlcjo6Y29weUJpdG1hcERhdGEoY29uc3QgUkdCQTMyQnVmZmVyJiBvdGhl
cikKQEAgLTc2LDYgKzgxLDcgQEAgdm9pZCBSR0JBMzJCdWZmZXI6OmNvcHlCaXRtYXBEYXRhKGNv
bnN0IFJHQkEzMkJ1ZmZlciYgb3RoZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1faW1hZ2Ug
PSBvdGhlci5tX2ltYWdlOworICAgIG1fcGl4bWFwID0gb3RoZXIubV9waXhtYXA7CiAgICAgbV9z
aXplID0gb3RoZXIubV9zaXplOwogICAgIG1faGFzQWxwaGEgPSBvdGhlci5tX2hhc0FscGhhOwog
fQpAQCAtODcsOCArOTMsOSBAQCBib29sIFJHQkEzMkJ1ZmZlcjo6c2V0U2l6ZShpbnQgbmV3V2lk
dGgsIGludCBuZXdIZWlnaHQpCiAgICAgQVNTRVJUKHdpZHRoKCkgPT0gMCAmJiBoZWlnaHQoKSA9
PSAwKTsKIAogICAgIG1fc2l6ZSA9IEludFNpemUobmV3V2lkdGgsIG5ld0hlaWdodCk7Ci0gICAg
bV9pbWFnZSA9IFFJbWFnZShuZXdXaWR0aCwgbmV3SGVpZ2h0LCBRSW1hZ2U6OkZvcm1hdF9BUkdC
MzJfUHJlbXVsdGlwbGllZCk7Ci0gICAgaWYgKG1faW1hZ2UuaXNOdWxsKCkpCisgICAgbV9pbWFn
ZSA9IFFJbWFnZSgpOworICAgIG1fcGl4bWFwID0gUVBpeG1hcChuZXdXaWR0aCwgbmV3SGVpZ2h0
KTsKKyAgICBpZiAobV9waXhtYXAuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIC8vIFplcm8gdGhlIGltYWdlLgpAQCAtOTksMTAgKzEwNiwxMSBAQCBib29sIFJHQkEzMkJ1
ZmZlcjo6c2V0U2l6ZShpbnQgbmV3V2lkdGgsIGludCBuZXdIZWlnaHQpCiAKIFFQaXhtYXAqIFJH
QkEzMkJ1ZmZlcjo6YXNOZXdOYXRpdmVJbWFnZSgpIGNvbnN0CiB7Ci0gICAgUVBpeG1hcCBwaXgg
PSBRUGl4bWFwOjpmcm9tSW1hZ2UobV9pbWFnZSk7Ci0gICAgbV9pbWFnZSA9IFFJbWFnZSgpOwot
Ci0gICAgcmV0dXJuIG5ldyBRUGl4bWFwKHBpeCk7CisgICAgaWYgKG1fcGl4bWFwLmlzTnVsbCgp
ICYmICFtX2ltYWdlLmlzTnVsbCgpKSB7CisgICAgICAgIG1fcGl4bWFwID0gUVBpeG1hcDo6ZnJv
bUltYWdlKG1faW1hZ2UpOworICAgICAgICBtX2ltYWdlID0gUUltYWdlKCk7CisgICAgfQorICAg
IHJldHVybiBuZXcgUVBpeG1hcChtX3BpeG1hcCk7CiB9CiAKIGJvb2wgUkdCQTMyQnVmZmVyOjpo
YXNBbHBoYSgpIGNvbnN0CkBAIC0xMjEsMTEgKzEyOSwxMiBAQCB2b2lkIFJHQkEzMkJ1ZmZlcjo6
c2V0U3RhdHVzKEZyYW1lU3RhdHVzIHN0YXR1cykKIH0KIAogLy8gVGhlIGltYWdlIG11c3Qgbm90
IGhhdmUgZm9ybWF0IDg4ODggcHJlIG11bHRpcGxpZWQuLi4KLXZvaWQgUkdCQTMyQnVmZmVyOjpz
ZXREZWNvZGVkSW1hZ2UoY29uc3QgUUltYWdlJiBpbWFnZSkKK3ZvaWQgUkdCQTMyQnVmZmVyOjpz
ZXRQaXhtYXAoY29uc3QgUVBpeG1hcCYgcGl4bWFwKQogewotICAgIG1faW1hZ2UgPSBpbWFnZTsK
LSAgICBtX3NpemUgPSBpbWFnZS5zaXplKCk7Ci0gICAgbV9oYXNBbHBoYSA9IGltYWdlLmhhc0Fs
cGhhQ2hhbm5lbCgpOworICAgIG1fcGl4bWFwID0gcGl4bWFwOworICAgIG1faW1hZ2UgPSBRSW1h
Z2UoKTsKKyAgICBtX3NpemUgPSBwaXhtYXAuc2l6ZSgpOworICAgIG1faGFzQWxwaGEgPSBwaXht
YXAuaGFzQWxwaGFDaGFubmVsKCk7CiB9CiAKIGludCBSR0JBMzJCdWZmZXI6OndpZHRoKCkgY29u
c3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59033</attachid>
            <date>2010-06-17 14:24:40 -0700</date>
            <delta_ts>2010-06-21 01:30:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>40797.patch</filename>
            <type>text/plain</type>
            <size>6845</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzAzNDM1Mi4uYzQ3YWI0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMC0wNi0xNyAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRGVjb2RlIGltYWdlcyBkaXJlY3RseSB0
byBRUGl4bWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDc5NworCisgICAgICAgIERlY29kZSBpbWFnZXMgdG8gUVBpeG1hcCBkaXJlY3RseSBpbnN0
ZWFkIG9mIFFJbWFnZSB3aGVuIHBvc3NpYmxlLgorICAgICAgICBSR0JBMzJCdWZmZXIgdHJhbnNm
b3JtcyB0aGUgcGl4bWFwIGJhY2sgdG8gaW1hZ2UgaWYKKyAgICAgICAgbmVjZXNzYXJ5LgorCisg
ICAgICAgIFRoaXMgaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugd2l0aCBjZXJ0YWluIGdyYXBoaWMg
c3lzdGVtLCBhbmQKKyAgICAgICAgY2FuIHJlZHVjZSBtZW1vcnkgdXNhZ2UuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZURlY29kZXJRdDo6c2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURl
Y29kZXJRdDo6aW50ZXJuYWxIYW5kbGVDdXJyZW50SW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6UkdCQTMy
QnVmZmVyOjpnZXRBZGRyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9xdC9S
R0JBMzJCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSR0JBMzJCdWZmZXI6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJHQkEzMkJ1ZmZlcjo6emVyb0ZpbGwpOgorICAgICAgICAo
V2ViQ29yZTo6UkdCQTMyQnVmZmVyOjpjb3B5Qml0bWFwRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSR0JBMzJCdWZmZXI6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UkdCQTMyQnVmZmVy
Ojphc05ld05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJHQkEzMkJ1ZmZlcjo6c2V0
UGl4bWFwKToKKwogMjAxMC0wNi0xNiAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggQ2hyaXN0aWFuc2VuLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlRGVjb2RlclF0LmNwcAppbmRleCBlODZi
M2RhLi5mYjNkNjIxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0lt
YWdlRGVjb2RlclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdl
RGVjb2RlclF0LmNwcApAQCAtNzgsOSArNzgsNiBAQCB2b2lkIEltYWdlRGVjb2RlclF0OjpzZXRE
YXRhKFNoYXJlZEJ1ZmZlciogZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAgICAgbV9idWZm
ZXItPm9wZW4oUUlPRGV2aWNlOjpSZWFkT25seSB8IFFJT0RldmljZTo6VW5idWZmZXJlZCk7CiAg
ICAgbV9yZWFkZXIuc2V0KG5ldyBRSW1hZ2VSZWFkZXIobV9idWZmZXIuZ2V0KCksIG1fZm9ybWF0
KSk7CiAKLSAgICAvLyBUaGlzIHdpbGwgZm9yY2UgdGhlIEpQRUcgZGVjb2RlciB0byB1c2UgSkRD
VF9JRkFTVAotICAgIG1fcmVhZGVyLT5zZXRRdWFsaXR5KDQ5KTsKLQogICAgIC8vIFFJbWFnZVJl
YWRlciBvbmx5IGFsbG93cyByZXRyaWV2aW5nIHRoZSBmb3JtYXQgYmVmb3JlIHJlYWRpbmcgdGhl
IGltYWdlCiAgICAgbV9mb3JtYXQgPSBtX3JlYWRlci0+Zm9ybWF0KCk7CiB9CkBAIC0xODgsOSAr
MTg1LDIxIEBAIHZvaWQgSW1hZ2VEZWNvZGVyUXQ6OmludGVybmFsUmVhZEltYWdlKHNpemVfdCBm
cmFtZUluZGV4KQogCiBib29sIEltYWdlRGVjb2RlclF0OjppbnRlcm5hbEhhbmRsZUN1cnJlbnRJ
bWFnZShzaXplX3QgZnJhbWVJbmRleCkKIHsKLSAgICAvLyBOb3cgZ2V0IHRoZSBRSW1hZ2UgZnJv
bSBRdCBhbmQgcGxhY2UgaXQgaW4gdGhlIFJHQkEzMkJ1ZmZlcgotICAgIFFJbWFnZSBpbWc7Ci0g
ICAgaWYgKCFtX3JlYWRlci0+cmVhZCgmaW1nKSkgeworICAgIFFQaXhtYXAgcGl4bWFwOworICAg
IGJvb2wgcGl4bWFwTG9hZGVkOworICAgIGNvbnN0IGludCBpbWFnZUNvdW50ID0gbV9yZWFkZXIt
PmltYWdlQ291bnQoKTsKKyAgICBpZiAoaW1hZ2VDb3VudCA9PSAwIHx8IGltYWdlQ291bnQgPT0g
MSkKKyAgICAgICAgcGl4bWFwTG9hZGVkID0gcGl4bWFwLmxvYWRGcm9tRGF0YSgoY29uc3QgdWNo
YXIqKShtX2RhdGEtPmRhdGEoKSksIG1fZGF0YS0+c2l6ZSgpLCBtX2Zvcm1hdCk7CisgICAgZWxz
ZSB7CisgICAgICAgIFFJbWFnZSBpbWc7CisgICAgICAgIGNvbnN0IGJvb2wgaW1hZ2VMb2FkZWQg
PSBtX3JlYWRlci0+cmVhZCgmaW1nKTsKKyAgICAgICAgaWYgKGltYWdlTG9hZGVkKSB7CisgICAg
ICAgICAgICBwaXhtYXAgPSBRUGl4bWFwOjpmcm9tSW1hZ2UoaW1nKTsKKyAgICAgICAgICAgIHBp
eG1hcExvYWRlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIXBpeG1hcExv
YWRlZCkgewogICAgICAgICBmcmFtZUNvdW50KCk7CiAgICAgICAgIHJlcGV0aXRpb25Db3VudCgp
OwogICAgICAgICBjbGVhclBvaW50ZXJzKCk7CkBAIC0yMDIsNyArMjExLDcgQEAgYm9vbCBJbWFn
ZURlY29kZXJRdDo6aW50ZXJuYWxIYW5kbGVDdXJyZW50SW1hZ2Uoc2l6ZV90IGZyYW1lSW5kZXgp
CiAgICAgYnVmZmVyLT5zZXRSZWN0KG1fcmVhZGVyLT5jdXJyZW50SW1hZ2VSZWN0KCkpOwogICAg
IGJ1ZmZlci0+c2V0U3RhdHVzKFJHQkEzMkJ1ZmZlcjo6RnJhbWVDb21wbGV0ZSk7CiAgICAgYnVm
ZmVyLT5zZXREdXJhdGlvbihtX3JlYWRlci0+bmV4dEltYWdlRGVsYXkoKSk7Ci0gICAgYnVmZmVy
LT5zZXREZWNvZGVkSW1hZ2UoaW1nKTsKKyAgICBidWZmZXItPnNldFBpeG1hcChwaXhtYXApOwog
ICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9JbWFnZURlY29kZXIuaAppbmRleCBkNTI2ZTVlLi4xMDc0NzUzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKQEAgLTQwLDYgKzQwLDcgQEAK
ICNpZiBQTEFURk9STShTS0lBKQogI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgogI2VsaWYg
UExBVEZPUk0oUVQpCisjaW5jbHVkZSA8UVBpeG1hcD4KICNpbmNsdWRlIDxRSW1hZ2U+CiAjZW5k
aWYKIApAQCAtMTMwLDggKzEzMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQog
CiAjaWYgUExBVEZPUk0oUVQpCi0gICAgICAgIHZvaWQgc2V0RGVjb2RlZEltYWdlKGNvbnN0IFFJ
bWFnZSYgaW1hZ2UpOwotICAgICAgICBRSW1hZ2UgZGVjb2RlZEltYWdlKCkgY29uc3QgeyByZXR1
cm4gbV9pbWFnZTsgfQorICAgICAgICB2b2lkIHNldFBpeG1hcChjb25zdCBRUGl4bWFwJiBwaXht
YXApOwogI2VuZGlmCiAKICAgICBwcml2YXRlOgpAQCAtMTQzLDYgKzE0Myw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBQTEFURk9STShTS0lBKQogICAgICAgICAgICAgcmV0dXJuIG1fYml0
bWFwLmdldEFkZHIzMih4LCB5KTsKICNlbGlmIFBMQVRGT1JNKFFUKQorICAgICAgICAgICAgbV9p
bWFnZSA9IG1fcGl4bWFwLnRvSW1hZ2UoKTsKKyAgICAgICAgICAgIG1fcGl4bWFwID0gUVBpeG1h
cCgpOwogICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UVJnYio+KG1faW1hZ2Uu
c2NhbkxpbmUoeSkpICsgeDsKICNlbHNlCiAgICAgICAgICAgICByZXR1cm4gbV9ieXRlcy5kYXRh
KCkgKyAoeSAqIHdpZHRoKCkpICsgeDsKQEAgLTE2OCw2ICsxNzAsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAjaWYgUExBVEZPUk0oU0tJQSkKICAgICAgICAgTmF0aXZlSW1hZ2VTa2lhIG1fYml0
bWFwOwogI2VsaWYgUExBVEZPUk0oUVQpCisgICAgICAgIG11dGFibGUgUVBpeG1hcCBtX3BpeG1h
cDsKICAgICAgICAgbXV0YWJsZSBRSW1hZ2UgbV9pbWFnZTsKICAgICAgICAgYm9vbCBtX2hhc0Fs
cGhhOwogICAgICAgICBJbnRTaXplIG1fc2l6ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvcXQvUkdCQTMyQnVmZmVyUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9pbWFnZS1kZWNvZGVycy9xdC9SR0JBMzJCdWZmZXJRdC5jcHAKaW5kZXggYjJlNWUxNy4uYWM0
Yzk1MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9xdC9SR0JB
MzJCdWZmZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9xdC9S
R0JBMzJCdWZmZXJRdC5jcHAKQEAgLTU3LDYgKzU3LDcgQEAgUkdCQTMyQnVmZmVyJiBSR0JBMzJC
dWZmZXI6Om9wZXJhdG9yPShjb25zdCBSR0JBMzJCdWZmZXImIG90aGVyKQogCiB2b2lkIFJHQkEz
MkJ1ZmZlcjo6Y2xlYXIoKQogeworICAgIG1fcGl4bWFwID0gUVBpeG1hcCgpOwogICAgIG1faW1h
Z2UgPSBRSW1hZ2UoKTsKICAgICBtX3N0YXR1cyA9IEZyYW1lRW1wdHk7CiAgICAgLy8gTk9URTog
RG8gbm90IHJlc2V0IG90aGVyIG1lbWJlcnMgaGVyZTsgY2xlYXJGcmFtZUJ1ZmZlckNhY2hlKCkK
QEAgLTY3LDcgKzY4LDExIEBAIHZvaWQgUkdCQTMyQnVmZmVyOjpjbGVhcigpCiAKIHZvaWQgUkdC
QTMyQnVmZmVyOjp6ZXJvRmlsbCgpCiB7Ci0gICAgbV9pbWFnZS5maWxsKDApOworICAgIGlmICht
X3BpeG1hcC5pc051bGwoKSAmJiAhbV9pbWFnZS5pc051bGwoKSkgeworICAgICAgICBtX3BpeG1h
cCA9IFFQaXhtYXA6OmZyb21JbWFnZShtX2ltYWdlKTsKKyAgICAgICAgbV9pbWFnZSA9IFFJbWFn
ZSgpOworICAgIH0KKyAgICBtX3BpeG1hcC5maWxsKFFDb2xvcigwLCAwLCAwLCAwKSk7CiB9CiAK
IHZvaWQgUkdCQTMyQnVmZmVyOjpjb3B5Qml0bWFwRGF0YShjb25zdCBSR0JBMzJCdWZmZXImIG90
aGVyKQpAQCAtNzYsNiArODEsNyBAQCB2b2lkIFJHQkEzMkJ1ZmZlcjo6Y29weUJpdG1hcERhdGEo
Y29uc3QgUkdCQTMyQnVmZmVyJiBvdGhlcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pbWFn
ZSA9IG90aGVyLm1faW1hZ2U7CisgICAgbV9waXhtYXAgPSBvdGhlci5tX3BpeG1hcDsKICAgICBt
X3NpemUgPSBvdGhlci5tX3NpemU7CiAgICAgbV9oYXNBbHBoYSA9IG90aGVyLm1faGFzQWxwaGE7
CiB9CkBAIC04Nyw4ICs5Myw5IEBAIGJvb2wgUkdCQTMyQnVmZmVyOjpzZXRTaXplKGludCBuZXdX
aWR0aCwgaW50IG5ld0hlaWdodCkKICAgICBBU1NFUlQod2lkdGgoKSA9PSAwICYmIGhlaWdodCgp
ID09IDApOwogCiAgICAgbV9zaXplID0gSW50U2l6ZShuZXdXaWR0aCwgbmV3SGVpZ2h0KTsKLSAg
ICBtX2ltYWdlID0gUUltYWdlKG5ld1dpZHRoLCBuZXdIZWlnaHQsIFFJbWFnZTo6Rm9ybWF0X0FS
R0IzMl9QcmVtdWx0aXBsaWVkKTsKLSAgICBpZiAobV9pbWFnZS5pc051bGwoKSkKKyAgICBtX2lt
YWdlID0gUUltYWdlKCk7CisgICAgbV9waXhtYXAgPSBRUGl4bWFwKG5ld1dpZHRoLCBuZXdIZWln
aHQpOworICAgIGlmIChtX3BpeG1hcC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgLy8gWmVybyB0aGUgaW1hZ2UuCkBAIC05OSwxMCArMTA2LDExIEBAIGJvb2wgUkdCQTMy
QnVmZmVyOjpzZXRTaXplKGludCBuZXdXaWR0aCwgaW50IG5ld0hlaWdodCkKIAogUVBpeG1hcCog
UkdCQTMyQnVmZmVyOjphc05ld05hdGl2ZUltYWdlKCkgY29uc3QKIHsKLSAgICBRUGl4bWFwIHBp
eCA9IFFQaXhtYXA6OmZyb21JbWFnZShtX2ltYWdlKTsKLSAgICBtX2ltYWdlID0gUUltYWdlKCk7
Ci0KLSAgICByZXR1cm4gbmV3IFFQaXhtYXAocGl4KTsKKyAgICBpZiAobV9waXhtYXAuaXNOdWxs
KCkgJiYgIW1faW1hZ2UuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9waXhtYXAgPSBRUGl4bWFwOjpm
cm9tSW1hZ2UobV9pbWFnZSk7CisgICAgICAgIG1faW1hZ2UgPSBRSW1hZ2UoKTsKKyAgICB9Cisg
ICAgcmV0dXJuIG5ldyBRUGl4bWFwKG1fcGl4bWFwKTsKIH0KIAogYm9vbCBSR0JBMzJCdWZmZXI6
Omhhc0FscGhhKCkgY29uc3QKQEAgLTEyMSwxMSArMTI5LDEyIEBAIHZvaWQgUkdCQTMyQnVmZmVy
OjpzZXRTdGF0dXMoRnJhbWVTdGF0dXMgc3RhdHVzKQogfQogCiAvLyBUaGUgaW1hZ2UgbXVzdCBu
b3QgaGF2ZSBmb3JtYXQgODg4OCBwcmUgbXVsdGlwbGllZC4uLgotdm9pZCBSR0JBMzJCdWZmZXI6
OnNldERlY29kZWRJbWFnZShjb25zdCBRSW1hZ2UmIGltYWdlKQordm9pZCBSR0JBMzJCdWZmZXI6
OnNldFBpeG1hcChjb25zdCBRUGl4bWFwJiBwaXhtYXApCiB7Ci0gICAgbV9pbWFnZSA9IGltYWdl
OwotICAgIG1fc2l6ZSA9IGltYWdlLnNpemUoKTsKLSAgICBtX2hhc0FscGhhID0gaW1hZ2UuaGFz
QWxwaGFDaGFubmVsKCk7CisgICAgbV9waXhtYXAgPSBwaXhtYXA7CisgICAgbV9pbWFnZSA9IFFJ
bWFnZSgpOworICAgIG1fc2l6ZSA9IHBpeG1hcC5zaXplKCk7CisgICAgbV9oYXNBbHBoYSA9IHBp
eG1hcC5oYXNBbHBoYUNoYW5uZWwoKTsKIH0KIAogaW50IFJHQkEzMkJ1ZmZlcjo6d2lkdGgoKSBj
b25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60555</attachid>
            <date>2010-07-05 10:59:17 -0700</date>
            <delta_ts>2010-07-06 02:28:27 -0700</delta_ts>
            <desc>Update to take advantage of new APIs in Qt</desc>
            <filename>40797.patch</filename>
            <type>text/plain</type>
            <size>2662</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTY4ZGQxZi4uMjlkZDNkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNy0wNSAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRGVjb2RlIGltYWdlcyBkaXJlY3RseSB0
byBRUGl4bWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDc5NworCisgICAgICAgIFVzZSB0aGUgbmV3IEFQSSBvZiBRdCA0LjcgdG8gZGVjb2RlIGRh
dGEgZnJvbSB0aGUgaW1hZ2UKKyAgICAgICAgcmVhZGVyIGRpcmVjdGx5IHRvIFFQaXhtYXAuCisK
KyAgICAgICAgVGhpcyBhbGxvdyB1cyB0byB1c2UgSkRDVF9JRkFTVCB3aGVuIGRlY29kaW5nIGpw
ZWcgaW1hZ2VzCisgICAgICAgIHRvIHBpeG1hcCwgYW5kIHRvIGRlY29kZSBhbmltYXRlZCBHSUYg
aW1hZ2VzLCB3aGlsZSBzdGlsbAorICAgICAgICB1c2luZyBpbi1wbGFjZSBjb252ZXJzaW9uIG9m
IGNvbG9yIHNwYWNlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNv
ZGVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyUXQ6OnNldERhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyUXQ6OmludGVybmFsSGFuZGxlQ3VycmVudElt
YWdlKToKKwogMjAxMC0wNy0wNSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5Acmlt
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUgLyBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAKaW5k
ZXggZmIzZDYyMS4uNjJhMjhmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9JbWFnZURlY29kZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9JbWFnZURlY29kZXJRdC5jcHAKQEAgLTc4LDYgKzc4LDkgQEAgdm9pZCBJbWFnZURlY29kZXJR
dDo6c2V0RGF0YShTaGFyZWRCdWZmZXIqIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAg
IG1fYnVmZmVyLT5vcGVuKFFJT0RldmljZTo6UmVhZE9ubHkgfCBRSU9EZXZpY2U6OlVuYnVmZmVy
ZWQpOwogICAgIG1fcmVhZGVyLnNldChuZXcgUUltYWdlUmVhZGVyKG1fYnVmZmVyLmdldCgpLCBt
X2Zvcm1hdCkpOwogCisgICAgLy8gVGhpcyB3aWxsIGZvcmNlIHRoZSBKUEVHIGRlY29kZXIgdG8g
dXNlIEpEQ1RfSUZBU1QKKyAgICBtX3JlYWRlci0+c2V0UXVhbGl0eSg0OSk7CisKICAgICAvLyBR
SW1hZ2VSZWFkZXIgb25seSBhbGxvd3MgcmV0cmlldmluZyB0aGUgZm9ybWF0IGJlZm9yZSByZWFk
aW5nIHRoZSBpbWFnZQogICAgIG1fZm9ybWF0ID0gbV9yZWFkZXItPmZvcm1hdCgpOwogfQpAQCAt
MTg2LDIwICsxODksMjAgQEAgdm9pZCBJbWFnZURlY29kZXJRdDo6aW50ZXJuYWxSZWFkSW1hZ2Uo
c2l6ZV90IGZyYW1lSW5kZXgpCiBib29sIEltYWdlRGVjb2RlclF0OjppbnRlcm5hbEhhbmRsZUN1
cnJlbnRJbWFnZShzaXplX3QgZnJhbWVJbmRleCkKIHsKICAgICBRUGl4bWFwIHBpeG1hcDsKLSAg
ICBib29sIHBpeG1hcExvYWRlZDsKLSAgICBjb25zdCBpbnQgaW1hZ2VDb3VudCA9IG1fcmVhZGVy
LT5pbWFnZUNvdW50KCk7Ci0gICAgaWYgKGltYWdlQ291bnQgPT0gMCB8fCBpbWFnZUNvdW50ID09
IDEpCi0gICAgICAgIHBpeG1hcExvYWRlZCA9IHBpeG1hcC5sb2FkRnJvbURhdGEoKGNvbnN0IHVj
aGFyKikobV9kYXRhLT5kYXRhKCkpLCBtX2RhdGEtPnNpemUoKSwgbV9mb3JtYXQpOwotICAgIGVs
c2UgewotICAgICAgICBRSW1hZ2UgaW1nOwotICAgICAgICBjb25zdCBib29sIGltYWdlTG9hZGVk
ID0gbV9yZWFkZXItPnJlYWQoJmltZyk7Ci0gICAgICAgIGlmIChpbWFnZUxvYWRlZCkgewotICAg
ICAgICAgICAgcGl4bWFwID0gUVBpeG1hcDo6ZnJvbUltYWdlKGltZyk7Ci0gICAgICAgICAgICBw
aXhtYXBMb2FkZWQgPSB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCFwaXhtYXBM
b2FkZWQpIHsKKyAgICBib29sIGRlY29kaW5nRmFpbGVkID0gZmFsc2U7CisKKyNpZiBRVF9WRVJT
SU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNywgMCkKKyAgICBwaXhtYXAgPSBRUGl4bWFwOjpm
cm9tSW1hZ2VSZWFkZXIobV9yZWFkZXIuZ2V0KCkpOworICAgIGRlY29kaW5nRmFpbGVkID0gcGl4
bWFwLmlzTnVsbCgpOworI2Vsc2UKKyAgICBRSW1hZ2UgaW1nOworICAgIGlmIChtX3JlYWRlci0+
cmVhZCgmaW1nKSkKKyAgICAgICAgcGl4bWFwID0gUVBpeG1hcDo6ZnJvbUltYWdlKGltZyk7Cisg
ICAgZWxzZQorICAgICAgICBkZWNvZGluZ0ZhaWxlZCA9IHRydWU7CisjZW5kaWYKKworICAgIGlm
IChkZWNvZGluZ0ZhaWxlZCkgewogICAgICAgICBmcmFtZUNvdW50KCk7CiAgICAgICAgIHJlcGV0
aXRpb25Db3VudCgpOwogICAgICAgICBjbGVhclBvaW50ZXJzKCk7Cg==
</data>
<flag name="review"
          id="48120"
          type_id="1"
          status="+"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="48121"
          type_id="3"
          status="+"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60606</attachid>
            <date>2010-07-06 02:28:27 -0700</date>
            <delta_ts>2010-07-06 03:13:40 -0700</delta_ts>
            <desc>Update to take advantage of new APIs in Qt + null pixmap</desc>
            <filename>40797.patch</filename>
            <type>text/plain</type>
            <size>2546</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTY4ZGQxZi4uMjlkZDNkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNy0wNSAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRGVjb2RlIGltYWdlcyBkaXJlY3RseSB0
byBRUGl4bWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDc5NworCisgICAgICAgIFVzZSB0aGUgbmV3IEFQSSBvZiBRdCA0LjcgdG8gZGVjb2RlIGRh
dGEgZnJvbSB0aGUgaW1hZ2UKKyAgICAgICAgcmVhZGVyIGRpcmVjdGx5IHRvIFFQaXhtYXAuCisK
KyAgICAgICAgVGhpcyBhbGxvdyB1cyB0byB1c2UgSkRDVF9JRkFTVCB3aGVuIGRlY29kaW5nIGpw
ZWcgaW1hZ2VzCisgICAgICAgIHRvIHBpeG1hcCwgYW5kIHRvIGRlY29kZSBhbmltYXRlZCBHSUYg
aW1hZ2VzLCB3aGlsZSBzdGlsbAorICAgICAgICB1c2luZyBpbi1wbGFjZSBjb252ZXJzaW9uIG9m
IGNvbG9yIHNwYWNlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNv
ZGVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyUXQ6OnNldERhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyUXQ6OmludGVybmFsSGFuZGxlQ3VycmVudElt
YWdlKToKKwogMjAxMC0wNy0wNSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5Acmlt
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUgLyBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VEZWNvZGVyUXQu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZURlY29kZXJRdC5jcHAKaW5k
ZXggZmIzZDYyMS4uODU4Y2M0NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9JbWFnZURlY29kZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9JbWFnZURlY29kZXJRdC5jcHAKQEAgLTc4LDYgKzc4LDkgQEAgdm9pZCBJbWFnZURlY29kZXJR
dDo6c2V0RGF0YShTaGFyZWRCdWZmZXIqIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAg
IG1fYnVmZmVyLT5vcGVuKFFJT0RldmljZTo6UmVhZE9ubHkgfCBRSU9EZXZpY2U6OlVuYnVmZmVy
ZWQpOwogICAgIG1fcmVhZGVyLnNldChuZXcgUUltYWdlUmVhZGVyKG1fYnVmZmVyLmdldCgpLCBt
X2Zvcm1hdCkpOwogCisgICAgLy8gVGhpcyB3aWxsIGZvcmNlIHRoZSBKUEVHIGRlY29kZXIgdG8g
dXNlIEpEQ1RfSUZBU1QKKyAgICBtX3JlYWRlci0+c2V0UXVhbGl0eSg0OSk7CisKICAgICAvLyBR
SW1hZ2VSZWFkZXIgb25seSBhbGxvd3MgcmV0cmlldmluZyB0aGUgZm9ybWF0IGJlZm9yZSByZWFk
aW5nIHRoZSBpbWFnZQogICAgIG1fZm9ybWF0ID0gbV9yZWFkZXItPmZvcm1hdCgpOwogfQpAQCAt
MTg2LDIwICsxODksMTYgQEAgdm9pZCBJbWFnZURlY29kZXJRdDo6aW50ZXJuYWxSZWFkSW1hZ2Uo
c2l6ZV90IGZyYW1lSW5kZXgpCiBib29sIEltYWdlRGVjb2RlclF0OjppbnRlcm5hbEhhbmRsZUN1
cnJlbnRJbWFnZShzaXplX3QgZnJhbWVJbmRleCkKIHsKICAgICBRUGl4bWFwIHBpeG1hcDsKLSAg
ICBib29sIHBpeG1hcExvYWRlZDsKLSAgICBjb25zdCBpbnQgaW1hZ2VDb3VudCA9IG1fcmVhZGVy
LT5pbWFnZUNvdW50KCk7Ci0gICAgaWYgKGltYWdlQ291bnQgPT0gMCB8fCBpbWFnZUNvdW50ID09
IDEpCi0gICAgICAgIHBpeG1hcExvYWRlZCA9IHBpeG1hcC5sb2FkRnJvbURhdGEoKGNvbnN0IHVj
aGFyKikobV9kYXRhLT5kYXRhKCkpLCBtX2RhdGEtPnNpemUoKSwgbV9mb3JtYXQpOwotICAgIGVs
c2UgewotICAgICAgICBRSW1hZ2UgaW1nOwotICAgICAgICBjb25zdCBib29sIGltYWdlTG9hZGVk
ID0gbV9yZWFkZXItPnJlYWQoJmltZyk7Ci0gICAgICAgIGlmIChpbWFnZUxvYWRlZCkgewotICAg
ICAgICAgICAgcGl4bWFwID0gUVBpeG1hcDo6ZnJvbUltYWdlKGltZyk7Ci0gICAgICAgICAgICBw
aXhtYXBMb2FkZWQgPSB0cnVlOwotICAgICAgICB9Ci0gICAgfQogCi0gICAgaWYgKCFwaXhtYXBM
b2FkZWQpIHsKKyNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNywgMCkKKyAg
ICBwaXhtYXAgPSBRUGl4bWFwOjpmcm9tSW1hZ2VSZWFkZXIobV9yZWFkZXIuZ2V0KCkpOworI2Vs
c2UKKyAgICBRSW1hZ2UgaW1nOworICAgIGlmIChtX3JlYWRlci0+cmVhZCgmaW1nKSkKKyAgICAg
ICAgcGl4bWFwID0gUVBpeG1hcDo6ZnJvbUltYWdlKGltZyk7CisjZW5kaWYKKworICAgIGlmIChw
aXhtYXAuaXNOdWxsKCkpIHsKICAgICAgICAgZnJhbWVDb3VudCgpOwogICAgICAgICByZXBldGl0
aW9uQ291bnQoKTsKICAgICAgICAgY2xlYXJQb2ludGVycygpOwo=
</data>
<flag name="review"
          id="48218"
          type_id="1"
          status="+"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="48219"
          type_id="3"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>