<?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>25385</bug_id>
          
          <creation_ts>2009-04-24 16:16:41 -0700</creation_ts>
          <short_desc>Upstream changes to V8 bindings for supporting nested workers.</short_desc>
          <delta_ts>2022-01-23 23:55:44 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=225045</see_also>
          <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>0</everconfirmed>
          <reporter name="Jian Li">jianli</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>dglazkov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>118770</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-04-24 16:16:41 -0700</bug_when>
    <thetext>Upstream changes to V8 bindings for supporting nested workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118774</commentid>
    <comment_count>1</comment_count>
      <attachid>29777</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-04-24 16:20:01 -0700</bug_when>
    <thetext>Created attachment 29777
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120031</commentid>
    <comment_count>2</comment_count>
      <attachid>29777</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-05-05 15:56:02 -0700</bug_when>
    <thetext>Comment on attachment 29777
Proposed Patch

Style looks good! :)

&gt; +        if (result.IsEmpty()) {
&gt; +            v8::Local&lt;v8::Object&gt; object = toV8(type, type, impl);
&gt; +            if (!object.IsEmpty())
&gt; +                static_cast&lt;Worker*&gt;(impl)-&gt;ref();
&gt; +            result = v8::Persistent&lt;v8::Object&gt;::New(object);
&gt; +            V8Proxy::SetJSWrapperForDOMObject(impl, result);
&gt; +        }
&gt; +        return result;

Would it be a bit more clear to inverse this:

if (!result.IsEmpty())
   return result;
...

&gt; +    return PassRefPtr&lt;EventListener&gt;();

Can just return 0;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120043</commentid>
    <comment_count>3</comment_count>
      <attachid>30042</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-05-05 17:39:35 -0700</bug_when>
    <thetext>Created attachment 30042
Proposed Patch

All fixed. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120050</commentid>
    <comment_count>4</comment_count>
      <attachid>30042</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-05-05 18:24:52 -0700</bug_when>
    <thetext>Comment on attachment 30042
Proposed Patch

Land it! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120150</commentid>
    <comment_count>5</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-05-06 14:14:41 -0700</bug_when>
    <thetext>Assign to levin for landing.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120166</commentid>
    <comment_count>6</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-05-06 15:03:36 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/43328</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29777</attachid>
            <date>2009-04-24 16:20:01 -0700</date>
            <delta_ts>2009-05-05 17:39:35 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>25385</filename>
            <type>text/plain</type>
            <size>6469</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDBjZWE1NS4uMGNhMzIzYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0wNC0yNCAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Mzg1
CisgICAgICAgIFVwc3RyZWFtIGNoYW5nZXMgdG8gVjggYmluZGluZ3MgZm9yIHN1cHBvcnRpbmcg
bmVzdGVkIHdvcmtlcnMuCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhl
Y3V0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEV4ZWN1dGlv
blByb3h5OjpUb1Y4T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHRFeGVj
dXRpb25Qcm94eTo6RXZlbnRUYXJnZXRUb1Y4T2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RXZlbnRM
aXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpBQ0NFU1NPUl9TRVRURVIpOgorICAgICAgICAo
V2ViQ29yZTo6Q0FMTEJBQ0tfRlVOQ19ERUNMKToKKwogMjAwOS0wNC0yNCAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIC0gYWRkcmVzcyBIeWF0dCdzIHJldmlldyBj
b21tZW50cyBvbiB0aGUgbGFzdCBwYXRjaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9X
b3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCmluZGV4IDViZTM1M2IuLjVkM2NlYTcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94
eS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIlY4
V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJWOFdvcmtlckNvbnRleHRP
YmplY3RFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiV29ya2VyLmgiCiAjaW5jbHVkZSAiV29y
a2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlckxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiV29y
a2VyTmF2aWdhdG9yLmgiCkBAIC0yMjYsNiArMjI3LDE4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OlRvVjhPYmplY3QoVjhDbGFzc0luZGV4OjpW
OFdyCiAgICAgaWYgKHR5cGUgPT0gVjhDbGFzc0luZGV4OjpXT1JLRVJDT05URVhUKQogICAgICAg
ICByZXR1cm4gV29ya2VyQ29udGV4dFRvVjhPYmplY3Qoc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4
dCo+KGltcGwpKTsKIAorICAgIGlmICh0eXBlID09IFY4Q2xhc3NJbmRleDo6V09SS0VSKSB7Cisg
ICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHJlc3VsdCA9IGdldEFjdGl2ZURPTU9i
amVjdE1hcCgpLmdldChpbXBsKTsKKyAgICAgICAgaWYgKHJlc3VsdC5Jc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBvYmplY3QgPSB0b1Y4KHR5cGUsIHR5cGUs
IGltcGwpOworICAgICAgICAgICAgaWYgKCFvYmplY3QuSXNFbXB0eSgpKQorICAgICAgICAgICAg
ICAgIHN0YXRpY19jYXN0PFdvcmtlcio+KGltcGwpLT5yZWYoKTsKKyAgICAgICAgICAgIHJlc3Vs
dCA9IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcob2JqZWN0KTsKKyAgICAgICAgICAg
IFY4UHJveHk6OlNldEpTV3JhcHBlckZvckRPTU9iamVjdChpbXBsLCByZXN1bHQpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCiAgICAgLy8gTm9uIERPTSBub2Rl
CiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gcmVzdWx0ID0gZG9tT2JqZWN0TWFwKCku
Z2V0KGltcGwpOwogICAgIGlmIChyZXN1bHQuSXNFbXB0eSgpKSB7CkBAIC0yNzUsNyArMjg4LDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6RXZl
bnRUb1Y4T2JqZWN0KEV2ZW50KiBldmVudCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0vLyBB
IEpTIG9iamVjdCBvZiB0eXBlIEV2ZW50VGFyZ2V0IGluIHRoZSB3b3JrZXIgY29udGV4dCBjYW4g
b25seSBiZSBXb3JrZXJDb250ZXh0LgorLy8gQSBKUyBvYmplY3Qgb2YgdHlwZSBFdmVudFRhcmdl
dCBpbiB0aGUgd29ya2VyIGNvbnRleHQgY2FuIG9ubHkgYmUgV29ya2VyIG9yIFdvcmtlckNvbnRl
eHQuCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5OjpF
dmVudFRhcmdldFRvVjhPYmplY3QoRXZlbnRUYXJnZXQqIHRhcmdldCkKIHsKICAgICBpZiAoIXRh
cmdldCkKQEAgLTI4NSw2ICsyOTgsMTAgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFdvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eTo6RXZlbnRUYXJnZXRUb1Y4T2JqZWN0KEV2ZW50VGEKICAgICBp
ZiAod29ya2VyQ29udGV4dCkKICAgICAgICAgcmV0dXJuIFdvcmtlckNvbnRleHRUb1Y4T2JqZWN0
KHdvcmtlckNvbnRleHQpOwogCisgICAgV29ya2VyKiB3b3JrZXIgPSB0YXJnZXQtPnRvV29ya2Vy
KCk7CisgICAgaWYgKHdvcmtlcikKKyAgICAgICAgcmV0dXJuIFRvVjhPYmplY3QoVjhDbGFzc0lu
ZGV4OjpXT1JLRVIsIHdvcmtlcik7CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBy
ZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdvcmtlckN1c3RvbS5jcHAKaW5kZXggZmFjYTkwYS4uZjYzM2NiOSAxMDA3NTUK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V29ya2VyQ3VzdG9tLmNwcApAQCAtOTcsNiAr
OTcsMjEgQEAgQ0FMTEJBQ0tfRlVOQ19ERUNMKFdvcmtlckNvbnN0cnVjdG9yKQogICAgIHJldHVy
biB3cmFwcGVyT2JqZWN0OwogfQogCitQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGdldEV2ZW50
TGlzdGVuZXIoV29ya2VyKiB3b3JrZXIsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBib29s
IGZpbmRPbmx5KQoreworICAgIGlmICh3b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
aXNXb3JrZXJDb250ZXh0KCkpIHsKKyAgICAgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5
KiB3b3JrZXJDb250ZXh0UHJveHkgPSBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OnJldHJp
ZXZlKCk7CisgICAgICAgIEFTU0VSVCh3b3JrZXJDb250ZXh0UHJveHkpOworICAgICAgICByZXR1
cm4gd29ya2VyQ29udGV4dFByb3h5LT5maW5kT3JDcmVhdGVPYmplY3RFdmVudExpc3RlbmVyKHZh
bHVlLCBmYWxzZSwgZmluZE9ubHkpOworICAgIH0KKworICAgIFY4UHJveHkqIHByb3h5ID0gVjhQ
cm94eTo6cmV0cmlldmUod29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIGlm
IChwcm94eSkKKyAgICAgICAgcmV0dXJuIGZpbmRPbmx5ID8gcHJveHktPkZpbmRPYmplY3RFdmVu
dExpc3RlbmVyKHZhbHVlLCBmYWxzZSkgOiBwcm94eS0+RmluZE9yQ3JlYXRlT2JqZWN0RXZlbnRM
aXN0ZW5lcih2YWx1ZSwgZmFsc2UpOworCisgICAgcmV0dXJuIFBhc3NSZWZQdHI8RXZlbnRMaXN0
ZW5lcj4oKTsKK30KKwogQUNDRVNTT1JfR0VUVEVSKFdvcmtlck9ubWVzc2FnZSkKIHsKICAgICBJ
TkNfU1RBVFMoTCJET00uV29ya2VyLm9ubWVzc2FnZS5fZ2V0Iik7CkBAIC0xMjMsMTEgKzEzOCw3
IEBAIEFDQ0VTU09SX1NFVFRFUihXb3JrZXJPbm1lc3NhZ2UpCiAgICAgICAgIC8vIENsZWFyIHRo
ZSBsaXN0ZW5lci4KICAgICAgICAgd29ya2VyLT5zZXRPbm1lc3NhZ2UoMCk7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgVjhQcm94eSogcHJveHkgPSBWOFByb3h5OjpyZXRyaWV2ZSh3b3JrZXItPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIGlmICghcHJveHkpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gcHJv
eHktPkZpbmRPckNyZWF0ZU9iamVjdEV2ZW50TGlzdGVuZXIodmFsdWUsIGZhbHNlKTsKKyAgICAg
ICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gZ2V0RXZlbnRMaXN0ZW5lcih3b3Jr
ZXIsIHZhbHVlLCBmYWxzZSk7CiAgICAgICAgIGlmIChsaXN0ZW5lcikgewogICAgICAgICAgICAg
aWYgKG9sZExpc3RlbmVyKSB7CiAgICAgICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+
IG9sZFY4TGlzdGVuZXIgPSBvbGRMaXN0ZW5lci0+Z2V0TGlzdGVuZXJPYmplY3QoKTsKQEAgLTE2
NiwxMSArMTc3LDcgQEAgQUNDRVNTT1JfU0VUVEVSKFdvcmtlck9uZXJyb3IpCiAgICAgICAgIC8v
IENsZWFyIHRoZSBsaXN0ZW5lci4KICAgICAgICAgd29ya2VyLT5zZXRPbmVycm9yKDApOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIFY4UHJveHkqIHByb3h5ID0gVjhQcm94eTo6cmV0cmlldmUod29y
a2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICBpZiAoIXByb3h5KQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIFJlZlB0cjxFdmVudExpc3RlbmVyPiBsaXN0ZW5l
ciA9IHByb3h5LT5GaW5kT3JDcmVhdGVPYmplY3RFdmVudExpc3RlbmVyKHZhbHVlLCBmYWxzZSk7
CisgICAgICAgIFJlZlB0cjxFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IGdldEV2ZW50TGlzdGVu
ZXIod29ya2VyLCB2YWx1ZSwgZmFsc2UpOwogICAgICAgICBpZiAobGlzdGVuZXIpIHsKICAgICAg
ICAgICAgIGlmIChvbGRMaXN0ZW5lcikgewogICAgICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiBvbGRWOExpc3RlbmVyID0gb2xkTGlzdGVuZXItPmdldExpc3RlbmVyT2JqZWN0KCk7
CkBAIC0xODgsMTEgKzE5NSw3IEBAIENBTExCQUNLX0ZVTkNfREVDTChXb3JrZXJBZGRFdmVudExp
c3RlbmVyKQogICAgIElOQ19TVEFUUyhMIkRPTS5Xb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigpIik7
CiAgICAgV29ya2VyKiB3b3JrZXIgPSBWOFByb3h5OjpUb05hdGl2ZU9iamVjdDxXb3JrZXI+KFY4
Q2xhc3NJbmRleDo6V09SS0VSLCBhcmdzLkhvbGRlcigpKTsKIAotICAgIFY4UHJveHkqIHByb3h5
ID0gVjhQcm94eTo6cmV0cmlldmUod29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwot
ICAgIGlmICghcHJveHkpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KLSAgICBS
ZWZQdHI8RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBwcm94eS0+RmluZE9yQ3JlYXRlT2JqZWN0
RXZlbnRMaXN0ZW5lcihhcmdzWzFdLCBmYWxzZSk7CisgICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+
IGxpc3RlbmVyID0gZ2V0RXZlbnRMaXN0ZW5lcih3b3JrZXIsIGFyZ3NbMV0sIGZhbHNlKTsKICAg
ICBpZiAobGlzdGVuZXIpIHsKICAgICAgICAgU3RyaW5nIHR5cGUgPSB0b1dlYkNvcmVTdHJpbmco
YXJnc1swXSk7CiAgICAgICAgIGJvb2wgdXNlQ2FwdHVyZSA9IGFyZ3NbMl0tPkJvb2xlYW5WYWx1
ZSgpOwpAQCAtMjA4LDEyICsyMTEsNyBAQCBDQUxMQkFDS19GVU5DX0RFQ0woV29ya2VyUmVtb3Zl
RXZlbnRMaXN0ZW5lcikKICAgICBJTkNfU1RBVFMoTCJET00uV29ya2VyLnJlbW92ZUV2ZW50TGlz
dGVuZXIoKSIpOwogICAgIFdvcmtlciogd29ya2VyID0gVjhQcm94eTo6VG9OYXRpdmVPYmplY3Q8
V29ya2VyPihWOENsYXNzSW5kZXg6OldPUktFUiwgYXJncy5Ib2xkZXIoKSk7CiAKLSAgICBWOFBy
b3h5KiBwcm94eSA9IFY4UHJveHk6OnJldHJpZXZlKHdvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTsKLSAgICBpZiAoIXByb3h5KQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgp
OyAvLyBQcm9iYWJseSBsZWFrZWQuCi0KLSAgICBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gbGlzdGVu
ZXIgPSBwcm94eS0+RmluZE9iamVjdEV2ZW50TGlzdGVuZXIoYXJnc1sxXSwgZmFsc2UpOwotCisg
ICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gZ2V0RXZlbnRMaXN0ZW5lcih3b3Jr
ZXIsIGFyZ3NbMV0sIHRydWUpOwogICAgIGlmIChsaXN0ZW5lcikgewogICAgICAgICBTdHJpbmcg
dHlwZSA9IHRvV2ViQ29yZVN0cmluZyhhcmdzWzBdKTsKICAgICAgICAgYm9vbCB1c2VDYXB0dXJl
ID0gYXJnc1syXS0+Qm9vbGVhblZhbHVlKCk7Cg==
</data>
<flag name="review"
          id="14904"
          type_id="1"
          status="-"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30042</attachid>
            <date>2009-05-05 17:39:35 -0700</date>
            <delta_ts>2009-05-05 18:24:52 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>25385_2</filename>
            <type>text/plain</type>
            <size>6419</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MGU3ZjYyNi4uMmIzMmJlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0wNS0wNSAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Mzg1
CisgICAgICAgIFVwc3RyZWFtIGNoYW5nZXMgdG8gVjggYmluZGluZ3MgZm9yIHN1cHBvcnRpbmcg
bmVzdGVkIHdvcmtlcnMuCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhl
Y3V0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEV4ZWN1dGlv
blByb3h5OjpUb1Y4T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHRFeGVj
dXRpb25Qcm94eTo6RXZlbnRUYXJnZXRUb1Y4T2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RXZlbnRM
aXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpBQ0NFU1NPUl9TRVRURVIpOgorICAgICAgICAo
V2ViQ29yZTo6Q0FMTEJBQ0tfRlVOQ19ERUNMKToKKwogMjAwOS0wNS0wNSAgQ2hyaXMgRmxlaXph
Y2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJldGggRGFr
aW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRp
b25Qcm94eS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eS5jcHAKaW5kZXggNWJlMzUzYi4uYzQyNDM1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcApAQCAtNDAsNiArNDAsNyBA
QAogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiVjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0
ZW5lci5oIgogI2luY2x1ZGUgIlY4V29ya2VyQ29udGV4dE9iamVjdEV2ZW50TGlzdGVuZXIuaCIK
KyNpbmNsdWRlICJXb3JrZXIuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiV29ya2VyTG9jYXRpb24uaCIKICNpbmNsdWRlICJXb3JrZXJOYXZpZ2F0b3IuaCIKQEAgLTIy
Niw2ICsyMjcsMTkgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFdvcmtlckNvbnRleHRFeGVjdXRp
b25Qcm94eTo6VG9WOE9iamVjdChWOENsYXNzSW5kZXg6OlY4V3IKICAgICBpZiAodHlwZSA9PSBW
OENsYXNzSW5kZXg6OldPUktFUkNPTlRFWFQpCiAgICAgICAgIHJldHVybiBXb3JrZXJDb250ZXh0
VG9WOE9iamVjdChzdGF0aWNfY2FzdDxXb3JrZXJDb250ZXh0Kj4oaW1wbCkpOwogCisgICAgaWYg
KHR5cGUgPT0gVjhDbGFzc0luZGV4OjpXT1JLRVIpIHsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8
djg6Ok9iamVjdD4gcmVzdWx0ID0gZ2V0QWN0aXZlRE9NT2JqZWN0TWFwKCkuZ2V0KGltcGwpOwor
ICAgICAgICBpZiAoIXJlc3VsdC5Jc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworCisgICAgICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBvYmplY3QgPSB0b1Y4KHR5cGUsIHR5
cGUsIGltcGwpOworICAgICAgICBpZiAoIW9iamVjdC5Jc0VtcHR5KCkpCisgICAgICAgICAgICBz
dGF0aWNfY2FzdDxXb3JrZXIqPihpbXBsKS0+cmVmKCk7CisgICAgICAgIHJlc3VsdCA9IHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcob2JqZWN0KTsKKyAgICAgICAgVjhQcm94eTo6U2V0
SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGltcGwsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfQorCiAgICAgLy8gTm9uIERPTSBub2RlCiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4gcmVzdWx0ID0gZG9tT2JqZWN0TWFwKCkuZ2V0KGltcGwpOwogICAgIGlmIChyZXN1
bHQuSXNFbXB0eSgpKSB7CkBAIC0yNzUsNyArMjg5LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6RXZlbnRUb1Y4T2JqZWN0KEV2ZW50KiBldmVu
dCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0vLyBBIEpTIG9iamVjdCBvZiB0eXBlIEV2ZW50
VGFyZ2V0IGluIHRoZSB3b3JrZXIgY29udGV4dCBjYW4gb25seSBiZSBXb3JrZXJDb250ZXh0Lgor
Ly8gQSBKUyBvYmplY3Qgb2YgdHlwZSBFdmVudFRhcmdldCBpbiB0aGUgd29ya2VyIGNvbnRleHQg
Y2FuIG9ubHkgYmUgV29ya2VyIG9yIFdvcmtlckNvbnRleHQuCiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5OjpFdmVudFRhcmdldFRvVjhPYmplY3QoRXZl
bnRUYXJnZXQqIHRhcmdldCkKIHsKICAgICBpZiAoIXRhcmdldCkKQEAgLTI4NSw2ICsyOTksMTAg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6RXZl
bnRUYXJnZXRUb1Y4T2JqZWN0KEV2ZW50VGEKICAgICBpZiAod29ya2VyQ29udGV4dCkKICAgICAg
ICAgcmV0dXJuIFdvcmtlckNvbnRleHRUb1Y4T2JqZWN0KHdvcmtlckNvbnRleHQpOwogCisgICAg
V29ya2VyKiB3b3JrZXIgPSB0YXJnZXQtPnRvV29ya2VyKCk7CisgICAgaWYgKHdvcmtlcikKKyAg
ICAgICAgcmV0dXJuIFRvVjhPYmplY3QoVjhDbGFzc0luZGV4OjpXT1JLRVIsIHdvcmtlcik7CisK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtl
ckN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckN1c3RvbS5j
cHAKaW5kZXggZmFjYTkwYS4uM2VkYWE4ZSAxMDA3NTUKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V29ya2VyQ3VzdG9tLmNwcApAQCAtOTcsNiArOTcsMjEgQEAgQ0FMTEJBQ0tfRlVOQ19E
RUNMKFdvcmtlckNvbnN0cnVjdG9yKQogICAgIHJldHVybiB3cmFwcGVyT2JqZWN0OwogfQogCitQ
YXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGdldEV2ZW50TGlzdGVuZXIoV29ya2VyKiB3b3JrZXIs
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBib29sIGZpbmRPbmx5KQoreworICAgIGlmICh3
b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNXb3JrZXJDb250ZXh0KCkpIHsKKyAg
ICAgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiB3b3JrZXJDb250ZXh0UHJveHkgPSBX
b3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OnJldHJpZXZlKCk7CisgICAgICAgIEFTU0VSVCh3
b3JrZXJDb250ZXh0UHJveHkpOworICAgICAgICByZXR1cm4gd29ya2VyQ29udGV4dFByb3h5LT5m
aW5kT3JDcmVhdGVPYmplY3RFdmVudExpc3RlbmVyKHZhbHVlLCBmYWxzZSwgZmluZE9ubHkpOwor
ICAgIH0KKworICAgIFY4UHJveHkqIHByb3h5ID0gVjhQcm94eTo6cmV0cmlldmUod29ya2VyLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIGlmIChwcm94eSkKKyAgICAgICAgcmV0dXJu
IGZpbmRPbmx5ID8gcHJveHktPkZpbmRPYmplY3RFdmVudExpc3RlbmVyKHZhbHVlLCBmYWxzZSkg
OiBwcm94eS0+RmluZE9yQ3JlYXRlT2JqZWN0RXZlbnRMaXN0ZW5lcih2YWx1ZSwgZmFsc2UpOwor
CisgICAgcmV0dXJuIDA7Cit9CisKIEFDQ0VTU09SX0dFVFRFUihXb3JrZXJPbm1lc3NhZ2UpCiB7
CiAgICAgSU5DX1NUQVRTKEwiRE9NLldvcmtlci5vbm1lc3NhZ2UuX2dldCIpOwpAQCAtMTIzLDEx
ICsxMzgsNyBAQCBBQ0NFU1NPUl9TRVRURVIoV29ya2VyT25tZXNzYWdlKQogICAgICAgICAvLyBD
bGVhciB0aGUgbGlzdGVuZXIuCiAgICAgICAgIHdvcmtlci0+c2V0T25tZXNzYWdlKDApOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIFY4UHJveHkqIHByb3h5ID0gVjhQcm94eTo6cmV0cmlldmUod29y
a2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICBpZiAoIXByb3h5KQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIFJlZlB0cjxFdmVudExpc3RlbmVyPiBsaXN0ZW5l
ciA9IHByb3h5LT5GaW5kT3JDcmVhdGVPYmplY3RFdmVudExpc3RlbmVyKHZhbHVlLCBmYWxzZSk7
CisgICAgICAgIFJlZlB0cjxFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IGdldEV2ZW50TGlzdGVu
ZXIod29ya2VyLCB2YWx1ZSwgZmFsc2UpOwogICAgICAgICBpZiAobGlzdGVuZXIpIHsKICAgICAg
ICAgICAgIGlmIChvbGRMaXN0ZW5lcikgewogICAgICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiBvbGRWOExpc3RlbmVyID0gb2xkTGlzdGVuZXItPmdldExpc3RlbmVyT2JqZWN0KCk7
CkBAIC0xNjYsMTEgKzE3Nyw3IEBAIEFDQ0VTU09SX1NFVFRFUihXb3JrZXJPbmVycm9yKQogICAg
ICAgICAvLyBDbGVhciB0aGUgbGlzdGVuZXIuCiAgICAgICAgIHdvcmtlci0+c2V0T25lcnJvcigw
KTsKICAgICB9IGVsc2UgewotICAgICAgICBWOFByb3h5KiBwcm94eSA9IFY4UHJveHk6OnJldHJp
ZXZlKHdvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAgICAgaWYgKCFwcm94
eSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4g
bGlzdGVuZXIgPSBwcm94eS0+RmluZE9yQ3JlYXRlT2JqZWN0RXZlbnRMaXN0ZW5lcih2YWx1ZSwg
ZmFsc2UpOworICAgICAgICBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBnZXRFdmVu
dExpc3RlbmVyKHdvcmtlciwgdmFsdWUsIGZhbHNlKTsKICAgICAgICAgaWYgKGxpc3RlbmVyKSB7
CiAgICAgICAgICAgICBpZiAob2xkTGlzdGVuZXIpIHsKICAgICAgICAgICAgICAgICB2ODo6TG9j
YWw8djg6Ok9iamVjdD4gb2xkVjhMaXN0ZW5lciA9IG9sZExpc3RlbmVyLT5nZXRMaXN0ZW5lck9i
amVjdCgpOwpAQCAtMTg4LDExICsxOTUsNyBAQCBDQUxMQkFDS19GVU5DX0RFQ0woV29ya2VyQWRk
RXZlbnRMaXN0ZW5lcikKICAgICBJTkNfU1RBVFMoTCJET00uV29ya2VyLmFkZEV2ZW50TGlzdGVu
ZXIoKSIpOwogICAgIFdvcmtlciogd29ya2VyID0gVjhQcm94eTo6VG9OYXRpdmVPYmplY3Q8V29y
a2VyPihWOENsYXNzSW5kZXg6OldPUktFUiwgYXJncy5Ib2xkZXIoKSk7CiAKLSAgICBWOFByb3h5
KiBwcm94eSA9IFY4UHJveHk6OnJldHJpZXZlKHdvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBpZiAoIXByb3h5KQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwot
Ci0gICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gcHJveHktPkZpbmRPckNyZWF0
ZU9iamVjdEV2ZW50TGlzdGVuZXIoYXJnc1sxXSwgZmFsc2UpOworICAgIFJlZlB0cjxFdmVudExp
c3RlbmVyPiBsaXN0ZW5lciA9IGdldEV2ZW50TGlzdGVuZXIod29ya2VyLCBhcmdzWzFdLCBmYWxz
ZSk7CiAgICAgaWYgKGxpc3RlbmVyKSB7CiAgICAgICAgIFN0cmluZyB0eXBlID0gdG9XZWJDb3Jl
U3RyaW5nKGFyZ3NbMF0pOwogICAgICAgICBib29sIHVzZUNhcHR1cmUgPSBhcmdzWzJdLT5Cb29s
ZWFuVmFsdWUoKTsKQEAgLTIwOCwxMiArMjExLDcgQEAgQ0FMTEJBQ0tfRlVOQ19ERUNMKFdvcmtl
clJlbW92ZUV2ZW50TGlzdGVuZXIpCiAgICAgSU5DX1NUQVRTKEwiRE9NLldvcmtlci5yZW1vdmVF
dmVudExpc3RlbmVyKCkiKTsKICAgICBXb3JrZXIqIHdvcmtlciA9IFY4UHJveHk6OlRvTmF0aXZl
T2JqZWN0PFdvcmtlcj4oVjhDbGFzc0luZGV4OjpXT1JLRVIsIGFyZ3MuSG9sZGVyKCkpOwogCi0g
ICAgVjhQcm94eSogcHJveHkgPSBWOFByb3h5OjpyZXRyaWV2ZSh3b3JrZXItPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7Ci0gICAgaWYgKCFwcm94eSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsgLy8gUHJvYmFibHkgbGVha2VkLgotCi0gICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+
IGxpc3RlbmVyID0gcHJveHktPkZpbmRPYmplY3RFdmVudExpc3RlbmVyKGFyZ3NbMV0sIGZhbHNl
KTsKLQorICAgIFJlZlB0cjxFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IGdldEV2ZW50TGlzdGVu
ZXIod29ya2VyLCBhcmdzWzFdLCB0cnVlKTsKICAgICBpZiAobGlzdGVuZXIpIHsKICAgICAgICAg
U3RyaW5nIHR5cGUgPSB0b1dlYkNvcmVTdHJpbmcoYXJnc1swXSk7CiAgICAgICAgIGJvb2wgdXNl
Q2FwdHVyZSA9IGFyZ3NbMl0tPkJvb2xlYW5WYWx1ZSgpOwo=
</data>
<flag name="review"
          id="15077"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>