<?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>105519</bug_id>
          
          <creation_ts>2012-12-20 02:31:06 -0800</creation_ts>
          <short_desc>Reducing print preview scale significantly causes a crash</short_desc>
          <delta_ts>2012-12-21 01:56:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Printing</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>795305</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-12-20 02:31:06 -0800</bug_when>
    <thetext>The print preview image snapshot is being generated with a size that takes the print preview scale into account. It doesn&apos;t need to do this - the bitmap just needs to be the size that we&apos;re going to draw at!

&lt;rdar://problem/12807090&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795309</commentid>
    <comment_count>1</comment_count>
      <attachid>180308</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-12-20 02:46:27 -0800</bug_when>
    <thetext>Created attachment 180308
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795497</commentid>
    <comment_count>2</comment_count>
      <attachid>180308</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-20 09:36:38 -0800</bug_when>
    <thetext>Comment on attachment 180308
patch

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

&gt; Source/WebKit2/ChangeLog:12
&gt; +        The bitmap image used for print previews was being created respecting the print preview scale.
&gt; +        This doesn&apos;t make any sense, as the scale does not affect the size of the image required to
&gt; +        represent the previewed page. Instead, we should not scale the size, creating the buffer at a
&gt; +        size that is constant regardless of scale, and do the scaling when drawing *into* the buffer instead.

With four lines of explanation, I&apos;m still not quite sure if this was an out of memory crash :)

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:3283
&gt; +        float printingScale = (float)desiredImageSize.width() / rect.width();

We generally prefer static_cast.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.messages.in:220
&gt; +    DrawRectToImage(uint64_t frameID, WebKit::PrintInfo printInfo, WebCore::IntRect rect, WebCore::IntSize desiredImageSize, uint64_t callbackID)

&quot;Desired&quot; makes it sound like the desire may not be granted. Is that accurate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795535</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-12-20 10:13:07 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 180308 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180308&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:12
&gt; &gt; +        The bitmap image used for print previews was being created respecting the print preview scale.
&gt; &gt; +        This doesn&apos;t make any sense, as the scale does not affect the size of the image required to
&gt; &gt; +        represent the previewed page. Instead, we should not scale the size, creating the buffer at a
&gt; &gt; +        size that is constant regardless of scale, and do the scaling when drawing *into* the buffer instead.
&gt; 
&gt; With four lines of explanation, I&apos;m still not quite sure if this was an out of memory crash :)

It was, but the crash was secondary to the fact that we were respecting the scale at all when we didn&apos;t need to :D

&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:3283
&gt; &gt; +        float printingScale = (float)desiredImageSize.width() / rect.width();
&gt; 
&gt; We generally prefer static_cast.

Of course!

&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.messages.in:220
&gt; &gt; +    DrawRectToImage(uint64_t frameID, WebKit::PrintInfo printInfo, WebCore::IntRect rect, WebCore::IntSize desiredImageSize, uint64_t callbackID)
&gt; 
&gt; &quot;Desired&quot; makes it sound like the desire may not be granted. Is that accurate?

No, it will always be the desired size. Perhaps requested? or just imageSize?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796200</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-12-21 01:56:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/138356</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180308</attachid>
            <date>2012-12-20 02:46:27 -0800</date>
            <delta_ts>2012-12-20 09:36:38 -0800</delta_ts>
            <desc>patch</desc>
            <filename>printpreview-crash.diff</filename>
            <type>text/plain</type>
            <size>11283</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0ODg0ZjYyLi42NjdiNDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTItMTItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVkdWNpbmcgcHJpbnQgcHJldmlldyBzY2FsZSBzaWduaWZpY2FudGx5IGNhdXNl
cyBhIGNyYXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDU1MTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODA3MDkwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBiaXRtYXAgaW1hZ2UgdXNl
ZCBmb3IgcHJpbnQgcHJldmlld3Mgd2FzIGJlaW5nIGNyZWF0ZWQgcmVzcGVjdGluZyB0aGUgcHJp
bnQgcHJldmlldyBzY2FsZS4KKyAgICAgICAgVGhpcyBkb2Vzbid0IG1ha2UgYW55IHNlbnNlLCBh
cyB0aGUgc2NhbGUgZG9lcyBub3QgYWZmZWN0IHRoZSBzaXplIG9mIHRoZSBpbWFnZSByZXF1aXJl
ZCB0bworICAgICAgICByZXByZXNlbnQgdGhlIHByZXZpZXdlZCBwYWdlLiBJbnN0ZWFkLCB3ZSBz
aG91bGQgbm90IHNjYWxlIHRoZSBzaXplLCBjcmVhdGluZyB0aGUgYnVmZmVyIGF0IGEKKyAgICAg
ICAgc2l6ZSB0aGF0IGlzIGNvbnN0YW50IHJlZ2FyZGxlc3Mgb2Ygc2NhbGUsIGFuZCBkbyB0aGUg
c2NhbGluZyB3aGVuIGRyYXdpbmcgKmludG8qIHRoZSBidWZmZXIgaW5zdGVhZC4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tOgorICAgICAgICAoLVtXS1By
aW50aW5nVmlldyBfZHJhd1ByZXZpZXc6XSk6IFJlbmFtZSByZWN0IHRvIHNjYWxlZFByaW50aW5n
UmVjdCBmb3IgY2xhcml0eS4gQ29tcHV0ZSBkZXNpcmVkIHByaW50CisgICAgICAgIHByZXZpZXcg
Yml0bWFwIGltYWdlIHNpemUgZnJvbSB0aGUgb3JpZ2luYWwgbm9uLXNjYWxlZCBkcmF3aW5nIHNp
emUgYW5kIHRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9yLgorICAgICAgICBIYW5kIHRoZSBkZXNpcmVk
IGltYWdlIHNpemUgdG8gZHJhd1JlY3RUb0ltYWdlLiBEcmF3IHRoZSBpbWFnZSB3aXRob3V0IHNj
YWxpbmcsIGFzIGl0J3MgYWx3YXlzIGNyZWF0ZWQKKyAgICAgICAgYXQgdGhlIGNvcnJlY3Qgc2l6
ZS4gRG9uJ3QgY29tcHV0ZSB0aGUgc2NhbGUgZmFjdG9yIGZyb20gdGhlIHNpemUgb2YgdGhlIGlt
YWdlLCB3ZSBjYW4ga25vdyBpdCBmcm9tIFdlYlBhZ2VQcm94eS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkcmF3
UmVjdFRvSW1hZ2UpOiBBZGQgYSBwYXJhbWV0ZXIgdG8gZHJhd1JlY3RGb3JJbWFnZSwgZGVzaXJl
ZEltYWdlU2l6ZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
IChXZWJQYWdlUHJveHkpOiBBZGQgYSBwYXJhbWV0ZXIgdG8gZHJhd1JlY3RGb3JJbWFnZSwgZGVz
aXJlZEltYWdlU2l6ZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSk6IFVzZSBkZXNpcmVk
SW1hZ2VTaXplIHRvIHNpemUgb3VyIGJ1ZmZlciwgYW5kIHNjYWxlIHVwIHRvIG1ha2UgdGhlIHBy
aW50aW5nIHJlY3QKKyAgICAgICAgZml0IGluIHRoZSBiaXRtYXAncyBib3VuZHMuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYlBhZ2UpOiBBZGQg
YSBwYXJhbWV0ZXIgdG8gZHJhd1JlY3RGb3JJbWFnZSwgZGVzaXJlZEltYWdlU2l6ZS4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkIGEgcGFyYW1l
dGVyIHRvIGRyYXdSZWN0Rm9ySW1hZ2UsIGRlc2lyZWRJbWFnZVNpemUuCisKIDIwMTItMTItMjAg
IEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgUmVt
b3ZlIEdyYXBoaWNzTGF5ZXI6OnNldEdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCmluZGV4IDBm
NTNmOTkuLmY4MDZiOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLUHJpbnRpbmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLUHJpbnRpbmdWaWV3Lm1tCkBAIC00NzIsMTMgKzQ3MiwxNSBAQCBzdGF0aWMgdm9pZCBw
cmVwYXJlRGF0YUZvclByaW50aW5nT25TZWNvbmRhcnlUaHJlYWQodm9pZCogdW50eXBlZENvbnRl
eHQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIEludFJlY3QgcmVjdChu
c1JlY3QpOwotICAgIHJlY3Quc2NhbGUoMSAvIF90b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcp
OwotICAgIEhhc2hNYXA8V2ViQ29yZTo6SW50UmVjdCwgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4g
Pjo6aXRlcmF0b3IgcGFnZVByZXZpZXdJdGVyYXRvciA9IF9wYWdlUHJldmlld3MuZmluZChyZWN0
KTsKKyAgICBJbnRSZWN0IHNjYWxlZFByaW50aW5nUmVjdChuc1JlY3QpOworICAgIHNjYWxlZFBy
aW50aW5nUmVjdC5zY2FsZSgxIC8gX3RvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZyk7CisgICAg
SW50U2l6ZSBkZXNpcmVkSW1hZ2VTaXplKG5zUmVjdC5zaXplKTsKKyAgICBkZXNpcmVkSW1hZ2VT
aXplLnNjYWxlKF93ZWJGcmFtZS0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OkludFJlY3QsIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+ID46Oml0ZXJh
dG9yIHBhZ2VQcmV2aWV3SXRlcmF0b3IgPSBfcGFnZVByZXZpZXdzLmZpbmQoc2NhbGVkUHJpbnRp
bmdSZWN0KTsKICAgICBpZiAocGFnZVByZXZpZXdJdGVyYXRvciA9PSBfcGFnZVByZXZpZXdzLmVu
ZCgpKSAgewogICAgICAgICAvLyBJdCdzIHRvbyBlYXJseSB0byBhc2sgZm9yIHBhZ2UgcHJldmll
dyBpZiB3ZSBkb24ndCBldmVuIGtub3cgcGFnZSBzaXplIGFuZCBzY2FsZS4KICAgICAgICAgaWYg
KFtzZWxmIF9oYXNQYWdlUmVjdHNdKSB7Ci0gICAgICAgICAgICBpZiAodWludDY0X3QgZXhpc3Rp
bmdDYWxsYmFjayA9IFtzZWxmIF9leHBlY3RlZFByZXZpZXdDYWxsYmFja0ZvclJlY3Q6cmVjdF0p
IHsKKyAgICAgICAgICAgIGlmICh1aW50NjRfdCBleGlzdGluZ0NhbGxiYWNrID0gW3NlbGYgX2V4
cGVjdGVkUHJldmlld0NhbGxiYWNrRm9yUmVjdDpzY2FsZWRQcmludGluZ1JlY3RdKSB7CiAgICAg
ICAgICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBhc2tlZCBmb3IgYSBwcmV2aWV3IG9mIHRoaXMg
cGFnZSwgYW5kIGFyZSB3YWl0aW5nIGZvciByZXNwb25zZS4KICAgICAgICAgICAgICAgICAvLyBU
aGVyZSBpcyBubyBuZWVkIHRvIGFzayBhZ2Fpbi4KICAgICAgICAgICAgICAgICBfbGF0ZXN0RXhw
ZWN0ZWRQcmV2aWV3Q2FsbGJhY2sgPSBleGlzdGluZ0NhbGxiYWNrOwpAQCAtNDkzLDEyICs0OTUs
MTIgQEAgc3RhdGljIHZvaWQgcHJlcGFyZURhdGFGb3JQcmludGluZ09uU2Vjb25kYXJ5VGhyZWFk
KHZvaWQqIHVudHlwZWRDb250ZXh0KQogICAgICAgICAgICAgICAgIElQQ0NhbGxiYWNrQ29udGV4
dCogY29udGV4dCA9IG5ldyBJUENDYWxsYmFja0NvbnRleHQ7CiAgICAgICAgICAgICAgICAgUmVm
UHRyPEltYWdlQ2FsbGJhY2s+IGNhbGxiYWNrID0gSW1hZ2VDYWxsYmFjazo6Y3JlYXRlKGNvbnRl
eHQsIHBhZ2VEaWREcmF3VG9JbWFnZSk7CiAgICAgICAgICAgICAgICAgX2xhdGVzdEV4cGVjdGVk
UHJldmlld0NhbGxiYWNrID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKLSAgICAgICAgICAgICAg
ICBfZXhwZWN0ZWRQcmV2aWV3Q2FsbGJhY2tzLmFkZChfbGF0ZXN0RXhwZWN0ZWRQcmV2aWV3Q2Fs
bGJhY2ssIHJlY3QpOworICAgICAgICAgICAgICAgIF9leHBlY3RlZFByZXZpZXdDYWxsYmFja3Mu
YWRkKF9sYXRlc3RFeHBlY3RlZFByZXZpZXdDYWxsYmFjaywgc2NhbGVkUHJpbnRpbmdSZWN0KTsK
IAogICAgICAgICAgICAgICAgIGNvbnRleHQtPnZpZXcgPSBzZWxmOwogICAgICAgICAgICAgICAg
IGNvbnRleHQtPmNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwogCi0gICAgICAg
ICAgICAgICAgX3dlYkZyYW1lLT5wYWdlKCktPmRyYXdSZWN0VG9JbWFnZShfd2ViRnJhbWUuZ2V0
KCksIFByaW50SW5mbyhbX3ByaW50T3BlcmF0aW9uIHByaW50SW5mb10pLCByZWN0LCBjYWxsYmFj
ay5nZXQoKSk7CisgICAgICAgICAgICAgICAgX3dlYkZyYW1lLT5wYWdlKCktPmRyYXdSZWN0VG9J
bWFnZShfd2ViRnJhbWUuZ2V0KCksIFByaW50SW5mbyhbX3ByaW50T3BlcmF0aW9uIHByaW50SW5m
b10pLCBzY2FsZWRQcmludGluZ1JlY3QsIGRlc2lyZWRJbWFnZVNpemUsIGNhbGxiYWNrLmdldCgp
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAg
LTUxMywxNCArNTE1LDcgQEAgc3RhdGljIHZvaWQgcHJlcGFyZURhdGFGb3JQcmludGluZ09uU2Vj
b25kYXJ5VGhyZWFkKHZvaWQqIHVudHlwZWRDb250ZXh0KQogICAgIEdyYXBoaWNzQ29udGV4dCBj
b250ZXh0KGNnQ29udGV4dCk7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKGNvbnRleHQpOwogCi0gICAgY29udGV4dC50cmFuc2xhdGUobnNSZWN0Lm9yaWdpbi54LCBu
c1JlY3Qub3JpZ2luLnkpOwotICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKF90b3RhbFNjYWxl
RmFjdG9yRm9yUHJpbnRpbmcsIF90b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcpKTsKLQotICAg
IC8vIEZJWE1FOiBTaG91bGQgd2UgZ2V0IHRoZSBXZWJQYWdlJ3MgZGV2aWNlU2NhbGVGYWN0b3Ig
ZnJvbSBoZXJlIGluc3RlYWQ/Ci0gICAgY29uc3QgSW50UmVjdCYgaW1hZ2VCb3VuZHMgPSBiaXRt
YXAtPmJvdW5kcygpOwotICAgIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IgPSBpbWFnZUJvdW5kcy53
aWR0aCgpIC8gcmVjdC53aWR0aCgpOwotCi0gICAgYml0bWFwLT5wYWludChjb250ZXh0LCBpbWFn
ZVNjYWxlRmFjdG9yLCBJbnRQb2ludCgpLCBpbWFnZUJvdW5kcyk7CisgICAgYml0bWFwLT5wYWlu
dChjb250ZXh0LCBfd2ViRnJhbWUtPnBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSwgSW50UG9p
bnQobnNSZWN0Lm9yaWdpbiksIGJpdG1hcC0+Ym91bmRzKCkpOwogfQogCiAtICh2b2lkKWRyYXdS
ZWN0OihOU1JlY3QpbnNSZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IDRiZTk3NWMuLjkxZDQ2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC00MDQ5LDcgKzQwNDksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0IFByaW50
SW5mbwogfQogCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZHJhd1JlY3RUb0ltYWdlKFdlYkZyYW1lUHJveHkqIGZyYW1lLCBjb25zdCBQcmlu
dEluZm8mIHByaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgUGFzc1JlZlB0cjxJbWFnZUNh
bGxiYWNrPiBwcnBDYWxsYmFjaykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkcmF3UmVjdFRvSW1hZ2Uo
V2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBjb25zdCBJ
bnRSZWN0JiByZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBkZXNpcmVkSW1hZ2VTaXplLCBQ
YXNzUmVmUHRyPEltYWdlQ2FsbGJhY2s+IHBycENhbGxiYWNrKQogewogICAgIFJlZlB0cjxJbWFn
ZUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOwogICAgIGlmICghaXNWYWxpZCgpKSB7
CkBAIC00MDU5LDcgKzQwNTksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZHJhd1JlY3RUb0ltYWdl
KFdlYkZyYW1lUHJveHkqIGZyYW1lLCBjb25zdCBQcmludEluZm8mIHByaW50SQogICAgIAogICAg
IHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwogICAgIG1faW1h
Z2VDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLmdldCgpKTsKLSAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRyYXdSZWN0VG9JbWFnZShmcmFtZS0+ZnJhbWVJ
RCgpLCBwcmludEluZm8sIHJlY3QsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1p
bmdET01QcmludE9wZXJhdGlvbiA/IENvcmVJUEM6OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSA6IDApOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6RHJhd1JlY3RUb0ltYWdlKGZyYW1lLT5mcmFtZUlEKCksIHByaW50SW5mbywgcmVjdCwg
ZGVzaXJlZEltYWdlU2l6ZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlELCBtX2lzUGVyZm9ybWluZ0RP
TVByaW50T3BlcmF0aW9uID8gQ29yZUlQQzo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5IDogMCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkcmF3UGFnZXNUb1BE
RihXZWJGcmFtZVByb3h5KiBmcmFtZSwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQz
Ml90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUGFzc1JlZlB0cjxEYXRhQ2FsbGJhY2s+IHBycENh
bGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDI3OGIw
ZTUuLmM5MDk4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTcwMCw3ICs3MDAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmRQcmludGluZygpOwogICAgIHZv
aWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5m
byYsIFBhc3NSZWZQdHI8Q29tcHV0ZWRQYWdlc0NhbGxiYWNrPik7CiAjaWYgUExBVEZPUk0oTUFD
KSB8fCBQTEFURk9STShXSU4pCi0gICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UoV2ViRnJhbWVQcm94
eSosIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBQYXNzUmVmUHRy
PEltYWdlQ2FsbGJhY2s+KTsKKyAgICB2b2lkIGRyYXdSZWN0VG9JbWFnZShXZWJGcmFtZVByb3h5
KiwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmLCBQYXNzUmVmUHRyPEltYWdlQ2FsbGJhY2s+KTsKICAgICB2b2lkIGRyYXdQ
YWdlc1RvUERGKFdlYkZyYW1lUHJveHkqLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJz
dCwgdWludDMyX3QgY291bnQsIFBhc3NSZWZQdHI8RGF0YUNhbGxiYWNrPik7CiAjZWxpZiBQTEFU
Rk9STShHVEspCiAgICAgdm9pZCBkcmF3UGFnZXNGb3JQcmludGluZyhXZWJGcmFtZVByb3h5Kiwg
Y29uc3QgUHJpbnRJbmZvJiwgUGFzc1JlZlB0cjxQcmludEZpbmlzaGVkQ2FsbGJhY2s+KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAwMzA2
NDU3Li5kYzMzY2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0zMjYyLDcgKzMyNjIsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdl
c0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbgog
fQogCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pCi12b2lkIFdlYlBhZ2U6OmRy
YXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3Zv
aWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYgcHJpbnRJbmZvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBkZXNpcmVkSW1hZ2VTaXplLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewog
ICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLndlYkZyYW1lKGZyYW1l
SUQpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZSA/IGZyYW1lLT5jb3JlRnJhbWUoKSA6
IDA7CkBAIC0zMjc3LDkgKzMyNzcsMTIgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2Uo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNvbnMKICAgICAg
ICAgQVNTRVJUKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+cHJpbnRpbmcoKSk7CiAjZW5kaWYKIAot
ICAgICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6
OmNyZWF0ZVNoYXJlYWJsZShyZWN0LnNpemUoKSwgU2hhcmVhYmxlQml0bWFwOjpTdXBwb3J0c0Fs
cGhhKTsKKyAgICAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hhcmVhYmxl
Qml0bWFwOjpjcmVhdGVTaGFyZWFibGUoZGVzaXJlZEltYWdlU2l6ZSwgU2hhcmVhYmxlQml0bWFw
OjpTdXBwb3J0c0FscGhhKTsKICAgICAgICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gZ3JhcGhp
Y3NDb250ZXh0ID0gYml0bWFwLT5jcmVhdGVHcmFwaGljc0NvbnRleHQoKTsKIAorICAgICAgICBm
bG9hdCBwcmludGluZ1NjYWxlID0gKGZsb2F0KWRlc2lyZWRJbWFnZVNpemUud2lkdGgoKSAvIHJl
Y3Qud2lkdGgoKTsKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5zY2FsZShGbG9hdFNpemUocHJp
bnRpbmdTY2FsZSwgcHJpbnRpbmdTY2FsZSkpOworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAg
ICBpZiAoUmV0YWluUHRyPFBERkRvY3VtZW50PiBwZGZEb2N1bWVudCA9IHBkZkRvY3VtZW50Rm9y
UHJpbnRpbmdGcmFtZShjb3JlRnJhbWUpKSB7CiAgICAgICAgICAgICBBU1NFUlQoIW1fcHJpbnRD
b250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDQ0YjI4OTEuLjY2ODA4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaApAQCAtNTIwLDcgKzUyMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuZFBy
aW50aW5nKCk7CiAgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICNpZiBQTEFURk9S
TShNQUMpIHx8IFBMQVRGT1JNKFdJTikKLSAgICB2b2lkIGRyYXdSZWN0VG9JbWFnZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRyYXdQYWdl
c1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0
LCB1aW50MzJfdCBjb3VudCwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAjZWxpZiBQTEFURk9STShH
VEspCiAgICAgdm9pZCBkcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNjM4MzU4
My4uNGJmYThhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTIxNyw3ICsyMTcsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlIHsKICAgICBFbmRQcmludGluZygpCiAgICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmco
dWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCB1aW50NjRfdCBj
YWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKQotICAgIERyYXdS
ZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8s
IFdlYkNvcmU6OkludFJlY3QgcmVjdCwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBEcmF3UmVj
dFRvSW1hZ2UodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBX
ZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6OkludFNpemUgZGVzaXJlZEltYWdlU2l6ZSwg
dWludDY0X3QgY2FsbGJhY2tJRCkKICAgICBEcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlE
LCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBj
b3VudCwgdWludDY0X3QgY2FsbGJhY2tJRCkKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykK
</data>
<flag name="review"
          id="197531"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>