<?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>60331</bug_id>
          
          <creation_ts>2011-05-05 19:26:23 -0700</creation_ts>
          <short_desc>Remove canvas usage of roundToDevicePixels</short_desc>
          <delta_ts>2011-05-09 13:23:13 -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>Canvas</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="Matthew Delaney">mdelaney7</reporter>
          <assigned_to name="Matthew Delaney">mdelaney7</assigned_to>
          <cc>mdelaney7</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>399287</commentid>
    <comment_count>0</comment_count>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2011-05-05 19:26:23 -0700</bug_when>
    <thetext>roundToDevicePixels() was added in http://trac.webkit.org/changeset/14739 to canvas in order to remedy pixel cracks when at non-integral scales. This code path causes us to create clips for drawImage which causes the drawImage path to be much slower in CG. Chromium appears to ignore the method altogether by early returning from it. I don&apos;t believe it&apos;s necessary to worry about rounding to device pixels when drawing in the canvas&apos; backing stores.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399293</commentid>
    <comment_count>1</comment_count>
      <attachid>92531</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2011-05-05 19:39:03 -0700</bug_when>
    <thetext>Created attachment 92531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399336</commentid>
    <comment_count>2</comment_count>
      <attachid>92531</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-05 22:34:28 -0700</bug_when>
    <thetext>Comment on attachment 92531
Patch

Were all these calls to roundToDevicePixels() added at the same time? Have you looked at the history to check why each was added?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400596</commentid>
    <comment_count>3</comment_count>
      <attachid>92810</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2011-05-09 11:22:35 -0700</bug_when>
    <thetext>Created attachment 92810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400655</commentid>
    <comment_count>4</comment_count>
      <attachid>92810</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-09 12:27:23 -0700</bug_when>
    <thetext>Comment on attachment 92810
Patch

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

&gt; Source/WebCore/platform/graphics/cg/ImageCG.cpp:271
&gt; -    CGContextDrawImage(context, GraphicsContext(context).roundToDevicePixels(FloatRect(0, 0, CGImageGetWidth(image), CGImageGetHeight(image))), image);
&gt; +    CGContextDrawImage(context, FloatRect(0, 0, CGImageGetWidth(image), CGImageGetHeight(image)), image);

The change log says &quot;This could only affect canvases at non-integral scale factors&quot; but that doesn&apos;t seem to be true for this change.

&gt; Source/WebCore/platform/graphics/cg/PatternCG.cpp:43
&gt; +    CGRect rect = FloatRect(0, 0, CGImageGetWidth(platformImage), CGImageGetHeight(platformImage));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400676</commentid>
    <comment_count>5</comment_count>
      <attachid>92829</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2011-05-09 12:42:46 -0700</bug_when>
    <thetext>Created attachment 92829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400704</commentid>
    <comment_count>6</comment_count>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2011-05-09 13:23:13 -0700</bug_when>
    <thetext>Committed r86085: &lt;http://trac.webkit.org/changeset/86085&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92531</attachid>
            <date>2011-05-05 19:39:03 -0700</date>
            <delta_ts>2011-05-09 11:22:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60331-20110505193859.patch</filename>
            <type>text/plain</type>
            <size>3249</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1OTEzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDUtMDUgIE1hdHRoZXcg
RGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgY2FudmFzIHVzYWdlIG9mIHJvdW5kVG9EZXZp
Y2VQaXhlbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYwMzMxCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIGNvdWxkIG9ubHkgYWZmZWN0IGNh
bnZhc2VzIGF0IG5vbi1pbnRlZ3JhbCBzY2FsZSBmYWN0b3JzLiBPdXIgdGVzdHMgb25seSBydW4g
aW4gMS4weC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdJ
bWFnZSk6CisKIDIwMTEtMDUtMDUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5j
cHAJKHJldmlzaW9uIDg1Nzc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxMywxMCArMTMxMyw4
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UKIAogICAgIGNoZWNr
T3JpZ2luKGltYWdlKTsKIAotICAgIEZsb2F0UmVjdCBzb3VyY2VSZWN0ID0gYy0+cm91bmRUb0Rl
dmljZVBpeGVscyhub3JtYWxpemVkU3JjUmVjdCk7Ci0gICAgRmxvYXRSZWN0IGRlc3RSZWN0ID0g
Yy0+cm91bmRUb0RldmljZVBpeGVscyhub3JtYWxpemVkRHN0UmVjdCk7Ci0gICAgYy0+ZHJhd0lt
YWdlKGNhY2hlZEltYWdlLT5pbWFnZSgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0UmVjdCwg
c291cmNlUmVjdCwgb3ApOwotICAgIGRpZERyYXcoZGVzdFJlY3QpOworICAgIGMtPmRyYXdJbWFn
ZShjYWNoZWRJbWFnZS0+aW1hZ2UoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgbm9ybWFsaXplZERz
dFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcCk7CisgICAgZGlkRHJhdyhub3JtYWxpemVkRHN0
UmVjdCk7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UoSFRN
TENhbnZhc0VsZW1lbnQqIGNhbnZhcywgZmxvYXQgeCwgZmxvYXQgeSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCkBAIC0xMzc2LDkgKzEzNzQsNiBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
ZHJhd0ltYWdlCiAgICAgaWYgKCFzdGF0ZSgpLm1faW52ZXJ0aWJsZUNUTSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgRmxvYXRSZWN0IHNvdXJjZVJlY3QgPSBjLT5yb3VuZFRvRGV2aWNlUGl4ZWxz
KHNyY1JlY3QpOwotICAgIEZsb2F0UmVjdCBkZXN0UmVjdCA9IGMtPnJvdW5kVG9EZXZpY2VQaXhl
bHMoZHN0UmVjdCk7Ci0KICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3JtLWlu
ZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCiAgICAgSW1hZ2VCdWZmZXIqIGJ1ZmZlciA9
IHNvdXJjZUNhbnZhcy0+YnVmZmVyKCk7CiAgICAgaWYgKCFidWZmZXIpCkBAIC0xMzk3LDggKzEz
OTIsOCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlCiAgICAgc291
cmNlQ2FudmFzLT5tYWtlUmVuZGVyaW5nUmVzdWx0c0F2YWlsYWJsZSgpOwogI2VuZGlmCiAKLSAg
ICBjLT5kcmF3SW1hZ2VCdWZmZXIoYnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0UmVj
dCwgc291cmNlUmVjdCwgc3RhdGUoKS5tX2dsb2JhbENvbXBvc2l0ZSk7Ci0gICAgZGlkRHJhdyhk
ZXN0UmVjdCk7CisgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKGJ1ZmZlciwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgZHN0UmVjdCwgc3JjUmVjdCwgc3RhdGUoKS5tX2dsb2JhbENvbXBvc2l0ZSk7CisgICAg
ZGlkRHJhdyhkc3RSZWN0KTsKIH0KIAogI2lmIEVOQUJMRShWSURFTykKQEAgLTE0NjAsMTcgKzE0
NTUsMTQgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdJbWFnZQogCiAgICAg
Y2hlY2tPcmlnaW4odmlkZW8pOwogCi0gICAgRmxvYXRSZWN0IHNvdXJjZVJlY3QgPSBjLT5yb3Vu
ZFRvRGV2aWNlUGl4ZWxzKHNyY1JlY3QpOwotICAgIEZsb2F0UmVjdCBkZXN0UmVjdCA9IGMtPnJv
dW5kVG9EZXZpY2VQaXhlbHMoZHN0UmVjdCk7Ci0KICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIoKmMpOwotICAgIGMtPmNsaXAoZGVzdFJlY3QpOwotICAgIGMtPnRyYW5z
bGF0ZShkZXN0UmVjdC54KCksIGRlc3RSZWN0LnkoKSk7Ci0gICAgYy0+c2NhbGUoRmxvYXRTaXpl
KGRlc3RSZWN0LndpZHRoKCkgLyBzb3VyY2VSZWN0LndpZHRoKCksIGRlc3RSZWN0LmhlaWdodCgp
IC8gc291cmNlUmVjdC5oZWlnaHQoKSkpOwotICAgIGMtPnRyYW5zbGF0ZSgtc291cmNlUmVjdC54
KCksIC1zb3VyY2VSZWN0LnkoKSk7CisgICAgYy0+Y2xpcChkc3RSZWN0KTsKKyAgICBjLT50cmFu
c2xhdGUoZHN0UmVjdC54KCksIGRzdFJlY3QueSgpKTsKKyAgICBjLT5zY2FsZShGbG9hdFNpemUo
ZHN0UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgpLCBkc3RSZWN0LmhlaWdodCgpIC8gc3Jj
UmVjdC5oZWlnaHQoKSkpOworICAgIGMtPnRyYW5zbGF0ZSgtc3JjUmVjdC54KCksIC1zcmNSZWN0
LnkoKSk7CiAgICAgdmlkZW8tPnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGMsIEludFJlY3Qo
SW50UG9pbnQoKSwgc2l6ZSh2aWRlbykpKTsKICAgICBzdGF0ZVNhdmVyLnJlc3RvcmUoKTsKLSAg
ICBkaWREcmF3KGRlc3RSZWN0KTsKKyAgICBkaWREcmF3KGRzdFJlY3QpOwogfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92810</attachid>
            <date>2011-05-09 11:22:35 -0700</date>
            <delta_ts>2011-05-09 12:42:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60331-20110509112244.patch</filename>
            <type>text/plain</type>
            <size>4748</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1OTEzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDUtMDUgIE1hdHRoZXcg
RGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgY2FudmFzIHVzYWdlIG9mIHJvdW5kVG9EZXZp
Y2VQaXhlbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYwMzMxCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIGNvdWxkIG9ubHkgYWZmZWN0IGNh
bnZhc2VzIGF0IG5vbi1pbnRlZ3JhbCBzY2FsZSBmYWN0b3JzLiBPdXIgdGVzdHMgb25seSBydW4g
aW4gMS4weC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdJ
bWFnZSk6CisKIDIwMTEtMDUtMDUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5j
cHAJKHJldmlzaW9uIDg1Nzc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxMywxMCArMTMxMyw4
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UKIAogICAgIGNoZWNr
T3JpZ2luKGltYWdlKTsKIAotICAgIEZsb2F0UmVjdCBzb3VyY2VSZWN0ID0gYy0+cm91bmRUb0Rl
dmljZVBpeGVscyhub3JtYWxpemVkU3JjUmVjdCk7Ci0gICAgRmxvYXRSZWN0IGRlc3RSZWN0ID0g
Yy0+cm91bmRUb0RldmljZVBpeGVscyhub3JtYWxpemVkRHN0UmVjdCk7Ci0gICAgYy0+ZHJhd0lt
YWdlKGNhY2hlZEltYWdlLT5pbWFnZSgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0UmVjdCwg
c291cmNlUmVjdCwgb3ApOwotICAgIGRpZERyYXcoZGVzdFJlY3QpOworICAgIGMtPmRyYXdJbWFn
ZShjYWNoZWRJbWFnZS0+aW1hZ2UoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgbm9ybWFsaXplZERz
dFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcCk7CisgICAgZGlkRHJhdyhub3JtYWxpemVkRHN0
UmVjdCk7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UoSFRN
TENhbnZhc0VsZW1lbnQqIGNhbnZhcywgZmxvYXQgeCwgZmxvYXQgeSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCkBAIC0xMzc2LDkgKzEzNzQsNiBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
ZHJhd0ltYWdlCiAgICAgaWYgKCFzdGF0ZSgpLm1faW52ZXJ0aWJsZUNUTSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgRmxvYXRSZWN0IHNvdXJjZVJlY3QgPSBjLT5yb3VuZFRvRGV2aWNlUGl4ZWxz
KHNyY1JlY3QpOwotICAgIEZsb2F0UmVjdCBkZXN0UmVjdCA9IGMtPnJvdW5kVG9EZXZpY2VQaXhl
bHMoZHN0UmVjdCk7Ci0KICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3JtLWlu
ZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCiAgICAgSW1hZ2VCdWZmZXIqIGJ1ZmZlciA9
IHNvdXJjZUNhbnZhcy0+YnVmZmVyKCk7CiAgICAgaWYgKCFidWZmZXIpCkBAIC0xMzk3LDggKzEz
OTIsOCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlCiAgICAgc291
cmNlQ2FudmFzLT5tYWtlUmVuZGVyaW5nUmVzdWx0c0F2YWlsYWJsZSgpOwogI2VuZGlmCiAKLSAg
ICBjLT5kcmF3SW1hZ2VCdWZmZXIoYnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0UmVj
dCwgc291cmNlUmVjdCwgc3RhdGUoKS5tX2dsb2JhbENvbXBvc2l0ZSk7Ci0gICAgZGlkRHJhdyhk
ZXN0UmVjdCk7CisgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKGJ1ZmZlciwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgZHN0UmVjdCwgc3JjUmVjdCwgc3RhdGUoKS5tX2dsb2JhbENvbXBvc2l0ZSk7CisgICAg
ZGlkRHJhdyhkc3RSZWN0KTsKIH0KIAogI2lmIEVOQUJMRShWSURFTykKQEAgLTE0NjAsMTcgKzE0
NTUsMTQgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdJbWFnZQogCiAgICAg
Y2hlY2tPcmlnaW4odmlkZW8pOwogCi0gICAgRmxvYXRSZWN0IHNvdXJjZVJlY3QgPSBjLT5yb3Vu
ZFRvRGV2aWNlUGl4ZWxzKHNyY1JlY3QpOwotICAgIEZsb2F0UmVjdCBkZXN0UmVjdCA9IGMtPnJv
dW5kVG9EZXZpY2VQaXhlbHMoZHN0UmVjdCk7Ci0KICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIoKmMpOwotICAgIGMtPmNsaXAoZGVzdFJlY3QpOwotICAgIGMtPnRyYW5z
bGF0ZShkZXN0UmVjdC54KCksIGRlc3RSZWN0LnkoKSk7Ci0gICAgYy0+c2NhbGUoRmxvYXRTaXpl
KGRlc3RSZWN0LndpZHRoKCkgLyBzb3VyY2VSZWN0LndpZHRoKCksIGRlc3RSZWN0LmhlaWdodCgp
IC8gc291cmNlUmVjdC5oZWlnaHQoKSkpOwotICAgIGMtPnRyYW5zbGF0ZSgtc291cmNlUmVjdC54
KCksIC1zb3VyY2VSZWN0LnkoKSk7CisgICAgYy0+Y2xpcChkc3RSZWN0KTsKKyAgICBjLT50cmFu
c2xhdGUoZHN0UmVjdC54KCksIGRzdFJlY3QueSgpKTsKKyAgICBjLT5zY2FsZShGbG9hdFNpemUo
ZHN0UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgpLCBkc3RSZWN0LmhlaWdodCgpIC8gc3Jj
UmVjdC5oZWlnaHQoKSkpOworICAgIGMtPnRyYW5zbGF0ZSgtc3JjUmVjdC54KCksIC1zcmNSZWN0
LnkoKSk7CiAgICAgdmlkZW8tPnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGMsIEludFJlY3Qo
SW50UG9pbnQoKSwgc2l6ZSh2aWRlbykpKTsKICAgICBzdGF0ZVNhdmVyLnJlc3RvcmUoKTsKLSAg
ICBkaWREcmF3KGRlc3RSZWN0KTsKKyAgICBkaWREcmF3KGRzdFJlY3QpOwogfQogI2VuZGlmCiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cu
Y3BwCShyZXZpc2lvbiA4NTc3NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjgsNyArMjY4LDcgQEAgdm9pZCBC
aXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIAogc3RhdGljIHZvaWQgZHJhd1BhdHRl
cm5DYWxsYmFjayh2b2lkKiBpbmZvLCBDR0NvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICBDR0lt
YWdlUmVmIGltYWdlID0gKENHSW1hZ2VSZWYpaW5mbzsKLSAgICBDR0NvbnRleHREcmF3SW1hZ2Uo
Y29udGV4dCwgR3JhcGhpY3NDb250ZXh0KGNvbnRleHQpLnJvdW5kVG9EZXZpY2VQaXhlbHMoRmxv
YXRSZWN0KDAsIDAsIENHSW1hZ2VHZXRXaWR0aChpbWFnZSksIENHSW1hZ2VHZXRIZWlnaHQoaW1h
Z2UpKSksIGltYWdlKTsKKyAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dCwgRmxvYXRSZWN0
KDAsIDAsIENHSW1hZ2VHZXRXaWR0aChpbWFnZSksIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UpKSwg
aW1hZ2UpOwogfQogCiB2b2lkIEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGN0
eHQsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L1BhdHRlcm5DRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvUGF0dGVybkNHLmNwcAkocmV2aXNpb24gODU3NzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw4ICs0MCw3IEBAIHN0YXRpYyB2b2lkIHBhdHRlcm5DYWxsYmFjayh2b2lkKiBpbmZvLCAKICAg
ICBpZiAoIXBsYXRmb3JtSW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIENHUmVjdCByZWN0
ID0gR3JhcGhpY3NDb250ZXh0KGNvbnRleHQpLnJvdW5kVG9EZXZpY2VQaXhlbHMoCi0gICAgICAg
IEZsb2F0UmVjdCgwLCAwLCBDR0ltYWdlR2V0V2lkdGgocGxhdGZvcm1JbWFnZSksIENHSW1hZ2VH
ZXRIZWlnaHQocGxhdGZvcm1JbWFnZSkpKTsKKyAgICBDR1JlY3QgcmVjdCA9IEZsb2F0UmVjdCgw
LCAwLCBDR0ltYWdlR2V0V2lkdGgocGxhdGZvcm1JbWFnZSksIENHSW1hZ2VHZXRIZWlnaHQocGxh
dGZvcm1JbWFnZSkpOwogICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LCByZWN0LCBwbGF0
Zm9ybUltYWdlKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92829</attachid>
            <date>2011-05-09 12:42:46 -0700</date>
            <delta_ts>2011-05-09 13:14:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60331-20110509124254.patch</filename>
            <type>text/plain</type>
            <size>3249</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1OTEzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDUtMDUgIE1hdHRoZXcg
RGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgY2FudmFzIHVzYWdlIG9mIHJvdW5kVG9EZXZp
Y2VQaXhlbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYwMzMxCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIGNvdWxkIG9ubHkgYWZmZWN0IGNh
bnZhc2VzIGF0IG5vbi1pbnRlZ3JhbCBzY2FsZSBmYWN0b3JzLiBPdXIgdGVzdHMgb25seSBydW4g
aW4gMS4weC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdJ
bWFnZSk6CisKIDIwMTEtMDUtMDUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5j
cHAJKHJldmlzaW9uIDg1Nzc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxMywxMCArMTMxMyw4
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UKIAogICAgIGNoZWNr
T3JpZ2luKGltYWdlKTsKIAotICAgIEZsb2F0UmVjdCBzb3VyY2VSZWN0ID0gYy0+cm91bmRUb0Rl
dmljZVBpeGVscyhub3JtYWxpemVkU3JjUmVjdCk7Ci0gICAgRmxvYXRSZWN0IGRlc3RSZWN0ID0g
Yy0+cm91bmRUb0RldmljZVBpeGVscyhub3JtYWxpemVkRHN0UmVjdCk7Ci0gICAgYy0+ZHJhd0lt
YWdlKGNhY2hlZEltYWdlLT5pbWFnZSgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0UmVjdCwg
c291cmNlUmVjdCwgb3ApOwotICAgIGRpZERyYXcoZGVzdFJlY3QpOworICAgIGMtPmRyYXdJbWFn
ZShjYWNoZWRJbWFnZS0+aW1hZ2UoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgbm9ybWFsaXplZERz
dFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcCk7CisgICAgZGlkRHJhdyhub3JtYWxpemVkRHN0
UmVjdCk7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UoSFRN
TENhbnZhc0VsZW1lbnQqIGNhbnZhcywgZmxvYXQgeCwgZmxvYXQgeSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCkBAIC0xMzc2LDkgKzEzNzQsNiBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
ZHJhd0ltYWdlCiAgICAgaWYgKCFzdGF0ZSgpLm1faW52ZXJ0aWJsZUNUTSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgRmxvYXRSZWN0IHNvdXJjZVJlY3QgPSBjLT5yb3VuZFRvRGV2aWNlUGl4ZWxz
KHNyY1JlY3QpOwotICAgIEZsb2F0UmVjdCBkZXN0UmVjdCA9IGMtPnJvdW5kVG9EZXZpY2VQaXhl
bHMoZHN0UmVjdCk7Ci0KICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3JtLWlu
ZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCiAgICAgSW1hZ2VCdWZmZXIqIGJ1ZmZlciA9
IHNvdXJjZUNhbnZhcy0+YnVmZmVyKCk7CiAgICAgaWYgKCFidWZmZXIpCkBAIC0xMzk3LDggKzEz
OTIsOCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlCiAgICAgc291
cmNlQ2FudmFzLT5tYWtlUmVuZGVyaW5nUmVzdWx0c0F2YWlsYWJsZSgpOwogI2VuZGlmCiAKLSAg
ICBjLT5kcmF3SW1hZ2VCdWZmZXIoYnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0UmVj
dCwgc291cmNlUmVjdCwgc3RhdGUoKS5tX2dsb2JhbENvbXBvc2l0ZSk7Ci0gICAgZGlkRHJhdyhk
ZXN0UmVjdCk7CisgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKGJ1ZmZlciwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgZHN0UmVjdCwgc3JjUmVjdCwgc3RhdGUoKS5tX2dsb2JhbENvbXBvc2l0ZSk7CisgICAg
ZGlkRHJhdyhkc3RSZWN0KTsKIH0KIAogI2lmIEVOQUJMRShWSURFTykKQEAgLTE0NjAsMTcgKzE0
NTUsMTQgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdJbWFnZQogCiAgICAg
Y2hlY2tPcmlnaW4odmlkZW8pOwogCi0gICAgRmxvYXRSZWN0IHNvdXJjZVJlY3QgPSBjLT5yb3Vu
ZFRvRGV2aWNlUGl4ZWxzKHNyY1JlY3QpOwotICAgIEZsb2F0UmVjdCBkZXN0UmVjdCA9IGMtPnJv
dW5kVG9EZXZpY2VQaXhlbHMoZHN0UmVjdCk7Ci0KICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNh
dmVyIHN0YXRlU2F2ZXIoKmMpOwotICAgIGMtPmNsaXAoZGVzdFJlY3QpOwotICAgIGMtPnRyYW5z
bGF0ZShkZXN0UmVjdC54KCksIGRlc3RSZWN0LnkoKSk7Ci0gICAgYy0+c2NhbGUoRmxvYXRTaXpl
KGRlc3RSZWN0LndpZHRoKCkgLyBzb3VyY2VSZWN0LndpZHRoKCksIGRlc3RSZWN0LmhlaWdodCgp
IC8gc291cmNlUmVjdC5oZWlnaHQoKSkpOwotICAgIGMtPnRyYW5zbGF0ZSgtc291cmNlUmVjdC54
KCksIC1zb3VyY2VSZWN0LnkoKSk7CisgICAgYy0+Y2xpcChkc3RSZWN0KTsKKyAgICBjLT50cmFu
c2xhdGUoZHN0UmVjdC54KCksIGRzdFJlY3QueSgpKTsKKyAgICBjLT5zY2FsZShGbG9hdFNpemUo
ZHN0UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgpLCBkc3RSZWN0LmhlaWdodCgpIC8gc3Jj
UmVjdC5oZWlnaHQoKSkpOworICAgIGMtPnRyYW5zbGF0ZSgtc3JjUmVjdC54KCksIC1zcmNSZWN0
LnkoKSk7CiAgICAgdmlkZW8tPnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGMsIEludFJlY3Qo
SW50UG9pbnQoKSwgc2l6ZSh2aWRlbykpKTsKICAgICBzdGF0ZVNhdmVyLnJlc3RvcmUoKTsKLSAg
ICBkaWREcmF3KGRlc3RSZWN0KTsKKyAgICBkaWREcmF3KGRzdFJlY3QpOwogfQogI2VuZGlmCiAK
</data>
<flag name="review"
          id="85863"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>