<?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>45550</bug_id>
          
          <creation_ts>2010-09-10 10:31:52 -0700</creation_ts>
          <short_desc>[GTK] Placement new / manual destructor invocation should be used on private GObject memory</short_desc>
          <delta_ts>2010-09-10 11:42:49 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>21594</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>277285</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-10 10:31:52 -0700</bug_when>
    <thetext>GLib allocates and deallocates GObject private data structs itself. When those structs contain C++ members, their constructors and destructors are not called. This is not only dangerous, it makes RefPtr-type smart pointers much less useful. We can fix this problem by calling placement new on the private data struct during instance initialization and calling the destructor during finalization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277291</commentid>
    <comment_count>1</comment_count>
      <attachid>67200</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-10 10:49:58 -0700</bug_when>
    <thetext>Created attachment 67200
Patch making this change for WebKitWebView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277300</commentid>
    <comment_count>2</comment_count>
      <attachid>67200</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-09-10 10:57:48 -0700</bug_when>
    <thetext>Comment on attachment 67200
Patch making this change for WebKitWebView


&gt;-    if (priv-&gt;tooltipText) {
&gt;-        gtk_tooltip_set_text(tooltip, priv-&gt;tooltipText);
&gt;+    if (priv-&gt;tooltipText.length() &gt; 0) {

Mmm, should use isEmpty() for consistency sake?

&gt;+        gtk_tooltip_set_text(tooltip, priv-&gt;tooltipText.data());
&gt;         return TRUE;
&gt;     }
&gt; 


Looks great otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277304</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-10 11:02:35 -0700</bug_when>
    <thetext>(In reply to comment #2)

Thanks for the review!

&gt; Mmm, should use isEmpty() for consistency sake?

CString doesn&apos;t have an isEmpty unfortunately. I could see it being useful though. Perhaps I&apos;ll propose that in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277307</commentid>
    <comment_count>4</comment_count>
      <attachid>67200</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-10 11:05:05 -0700</bug_when>
    <thetext>Comment on attachment 67200
Patch making this change for WebKitWebView

Clearing flags on attachment: 67200

Committed r67215: &lt;http://trac.webkit.org/changeset/67215&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277308</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-10 11:05:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277335</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-10 11:42:49 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67215 might have broken Chromium Mac Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/67216
http://trac.webkit.org/changeset/67215
http://trac.webkit.org/changeset/67205
http://trac.webkit.org/changeset/67206
http://trac.webkit.org/changeset/67207</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67200</attachid>
            <date>2010-09-10 10:49:58 -0700</date>
            <delta_ts>2010-09-10 11:05:05 -0700</delta_ts>
            <desc>Patch making this change for WebKitWebView</desc>
            <filename>bug-45550-20100910104957.patch</filename>
            <type>text/plain</type>
            <size>10064</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggMjVmZTRmZDA2YjdmNDBjYWIzZGMyZmE2ZDAyYjBhOTVkNjlmMjY3NS4uNzY1ZDQxYjM2
MjU5ZTJmZGZmNWNkMzZlMjViMTYzZjk4MzkzYTVjNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAx
MC0wOS0xMCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUGxhY2VtZW50
IG5ldyAvIG1hbnVhbCBkZXN0cnVjdG9yIGludm9jYXRpb24gc2hvdWxkIGJlIHVzZWQgb24gcHJp
dmF0ZSBHT2JqZWN0IG1lbW9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDU1NTAKKworICAgICAgICBHTGliIGFsbG9jYXRlcyBhbmQgZGVhbGxvY2F0
ZXMgR09iamVjdCBwcml2YXRlIGRhdGEgc3RydWN0cyBpdHNlbGYuIFdoZW4KKyAgICAgICAgdGhv
c2Ugc3RydWN0cyBjb250YWluIEMrKyBtZW1iZXJzLCB0aGVpciBjb25zdHJ1Y3RvcnMgYW5kIGRl
c3RydWN0b3JzIGFyZSBub3QKKyAgICAgICAgY2FsbGVkLiBUaGlzIGlzIG5vdCBvbmx5IGRhbmdl
cm91cywgaXQgbWFrZXMgUmVmUHRyLXR5cGUgc21hcnQgcG9pbnRlcnMgbXVjaAorICAgICAgICBs
ZXNzIHVzZWZ1bC4gV2UgY2FuIGZpeCB0aGlzIHByb2JsZW0gYnkgY2FsbGluZyBwbGFjZW1lbnQg
bmV3IG9uIHRoZSBwcml2YXRlCisgICAgICAgIGRhdGEgc3RydWN0IGR1cmluZyBpbnN0YW5jZSBp
bml0aWFsaXphdGlvbiBhbmQgY2FsbGluZyB0aGUgZGVzdHJ1Y3RvciBkdXJpbmcKKyAgICAgICAg
ZmluYWxpemF0aW9uLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdGFrZXMgdGhhdCBhcHByb2FjaCBh
bmQgc3dpdGNoZXMgcGxhaW4gY2hhciogbWVtYmVycyBvZgorICAgICAgICBXZWJLaXRXZWJWaWV3
ICh3aXRoIG1hbnVhbCBtZW1vcnkgYWxsb2NhdGlvbikgdG8gdXNlIENTdHJpbmcuCisKKyAgICAg
ICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOiBTd2l0Y2ggY2hhciogbWVtYmVycyB0byBDU3Ry
aW5nLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19maW5hbGl6ZSk6IE1hbnVhbGx5IGNhbGwgdGhlIGRlc3RydWN0b3Igb24gdGhl
IHByaXZhdGUKKyAgICAgICAgZGF0YS4gUmVtb3ZlIG1hbnVhbCBkZWFsbG9jYXRpb24gb2YgbWVt
YmVycyB3aGljaCBhcmUgbm93IENTdHJpbmcuCisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcXVl
cnlfdG9vbHRpcCk6IFVwZGF0ZSB0byByZWZsZWN0IENTdHJpbmcgY2hhbmdlLgorICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2luaXQpOiBVc2UgcGxhY2VtZW50IG5ldyB0byBpbml0aWFsaXplIEMr
KyBtZW1iZXJzIG9mCisgICAgICAgIHRoZSBwcml2YXRlIGRhdGEgc2VjdGlvbi4KKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19nZXRfZW5jb2RpbmcpOiBVcGRhdGUgdG8gcmVmbGVjdCBDU3RyaW5n
IGNoYW5nZS4KKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfY3VzdG9tX2VuY29kaW5nKTog
RGl0dG8uCisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfYWRkX3Jlc291cmNlKTogRGl0dG8uCisg
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKTogRGl0dG8uCisgICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfY2xlYXJfcmVzb3VyY2VzKTogRGl0dG8uCisgICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfc2V0X3Rvb2x0aXBfdGV4dCk6IERpdHRvLgorICAgICAgICAod2Via2l0X3dlYl92
aWV3X2dldF9pY29uX3VyaSk6IERpdHRvLgorCiAyMDEwLTA5LTA4ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oCmluZGV4IGJkZTViNTVhMGVjZGJhNjVhZTU0NWM5ZTIzMjg4YzFk
NThkZTMyZWEuLjk2YWVhNjFiNWQ0M2E5ODA5NGZhNmU3YjY4ODU4NGJhMzQxYWE4MzIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAorKysgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTE1NSwxMCArMTU1LDEwIEBAIGV4dGVybiAiQyIg
ewogCiAgICAgICAgIGdib29sZWFuIHpvb21GdWxsQ29udGVudDsKICAgICAgICAgV2ViS2l0TG9h
ZFN0YXR1cyBsb2FkU3RhdHVzOwotICAgICAgICBjaGFyKiBlbmNvZGluZzsKLSAgICAgICAgY2hh
ciogY3VzdG9tRW5jb2Rpbmc7CisgICAgICAgIENTdHJpbmcgZW5jb2Rpbmc7CisgICAgICAgIENT
dHJpbmcgY3VzdG9tRW5jb2Rpbmc7CiAKLSAgICAgICAgY2hhciogaWNvblVSSTsKKyAgICAgICAg
Q1N0cmluZyBpY29uVVJJOwogCiAgICAgICAgIGdib29sZWFuIGRpc3Bvc2luZzsKICAgICAgICAg
Z2Jvb2xlYW4gdXNlUHJpbWFyeUZvclBhc3RlOwpAQCAtMTcwLDkgKzE3MCw5IEBAIGV4dGVybiAi
QyIgewogICAgICAgICAvLyBUaGVzZSBhcmUgaG9zdGVkIGhlcmUgYmVjYXVzZSB0aGUgRGF0YVNv
dXJjZSBvYmplY3QgaXMKICAgICAgICAgLy8gY3JlYXRlZCB0b28gbGF0ZSBpbiB0aGUgZnJhbWUg
bG9hZGluZyBwcm9jZXNzLgogICAgICAgICBXZWJLaXRXZWJSZXNvdXJjZSogbWFpblJlc291cmNl
OwotICAgICAgICBjaGFyKiBtYWluUmVzb3VyY2VJZGVudGlmaWVyOworICAgICAgICBDU3RyaW5n
IG1haW5SZXNvdXJjZUlkZW50aWZpZXI7CiAgICAgICAgIEdIYXNoVGFibGUqIHN1YlJlc291cmNl
czsKLSAgICAgICAgY2hhciogdG9vbHRpcFRleHQ7CisgICAgICAgIENTdHJpbmcgdG9vbHRpcFRl
eHQ7CiAKICAgICAgICAgaW50IGN1cnJlbnRDbGlja0NvdW50OwogICAgICAgICBXZWJDb3JlOjpJ
bnRQb2ludCogcHJldmlvdXNDbGlja1BvaW50OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cAppbmRleCA0ODA5ODNmMGY1YzlmOWQ5ZTU0Yjg0YTM4YjU2MDU3MzM4MDY1OTk3Li4zZTIzNTU0
NGJhMDkyMjc2NzVhYzI2NTVjZTgxNTVkMmEzODI4MmUxIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcApAQCAtMTIyMCwxNiArMTIyMCwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcgPSBXRUJLSVRfV0VCX1ZJRVcob2JqZWN0KTsKICAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSog
cHJpdiA9IHdlYlZpZXctPnByaXY7CiAKLSAgICBnX2ZyZWUocHJpdi0+dG9vbHRpcFRleHQpOwot
ICAgIGdfZnJlZShwcml2LT5tYWluUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICBnX2ZyZWUocHJp
di0+ZW5jb2RpbmcpOwotICAgIGdfZnJlZShwcml2LT5jdXN0b21FbmNvZGluZyk7Ci0gICAgZ19m
cmVlKHByaXYtPmljb25VUkkpOwotCiAgICAgZGVsZXRlIHByaXYtPnByZXZpb3VzQ2xpY2tQb2lu
dDsKICAgICBkZWxldGUgcHJpdi0+ZHJhZ2dpbmdEYXRhT2JqZWN0czsKICAgICBkZWxldGUgcHJp
di0+ZHJvcHBpbmdDb250ZXh0czsKIAorICAgIC8vIFdlIG5lZWQgdG8gbWFudWFsbHkgY2FsbCB0
aGUgZGVzdHJ1Y3RvciBoZXJlLCBzaW5jZSB0aGlzIG9iamVjdCdzIG1lbW9yeSBpcyBtYW5hZ2Vk
CisgICAgLy8gYnkgR0xpYi4gVGhpcyBjYWxscyBhbGwgQysrIG1lbWJlcnMnIGRlc3RydWN0b3Jz
IGFuZCBwcmV2ZW50cyBtZW1vcnkgbGVha3MuCisgICAgcHJpdi0+fldlYktpdFdlYlZpZXdQcml2
YXRlKCk7CiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3dlYl92aWV3X3BhcmVudF9jbGFzcykt
PmZpbmFsaXplKG9iamVjdCk7CiB9CiAKQEAgLTE1MTIsOCArMTUwOSw4IEBAIHN0YXRpYyBnYm9v
bGVhbiB3ZWJraXRfd2ViX3ZpZXdfcXVlcnlfdG9vbHRpcChHdGtXaWRnZXQgKndpZGdldCwgZ2lu
dCB4LCBnaW50IHksCiB7CiAgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSBXRUJLSVRf
V0VCX1ZJRVdfR0VUX1BSSVZBVEUod2lkZ2V0KTsKIAotICAgIGlmIChwcml2LT50b29sdGlwVGV4
dCkgewotICAgICAgICBndGtfdG9vbHRpcF9zZXRfdGV4dCh0b29sdGlwLCBwcml2LT50b29sdGlw
VGV4dCk7CisgICAgaWYgKHByaXYtPnRvb2x0aXBUZXh0Lmxlbmd0aCgpID4gMCkgeworICAgICAg
ICBndGtfdG9vbHRpcF9zZXRfdGV4dCh0b29sdGlwLCBwcml2LT50b29sdGlwVGV4dC5kYXRhKCkp
OwogICAgICAgICByZXR1cm4gVFJVRTsKICAgICB9CiAKQEAgLTMwOTUsNiArMzA5MiwxMiBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfaW5pdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQog
ewogICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9Q
UklWQVRFKHdlYlZpZXcpOwogICAgIHdlYlZpZXctPnByaXYgPSBwcml2OworICAgIC8vIFRoaXMg
aXMgdGhlIHBsYWNlbWVudCBuZXcgc3ludGF4OiBodHRwOi8vd3d3LnBhcmFzaGlmdC5jb20vYysr
LWZhcS1saXRlL2R0b3JzLmh0bWwjZmFxLTExLjEwCisgICAgLy8gSXQgYWxsb3dzIHVzIHRvIGNh
bGwgYSBjb25zdHJ1Y3RvciBvbiBtYW51YWxseSBhbGxvY2F0ZWQgbG9jYXRpb25zIGluIG1lbW9y
eS4gV2UgbXVzdCB1c2UgaXQKKyAgICAvLyBpbiB0aGlzIGNhc2UsIGJlY2F1c2UgR0xpYiBtYW5h
Z2VzIHRoZSBtZW1vcnkgZm9yIHRoZSBwcml2YXRlIGRhdGEgc2VjdGlvbiwgYnV0IHdlIHdpc2gg
aXQKKyAgICAvLyB0byBjb250YWluIEMrKyBvYmplY3QgbWVtYmVycy4gVGhlIHVzZSBvZiBwbGFj
ZW1lbnQgbmV3IGNhbGxzIHRoZSBjb25zdHJ1Y3RvciBvbiBhbGwgQysrIGRhdGEKKyAgICAvLyBt
ZW1iZXJzLCB3aGljaCBlbnN1cmVzIHRoZXkgYXJlIGluaXRpYWxpemVkIHByb3Blcmx5LgorICAg
IG5ldyAocHJpdikgV2ViS2l0V2ViVmlld1ByaXZhdGUoKTsKIAogICAgIHByaXYtPmltQ29udGV4
dCA9IGd0a19pbV9tdWx0aWNvbnRleHRfbmV3KCk7CiAKQEAgLTMxMzQsNyArMzEzNyw2IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19pbml0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAK
ICAgICBwcml2LT5zdWJSZXNvdXJjZXMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19zdHJfaGFz
aCwgZ19zdHJfZXF1YWwsIGdfZnJlZSwgZ19vYmplY3RfdW5yZWYpOwogCi0gICAgcHJpdi0+dG9v
bHRpcFRleHQgPSAwOwogICAgIHByaXYtPmN1cnJlbnRDbGlja0NvdW50ID0gMDsKICAgICBwcml2
LT5wcmV2aW91c0NsaWNrUG9pbnQgPSBuZXcgSW50UG9pbnQoMCwgMCk7CiAgICAgcHJpdi0+cHJl
dmlvdXNDbGlja0J1dHRvbiA9IDA7CkBAIC00MjQ2LDE2ICs0MjQ4LDExIEBAIGdkb3VibGUgd2Vi
a2l0X3dlYl92aWV3X2dldF9wcm9ncmVzcyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogY29uc3Qg
Z2NoYXIqIHdlYmtpdF93ZWJfdmlld19nZXRfZW5jb2RpbmcoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmll
dyksIE5VTEwpOwotCiAgICAgU3RyaW5nIGVuY29kaW5nID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZy
YW1lKCktPmxvYWRlcigpLT53cml0ZXIoKS0+ZW5jb2RpbmcoKTsKLQotICAgIGlmICghZW5jb2Rp
bmcuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2Vi
Vmlldy0+cHJpdjsKLSAgICAgICAgZ19mcmVlKHByaXYtPmVuY29kaW5nKTsKLSAgICAgICAgcHJp
di0+ZW5jb2RpbmcgPSBnX3N0cmR1cChlbmNvZGluZy51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAg
cmV0dXJuIHByaXYtPmVuY29kaW5nOwotICAgIH0gZWxzZQotICAgICAgcmV0dXJuIE5VTEw7Cisg
ICAgaWYgKGVuY29kaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgd2ViVmll
dy0+cHJpdi0+ZW5jb2RpbmcgPSBlbmNvZGluZy51dGY4KCk7CisgICAgcmV0dXJuIHdlYlZpZXct
PnByaXYtPmVuY29kaW5nLmRhdGEoKTsKIH0KIAogLyoqCkBAIC00Mjg5LDE2ICs0Mjg2LDExIEBA
IHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9jdXN0b21fZW5jb2RpbmcoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgY29uc3QgY2hhciogZW5jCiBjb25zdCBjaGFyKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2N1c3RvbV9lbmNvZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewogICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgTlVMTCk7Ci0KICAgICBT
dHJpbmcgb3ZlcnJpZGVFbmNvZGluZyA9IGNvcmUod2ViVmlldyktPm1haW5GcmFtZSgpLT5sb2Fk
ZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+b3ZlcnJpZGVFbmNvZGluZygpOwotCi0gICAgaWYgKCFv
dmVycmlkZUVuY29kaW5nLmlzRW1wdHkoKSkgewotICAgICAgICBXZWJLaXRXZWJWaWV3UHJpdmF0
ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7Ci0gICAgICAgIGdfZnJlZSAocHJpdi0+Y3VzdG9tRW5j
b2RpbmcpOwotICAgICAgICBwcml2LT5jdXN0b21FbmNvZGluZyA9IGdfc3RyZHVwKG92ZXJyaWRl
RW5jb2RpbmcudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIHJldHVybiBwcml2LT5jdXN0b21FbmNv
ZGluZzsKLSAgICB9IGVsc2UKLSAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChvdmVycmlkZUVu
Y29kaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgd2ViVmlldy0+cHJpdi0+
Y3VzdG9tRW5jb2RpbmcgPSBvdmVycmlkZUVuY29kaW5nLnV0ZjgoKTsKKyAgICByZXR1cm4gd2Vi
Vmlldy0+cHJpdi0+Y3VzdG9tRW5jb2RpbmcuZGF0YSgpOwogfQogCiAvKioKQEAgLTQ1MjEsNyAr
NDUxMyw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X2FkZF9yZXNvdXJjZShXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBjb25zdCBjaGFyKiBpZGVudGlmaWVyCiAKICAgICBpZiAoIXByaXYtPm1haW5S
ZXNvdXJjZSkgewogICAgICAgICBwcml2LT5tYWluUmVzb3VyY2UgPSB3ZWJSZXNvdXJjZTsKLSAg
ICAgICAgcHJpdi0+bWFpblJlc291cmNlSWRlbnRpZmllciA9IGdfc3RyZHVwKGlkZW50aWZpZXIp
OworICAgICAgICBwcml2LT5tYWluUmVzb3VyY2VJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDUzMSwxNiArNDUyMywxNSBAQCB2b2lkIHdlYmtp
dF93ZWJfdmlld19hZGRfcmVzb3VyY2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgY2hh
ciogaWRlbnRpZmllcgogV2ViS2l0V2ViUmVzb3VyY2UqIHdlYmtpdF93ZWJfdmlld19nZXRfcmVz
b3VyY2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY2hhciogaWRlbnRpZmllcikKIHsKICAgICBX
ZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7Ci0gICAgZ3BvaW50ZXIg
d2ViUmVzb3VyY2UgPSBOVUxMOwotCisgICAgZ3BvaW50ZXIgd2ViUmVzb3VyY2UgPSAwOwogICAg
IGdib29sZWFuIHJlc291cmNlRm91bmQgPSBnX2hhc2hfdGFibGVfbG9va3VwX2V4dGVuZGVkKHBy
aXYtPnN1YlJlc291cmNlcywgaWRlbnRpZmllciwgTlVMTCwgJndlYlJlc291cmNlKTsKIAogICAg
IC8vIFRoZSBvbmx5IHJlc291cmNlIHdlIGRvIG5vdCBzdG9yZSBpbiB0aGlzIGhhc2ggdGFibGUg
aXMgdGhlCiAgICAgLy8gbWFpbiEgIElmIHdlIGRpZCBub3QgZmluZCBhIHJlcXVlc3QsIGl0IHBy
b2JhYmx5IG1lYW5zIHRoZSBsb2FkCiAgICAgLy8gaGFzIGJlZW4gaW50ZXJydXB0ZWQgd2hpbGUg
d2hpbGUgYSByZXNvdXJjZSB3YXMgc3RpbGwgYmVpbmcKICAgICAvLyBsb2FkZWQuCi0gICAgaWYg
KCFyZXNvdXJjZUZvdW5kICYmICFnX3N0cl9lcXVhbChpZGVudGlmaWVyLCBwcml2LT5tYWluUmVz
b3VyY2VJZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKCFyZXNvdXJj
ZUZvdW5kICYmICFnX3N0cl9lcXVhbChpZGVudGlmaWVyLCBwcml2LT5tYWluUmVzb3VyY2VJZGVu
dGlmaWVyLmRhdGEoKSkpCisgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKCF3ZWJSZXNvdXJj
ZSkKICAgICAgICAgcmV0dXJuIHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9yZXNvdXJjZSh3ZWJW
aWV3KTsKQEAgLTQ1NTcsOCArNDU0OCw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsZWFyX3Jl
c291cmNlcyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewogICAgIFdlYktpdFdlYlZpZXdQcml2
YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKIAotICAgIGdfZnJlZShwcml2LT5tYWluUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKLSAgICBwcml2LT5tYWluUmVzb3VyY2VJZGVudGlmaWVyID0gTlVMTDsK
KyAgICBwcml2LT5tYWluUmVzb3VyY2VJZGVudGlmaWVyID0gIiI7CiAKICAgICBpZiAocHJpdi0+
bWFpblJlc291cmNlKSB7CiAgICAgICAgIGdfb2JqZWN0X3VucmVmKHByaXYtPm1haW5SZXNvdXJj
ZSk7CkBAIC00NTg5LDEyICs0NTc5LDExIEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF90b29s
dGlwX3RleHQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgY2hhciogdG9vbHRpCiB7CiAj
aWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTIsIDApCiAgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUq
IHByaXYgPSB3ZWJWaWV3LT5wcml2OwotICAgIGdfZnJlZShwcml2LT50b29sdGlwVGV4dCk7CiAg
ICAgaWYgKHRvb2x0aXAgJiYgKnRvb2x0aXAgIT0gJ1wwJykgewotICAgICAgICBwcml2LT50b29s
dGlwVGV4dCA9IGdfc3RyZHVwKHRvb2x0aXApOworICAgICAgICBwcml2LT50b29sdGlwVGV4dCA9
IHRvb2x0aXA7CiAgICAgICAgIGd0a193aWRnZXRfc2V0X2hhc190b29sdGlwKEdUS19XSURHRVQo
d2ViVmlldyksIFRSVUUpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHByaXYtPnRvb2x0aXBUZXh0
ID0gMDsKKyAgICAgICAgcHJpdi0+dG9vbHRpcFRleHQgPSAiIjsKICAgICAgICAgZ3RrX3dpZGdl
dF9zZXRfaGFzX3Rvb2x0aXAoR1RLX1dJREdFVCh3ZWJWaWV3KSwgRkFMU0UpOwogICAgIH0KIApA
QCAtNDY0NiwxNSArNDYzNSwxMCBAQCBXZWJLaXRIaXRUZXN0UmVzdWx0KiB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X2hpdF90ZXN0X3Jlc3VsdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LAogICovCiBHX0NP
TlNUX1JFVFVSTiBnY2hhciogd2Via2l0X3dlYl92aWV3X2dldF9pY29uX3VyaShXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJf
VklFVyh3ZWJWaWV3KSwgTlVMTCk7Ci0KLSAgICBQYWdlKiBjb3JlUGFnZSA9IGNvcmUod2ViVmll
dyk7Ci0gICAgU3RyaW5nIGljb25VUkwgPSBpY29uRGF0YWJhc2UoKS0+aWNvblVSTEZvclBhZ2VV
UkwoY29yZVBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+dXJsKCkucHJldHR5VVJMKCkpOwot
Ci0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwotICAgIGdf
ZnJlZShwcml2LT5pY29uVVJJKTsKLSAgICBwcml2LT5pY29uVVJJID0gZ19zdHJkdXAoaWNvblVS
TC51dGY4KCkuZGF0YSgpKTsKLSAgICByZXR1cm4gcHJpdi0+aWNvblVSSTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIDApOworICAgIFN0cmlu
ZyBpY29uVVJMID0gaWNvbkRhdGFiYXNlKCktPmljb25VUkxGb3JQYWdlVVJMKGNvcmUod2ViVmll
dyktPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+dXJsKCkucHJldHR5VVJMKCkpOworICAgIHdlYlZp
ZXctPnByaXYtPmljb25VUkkgPSBpY29uVVJMLnV0ZjgoKTsKKyAgICByZXR1cm4gd2ViVmlldy0+
cHJpdi0+aWNvblVSSS5kYXRhKCk7CiB9CiAKIC8qKgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>