<?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>87840</bug_id>
          
          <creation_ts>2012-05-30 03:57:56 -0700</creation_ts>
          <short_desc>[Qt] Support IMAGE_DECODER_DOWN_SAMPLING flag</short_desc>
          <delta_ts>2012-05-30 11:49:10 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>637093</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-05-30 03:57:56 -0700</bug_when>
    <thetext>Currently the Qt platform does not work correctly with the IMAGE_DECODER_DOWN_SAMPLING flag set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637124</commentid>
    <comment_count>1</comment_count>
      <attachid>144784</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-05-30 05:18:39 -0700</bug_when>
    <thetext>Created attachment 144784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637140</commentid>
    <comment_count>2</comment_count>
      <attachid>144784</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-05-30 06:09:11 -0700</bug_when>
    <thetext>Comment on attachment 144784
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=144784&amp;action=review

&gt; Source/WebCore/platform/graphics/Image.cpp:173
&gt; +    const IntSize origSize = size();

realSize?

&gt; Source/WebCore/platform/graphics/Image.cpp:175
&gt; +    // We assume down-sampling zoom rates in X direction and in Y direction are same.

Could we assert that assumption?

&gt; Source/WebCore/platform/graphics/qt/ImageQt.cpp:250
&gt; +    adjustSourceRectForDownSampling(wtfNormalizedSrc, wtfImageSize);

Impossible to see that these are out variables. Can we please use pointers

FloatRect newNormalizedSource(normalizedSrc);
adjustSourceRectForDownSampling(&amp;newNormalizedSource, IntSize(image-&gt;size());
normalizedSrc = QRectF(newNormalizedSource);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637192</commentid>
    <comment_count>3</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-05-30 07:22:02 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 144784 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144784&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/Image.cpp:173
&gt; &gt; +    const IntSize origSize = size();
&gt; 
&gt; realSize?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/Image.cpp:175
&gt; &gt; +    // We assume down-sampling zoom rates in X direction and in Y direction are same.
&gt; 
&gt; Could we assert that assumption?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/qt/ImageQt.cpp:250
&gt; &gt; +    adjustSourceRectForDownSampling(wtfNormalizedSrc, wtfImageSize);
&gt; 
&gt; Impossible to see that these are out variables. Can we please use pointers
&gt; 

The entire function is moved from ImageOpenVG.cpp and only slightly modified, but I guess that shouldn&apos;t stop me from making it prettier. Not sure about realSize though, I might as well argue that the scaledSize is the real size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637231</commentid>
    <comment_count>4</comment_count>
      <attachid>144819</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-05-30 08:01:57 -0700</bug_when>
    <thetext>Created attachment 144819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637500</commentid>
    <comment_count>5</comment_count>
      <attachid>144819</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 11:49:06 -0700</bug_when>
    <thetext>Comment on attachment 144819
Patch

Clearing flags on attachment: 144819

Committed r118947: &lt;http://trac.webkit.org/changeset/118947&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637501</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 11:49:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144784</attachid>
            <date>2012-05-30 05:18:39 -0700</date>
            <delta_ts>2012-05-30 08:01:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87840-20120530141848.patch</filename>
            <type>text/plain</type>
            <size>6386</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4OTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM0NWI3MjRmZmYxMDA0
NGYyNDAzMDcyMjM3YzQ0NjNlYzA3NDMyNS4uNDFjYjEzZjdkZjdiNTZlZDQwYTUyZDM1NTJmYmQ1
MzdlMmIzN2JlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA1LTMwICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIFtR
dF0gU3VwcG9ydCBJTUFHRV9ERUNPREVSX0RPV05fU0FNUExJTkcgZmxhZy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODQwCisKKyAgICAgICAgQmFz
ZWQgb24gcGF0Y2hlcyBieSBRaSBaaGFuZyBhbmQgSnVzc2kgTGVodG8uCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6OmFkanVzdFNvdXJjZVJlY3RGb3JEb3du
U2FtcGxpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmg6CisgICAgICAg
IChJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZH
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhdyk6CisK
IDIwMTItMDUtMzAgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgW1F0XSBTZXQgV2ViQ29yZSBpbWFnZWRlY29kZXJzIGFzIGRlZmF1bHQgYW5kIGFkZCBmYWxs
YmFjayB0byBRSW1hZ2VEZWNvZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZS5jcHAKaW5kZXggYmI3ZDNmNzNjNDkwODYwZWM3ODRhY2NkYTU2YTM4Y2MzMzhlZDE2ZC4u
ZTlmMzVjZjcxMGMxYzQxN2JlMmNlZWU3ZjYzNTQ2MGI5NGZkODkwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcApAQCAtMTY3LDYgKzE2NywyNiBAQCB2b2lk
IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3Qm
IGRzdFJlY3QsIGNvbnN0IEZsbwogICAgIHN0YXJ0QW5pbWF0aW9uKCk7CiB9CiAKKyNpZiBFTkFC
TEUoSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5HKQordm9pZCBJbWFnZTo6YWRqdXN0U291cmNl
UmVjdEZvckRvd25TYW1wbGluZyhGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFNpemUmIHNj
YWxlZFNpemUpCit7CisgICAgY29uc3QgSW50U2l6ZSBvcmlnU2l6ZSA9IHNpemUoKTsKKworICAg
IC8vIFdlIGFzc3VtZSBkb3duLXNhbXBsaW5nIHpvb20gcmF0ZXMgaW4gWCBkaXJlY3Rpb24gYW5k
IGluIFkgZGlyZWN0aW9uIGFyZSBzYW1lLgorICAgIGlmIChvcmlnU2l6ZS53aWR0aCgpID09IHNj
YWxlZFNpemUud2lkdGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSW1hZ2UgaGFzIGJl
ZW4gZG93biBzYW1wbGVkLgorICAgIGRvdWJsZSByYXRlID0gc3RhdGljX2Nhc3Q8ZG91YmxlPihz
Y2FsZWRTaXplLndpZHRoKCkpIC8gb3JpZ1NpemUud2lkdGgoKTsKKyAgICBkb3VibGUgdGVtcCA9
IHNyY1JlY3QubWF4WCgpICogcmF0ZTsKKyAgICBzcmNSZWN0LnNldFgoc3JjUmVjdC54KCkgKiBy
YXRlKTsKKyAgICBzcmNSZWN0LnNldFdpZHRoKHRlbXAgLSBzcmNSZWN0LngoKSk7CisgICAgdGVt
cCA9IHNyY1JlY3QubWF4WSgpICogcmF0ZTsKKyAgICBzcmNSZWN0LnNldFkoc3JjUmVjdC55KCkg
KiByYXRlKTsKKyAgICBzcmNSZWN0LnNldEhlaWdodCh0ZW1wIC0gc3JjUmVjdC55KCkpOworfQor
I2VuZGlmCisKIHZvaWQgSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYg
aW50cmluc2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJp
bnNpY1JhdGlvKQogewogICAgIGludHJpbnNpY1JhdGlvID0gc2l6ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggYjc4ZmM3ZDgxNjRiM2FkODI4MGEzOTNi
NDMyY2I2OWY2NGU0NmJmZS4uNmQwOWU0MTQ4NzRlZDg0YTZiYTVkNTA2MzU3OWY4NGMwMDY4MTUy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBAIC0xNjMsNiAr
MTYzLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3Bl
cmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOwogCisjaWYgRU5BQkxFKElNQUdFX0RF
Q09ERVJfRE9XTl9TQU1QTElORykKKyAgICB2b2lkIGFkanVzdFNvdXJjZVJlY3RGb3JEb3duU2Ft
cGxpbmcoRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBzY2FsZWRTaXplKTsKKyNl
bmRpZgorCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIHZpcnR1YWwgYm9vbCBub3RTb2xpZENv
bG9yKCkgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcAppbmRleCA5OGE3MzBj
MDZlYzIyNGU5MzMyODEyYjM2Mzc0YTg4ZWZjZWFlOWNkLi5jZDdkMzkzMzY2NjJmMTczNTg1OWQ2
YTVlOTg4OWU0MmU4OWQ1Nzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW52Zy9JbWFnZU9wZW5WRy5jcHAKQEAgLTEwNSwyNCArMTA1LDYgQEAg
dm9pZCBCaXRtYXBJbWFnZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCiB7CiB9CiAKLSNpZiBF
TkFCTEUoSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5HKQotc3RhdGljIHZvaWQgYWRqdXN0U291
cmNlUmVjdEZvckRvd25TYW1wbGluZyhGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFNpemUm
IG9yaWdTaXplLCBjb25zdCBJbnRTaXplJiBzY2FsZWRTaXplKQotewotICAgIC8vIFdlIGFzc3Vt
ZSBkb3duLXNhbXBsaW5nIHpvb20gcmF0ZXMgaW4gWCBkaXJlY3Rpb24gYW5kIGluIFkgZGlyZWN0
aW9uIGFyZSBzYW1lLgotICAgIGlmIChvcmlnU2l6ZS53aWR0aCgpID09IHNjYWxlZFNpemUud2lk
dGgoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gSW1hZ2UgaGFzIGJlZW4gZG93biBzYW1w
bGVkLgotICAgIGRvdWJsZSByYXRlID0gc3RhdGljX2Nhc3Q8ZG91YmxlPihzY2FsZWRTaXplLndp
ZHRoKCkpIC8gb3JpZ1NpemUud2lkdGgoKTsKLSAgICBkb3VibGUgdGVtcCA9IHNyY1JlY3Qucmln
aHQoKSAqIHJhdGU7Ci0gICAgc3JjUmVjdC5zZXRYKHNyY1JlY3QueCgpICogcmF0ZSk7Ci0gICAg
c3JjUmVjdC5zZXRXaWR0aCh0ZW1wIC0gc3JjUmVjdC54KCkpOwotICAgIHRlbXAgPSBzcmNSZWN0
LmJvdHRvbSgpICogcmF0ZTsKLSAgICBzcmNSZWN0LnNldFkoc3JjUmVjdC55KCkgKiByYXRlKTsK
LSAgICBzcmNSZWN0LnNldEhlaWdodCh0ZW1wIC0gc3JjUmVjdC55KCkpOwotfQotI2VuZGlmCi0K
IHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIGRzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKIHsKICAgICBpZiAoZHN0LmlzRW1wdHkoKSB8
fCBzcmMuaXNFbXB0eSgpKQpAQCAtMTQ5LDcgKzEzMSw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRy
YXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdCwgY29uc3Qg
RmxvCiAKICAgICBGbG9hdFJlY3Qgc3JjUmVjdExvY2FsKHNyYyk7CiAjaWYgRU5BQkxFKElNQUdF
X0RFQ09ERVJfRE9XTl9TQU1QTElORykKLSAgICBhZGp1c3RTb3VyY2VSZWN0Rm9yRG93blNhbXBs
aW5nKHNyY1JlY3RMb2NhbCwgc2l6ZSgpLCBpbWFnZS0+c2l6ZSgpKTsKKyAgICBhZGp1c3RTb3Vy
Y2VSZWN0Rm9yRG93blNhbXBsaW5nKHNyY1JlY3RMb2NhbCwgaW1hZ2UtPnNpemUoKSk7CiAjZW5k
aWYKIAogICAgIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5hY3RpdmVQYWludGVyKCktPmRy
YXdJbWFnZShpbWFnZSwgZHN0LCBzcmNSZWN0TG9jYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcAppbmRleCAxODJiMzY2ODQ0MDFiNzMzNzBh
ODliMTM0YmQwMTI3MmZjMGExNjQ1Li40ODM2NDMxNDU5M2QyN2NkZjM4NTg2NzJmZGQ5YzZjMzEy
ODM2NjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9J
bWFnZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFn
ZVF0LmNwcApAQCAtMTMyLDkgKzEzMiwxNCBAQCB2b2lkIEltYWdlOjpkcmF3UGF0dGVybihHcmFw
aGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0CiAgICAg
aWYgKCFmcmFtZVBpeG1hcCkgLy8gSWYgaXQncyB0b28gZWFybHkgd2Ugd29uJ3QgaGF2ZSBhbiBp
bWFnZSB5ZXQuCiAgICAgICAgIHJldHVybjsKIAorICAgIEZsb2F0UmVjdCB0aWxlUmVjdEFkanVz
dGVkID0gdGlsZVJlY3Q7CisjaWYgRU5BQkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykK
KyAgICBhZGp1c3RTb3VyY2VSZWN0Rm9yRG93blNhbXBsaW5nKHRpbGVSZWN0QWRqdXN0ZWQsIGZy
YW1lUGl4bWFwLT5zaXplKCkpOworI2VuZGlmCisKICAgICAvLyBRdCBpbnRlcnByZXRzIDAgd2lk
dGgvaGVpZ2h0IGFzIGZ1bGwgd2lkdGgvaGVpZ2h0IHNvIGp1c3Qgc2hvcnQgY2lyY3VpdC4KICAg
ICBRUmVjdEYgZHIgPSBRUmVjdEYoZGVzdFJlY3QpLm5vcm1hbGl6ZWQoKTsKLSAgICBRUmVjdCB0
ciA9IFFSZWN0Rih0aWxlUmVjdCkudG9SZWN0KCkubm9ybWFsaXplZCgpOworICAgIFFSZWN0IHRy
ID0gUVJlY3RGKHRpbGVSZWN0QWRqdXN0ZWQpLnRvUmVjdCgpLm5vcm1hbGl6ZWQoKTsKICAgICBp
ZiAoIWRyLndpZHRoKCkgfHwgIWRyLmhlaWdodCgpIHx8ICF0ci53aWR0aCgpIHx8ICF0ci5oZWln
aHQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzksNiArMjQ0LDEzIEBAIHZvaWQgQml0bWFw
SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdCwK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorI2lmIEVOQUJMRShJTUFHRV9ERUNPREVSX0RPV05f
U0FNUExJTkcpCisgICAgRmxvYXRSZWN0IHd0Zk5vcm1hbGl6ZWRTcmMobm9ybWFsaXplZFNyYyk7
CisgICAgY29uc3QgSW50U2l6ZSB3dGZJbWFnZVNpemUoaW1hZ2UtPnNpemUoKSk7CisgICAgYWRq
dXN0U291cmNlUmVjdEZvckRvd25TYW1wbGluZyh3dGZOb3JtYWxpemVkU3JjLCB3dGZJbWFnZVNp
emUpOworICAgIG5vcm1hbGl6ZWRTcmMgPSB3dGZOb3JtYWxpemVkU3JjOworI2VuZGlmCisKICAg
ICBDb21wb3NpdGVPcGVyYXRvciBwcmV2aW91c09wZXJhdG9yID0gY3R4dC0+Y29tcG9zaXRlT3Bl
cmF0aW9uKCk7CiAgICAgY3R4dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKCFpbWFnZS0+aGFzQWxw
aGEoKSAmJiBvcCA9PSBDb21wb3NpdGVTb3VyY2VPdmVyID8gQ29tcG9zaXRlQ29weSA6IG9wKTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144819</attachid>
            <date>2012-05-30 08:01:57 -0700</date>
            <delta_ts>2012-05-30 11:49:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>5951</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2MzQ1YjcyLi40MWNiMTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMDUtMzAgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tp
YS5jb20+CisKKyAgICAgICAgW1F0XSBTdXBwb3J0IElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElO
RyBmbGFnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODc4NDAKKworICAgICAgICBCYXNlZCBvbiBwYXRjaGVzIGJ5IFFpIFpoYW5nIGFuZCBKdXNzaSBM
ZWh0by4KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6YWRq
dXN0U291cmNlUmVjdEZvckRvd25TYW1wbGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuaDoKKyAgICAgICAgKEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6
OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkJp
dG1hcEltYWdlOjpkcmF3KToKKwogMjAxMi0wNS0zMCAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFNldCBXZWJDb3JlIGltYWdlZGVjb2RlcnMgYXMg
ZGVmYXVsdCBhbmQgYWRkIGZhbGxiYWNrIHRvIFFJbWFnZURlY29kZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAppbmRleCBiYjdkM2Y3Li4wYWNlN2FjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCkBAIC0xNjcsNiArMTY3
LDIzIEBAIHZvaWQgSW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQqIGN0eHQsIGNvbnN0
IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvCiAgICAgc3RhcnRBbmltYXRpb24oKTsKIH0K
IAorI2lmIEVOQUJMRShJTUFHRV9ERUNPREVSX0RPV05fU0FNUExJTkcpCitGbG9hdFJlY3QgSW1h
Z2U6OmFkanVzdFNvdXJjZVJlY3RGb3JEb3duU2FtcGxpbmcoY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbnRTaXplJiBzY2FsZWRTaXplKSBjb25zdAoreworICAgIGNvbnN0IEludFNp
emUgdW5zY2FsZWRTaXplID0gc2l6ZSgpOworICAgIGlmICh1bnNjYWxlZFNpemUgPT0gc2NhbGVk
U2l6ZSkKKyAgICAgICAgcmV0dXJuIHNyY1JlY3Q7CisKKyAgICAvLyBJbWFnZSBoYXMgYmVlbiBk
b3duLXNhbXBsZWQuCisgICAgZmxvYXQgeHNjYWxlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNjYWxl
ZFNpemUud2lkdGgoKSkgLyB1bnNjYWxlZFNpemUud2lkdGgoKTsKKyAgICBmbG9hdCB5c2NhbGUg
PSBzdGF0aWNfY2FzdDxmbG9hdD4oc2NhbGVkU2l6ZS5oZWlnaHQoKSkgLyB1bnNjYWxlZFNpemUu
aGVpZ2h0KCk7CisgICAgRmxvYXRSZWN0IHNjYWxlZFNyY1JlY3QgPSBzcmNSZWN0OworICAgIHNj
YWxlZFNyY1JlY3Quc2NhbGUoeHNjYWxlLCB5c2NhbGUpOworCisgICAgcmV0dXJuIHNjYWxlZFNy
Y1JlY3Q7Cit9CisjZW5kaWYKKwogdm9pZCBJbWFnZTo6Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lv
bnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQsIEZsb2F0
U2l6ZSYgaW50cmluc2ljUmF0aW8pCiB7CiAgICAgaW50cmluc2ljUmF0aW8gPSBzaXplKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBiNzhmYzdkLi4zZmY0
ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTE2Myw2
ICsxNjMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgcGF0dGVyblRyYW5zZm9ybSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
RmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVP
cGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CiAKKyNpZiBFTkFCTEUoSU1BR0Vf
REVDT0RFUl9ET1dOX1NBTVBMSU5HKQorICAgIEZsb2F0UmVjdCBhZGp1c3RTb3VyY2VSZWN0Rm9y
RG93blNhbXBsaW5nKGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nh
bGVkU2l6ZSkgY29uc3Q7CisjZW5kaWYKKwogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICB2aXJ0
dWFsIGJvb2wgbm90U29saWRDb2xvcigpIHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZH
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9JbWFnZU9wZW5W
Ry5jcHAKaW5kZXggOThhNzMwYy4uOTUxMDg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0ltYWdlT3BlblZHLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvSW1hZ2VPcGVuVkcuY3BwCkBAIC0xMDUsMjQg
KzEwNSw2IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQogewog
fQogCi0jaWYgRU5BQkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykKLXN0YXRpYyB2b2lk
IGFkanVzdFNvdXJjZVJlY3RGb3JEb3duU2FtcGxpbmcoRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbnRTaXplJiBvcmlnU2l6ZSwgY29uc3QgSW50U2l6ZSYgc2NhbGVkU2l6ZSkKLXsKLSAgICAv
LyBXZSBhc3N1bWUgZG93bi1zYW1wbGluZyB6b29tIHJhdGVzIGluIFggZGlyZWN0aW9uIGFuZCBp
biBZIGRpcmVjdGlvbiBhcmUgc2FtZS4KLSAgICBpZiAob3JpZ1NpemUud2lkdGgoKSA9PSBzY2Fs
ZWRTaXplLndpZHRoKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEltYWdlIGhhcyBiZWVu
IGRvd24gc2FtcGxlZC4KLSAgICBkb3VibGUgcmF0ZSA9IHN0YXRpY19jYXN0PGRvdWJsZT4oc2Nh
bGVkU2l6ZS53aWR0aCgpKSAvIG9yaWdTaXplLndpZHRoKCk7Ci0gICAgZG91YmxlIHRlbXAgPSBz
cmNSZWN0LnJpZ2h0KCkgKiByYXRlOwotICAgIHNyY1JlY3Quc2V0WChzcmNSZWN0LngoKSAqIHJh
dGUpOwotICAgIHNyY1JlY3Quc2V0V2lkdGgodGVtcCAtIHNyY1JlY3QueCgpKTsKLSAgICB0ZW1w
ID0gc3JjUmVjdC5ib3R0b20oKSAqIHJhdGU7Ci0gICAgc3JjUmVjdC5zZXRZKHNyY1JlY3QueSgp
ICogcmF0ZSk7Ci0gICAgc3JjUmVjdC5zZXRIZWlnaHQodGVtcCAtIHNyY1JlY3QueSgpKTsKLX0K
LSNlbmRpZgotCiB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBkc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCiB7CiAgICAgaWYgKGRzdC5p
c0VtcHR5KCkgfHwgc3JjLmlzRW1wdHkoKSkKQEAgLTE0Nyw5ICsxMjksMTAgQEAgdm9pZCBCaXRt
YXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0LCBjb25zdCBGbG8KICAgICBlbHNlCiAgICAgICAgIGNvbnRleHQtPnNldENvbXBvc2l0ZU9w
ZXJhdGlvbihvcCk7CiAKLSAgICBGbG9hdFJlY3Qgc3JjUmVjdExvY2FsKHNyYyk7CiAjaWYgRU5B
QkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykKLSAgICBhZGp1c3RTb3VyY2VSZWN0Rm9y
RG93blNhbXBsaW5nKHNyY1JlY3RMb2NhbCwgc2l6ZSgpLCBpbWFnZS0+c2l6ZSgpKTsKKyAgICBG
bG9hdFJlY3Qgc3JjUmVjdExvY2FsID0gYWRqdXN0U291cmNlUmVjdEZvckRvd25TYW1wbGluZyhz
cmMsIGltYWdlLT5zaXplKCkpOworI2Vsc2UKKyAgICBGbG9hdFJlY3Qgc3JjUmVjdExvY2FsKHNy
Yyk7CiAjZW5kaWYKIAogICAgIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5hY3RpdmVQYWlu
dGVyKCktPmRyYXdJbWFnZShpbWFnZSwgZHN0LCBzcmNSZWN0TG9jYWwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcAppbmRleCAxODJiMzY2Li44
NDk0MzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9J
bWFnZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFn
ZVF0LmNwcApAQCAtMTMyLDkgKzEzMiwxNSBAQCB2b2lkIEltYWdlOjpkcmF3UGF0dGVybihHcmFw
aGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0CiAgICAg
aWYgKCFmcmFtZVBpeG1hcCkgLy8gSWYgaXQncyB0b28gZWFybHkgd2Ugd29uJ3QgaGF2ZSBhbiBp
bWFnZSB5ZXQuCiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShJTUFHRV9ERUNPREVSX0RP
V05fU0FNUExJTkcpCisgICAgRmxvYXRSZWN0IHRpbGVSZWN0QWRqdXN0ZWQgPSBhZGp1c3RTb3Vy
Y2VSZWN0Rm9yRG93blNhbXBsaW5nKHRpbGVSZWN0LCBmcmFtZVBpeG1hcC0+c2l6ZSgpKTsKKyNl
bHNlCisgICAgRmxvYXRSZWN0IHRpbGVSZWN0QWRqdXN0ZWQgPSB0aWxlUmVjdDsKKyNlbmRpZgor
CiAgICAgLy8gUXQgaW50ZXJwcmV0cyAwIHdpZHRoL2hlaWdodCBhcyBmdWxsIHdpZHRoL2hlaWdo
dCBzbyBqdXN0IHNob3J0IGNpcmN1aXQuCiAgICAgUVJlY3RGIGRyID0gUVJlY3RGKGRlc3RSZWN0
KS5ub3JtYWxpemVkKCk7Ci0gICAgUVJlY3QgdHIgPSBRUmVjdEYodGlsZVJlY3QpLnRvUmVjdCgp
Lm5vcm1hbGl6ZWQoKTsKKyAgICBRUmVjdCB0ciA9IFFSZWN0Rih0aWxlUmVjdEFkanVzdGVkKS50
b1JlY3QoKS5ub3JtYWxpemVkKCk7CiAgICAgaWYgKCFkci53aWR0aCgpIHx8ICFkci5oZWlnaHQo
KSB8fCAhdHIud2lkdGgoKSB8fCAhdHIuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MjM5LDYgKzI0NSwxMCBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCog
Y3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3QsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyNp
ZiBFTkFCTEUoSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5HKQorICAgIG5vcm1hbGl6ZWRTcmMg
PSBhZGp1c3RTb3VyY2VSZWN0Rm9yRG93blNhbXBsaW5nKG5vcm1hbGl6ZWRTcmMsIGltYWdlLT5z
aXplKCkpOworI2VuZGlmCisKICAgICBDb21wb3NpdGVPcGVyYXRvciBwcmV2aW91c09wZXJhdG9y
ID0gY3R4dC0+Y29tcG9zaXRlT3BlcmF0aW9uKCk7CiAgICAgY3R4dC0+c2V0Q29tcG9zaXRlT3Bl
cmF0aW9uKCFpbWFnZS0+aGFzQWxwaGEoKSAmJiBvcCA9PSBDb21wb3NpdGVTb3VyY2VPdmVyID8g
Q29tcG9zaXRlQ29weSA6IG9wKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>