<?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>32982</bug_id>
          
          <creation_ts>2009-12-27 23:40:19 -0800</creation_ts>
          <short_desc>plugins/get-url-with-iframe-target.html fails on SnowLeopard (64-bit)</short_desc>
          <delta_ts>2009-12-29 11:19:34 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          <cc>ap</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>175168</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-27 23:40:19 -0800</bug_when>
    <thetext>plugins/get-url-with-iframe-target.html fails on SnowLeopard (64-bit)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175172</commentid>
    <comment_count>1</comment_count>
      <attachid>45548</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-27 23:51:14 -0800</bug_when>
    <thetext>Created attachment 45548
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175177</commentid>
    <comment_count>2</comment_count>
      <attachid>45548</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-28 00:03:58 -0800</bug_when>
    <thetext>Comment on attachment 45548
Patch

argument name seems superflous:
 73     static NPReason reasonForError(NSError *error);

Can&apos;t tell if this spacing is right or wrong, seems like spaces beofre * are wrong here:
 77     static PassRefPtr&lt;PluginRequest&gt; create(uint32_t requestID, NSURLRequest *request, NSString *frameName, bool allowPopups)

And here:
 88     PluginRequest(uint32_t requestID, NSURLRequest *request, NSString *frameName, bool allowPopups)

Or shoudl they be &quot; *&quot; because this is a .mm file?

This looks sane.  Looks like a good change.  I still feel like you probably want someone who&apos;s been in this code before to review it though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175178</commentid>
    <comment_count>3</comment_count>
      <attachid>45548</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-28 00:04:25 -0800</bug_when>
    <thetext>Comment on attachment 45548
Patch

This seems like a style violation too:
 453     if (error != nil)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175180</commentid>
    <comment_count>4</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-28 00:16:05 -0800</bug_when>
    <thetext>I think Anders is the only one truly familiar with this code and he is going to be on vacation for several weeks still. I made the suggested style fixes in my copy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175257</commentid>
    <comment_count>5</comment_count>
      <attachid>45548</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-28 09:53:11 -0800</bug_when>
    <thetext>Comment on attachment 45548
Patch

&gt; +    void webFrameDidFinishLoadWithReason(WebFrame*, NPReason);

Style nit: should be &quot;WebFrame *&quot;. I&apos;m not sure if the changes in your local copy are in right or wrong direction - ObjC classes should have detached stars.

&gt; -    NetscapePluginInstanceProxy(NetscapePluginHostProxy*, WebHostedNetscapePluginView *, bool fullFramePlugin);
&gt; +    NetscapePluginInstanceProxy(NetscapePluginHostProxy*, WebHostedNetscapePluginView*, bool fullFramePlugin);

Same issue (old code was correct).

&gt; -    NPError loadRequest(NSURLRequest *, const char* cTarget, bool currentEventIsUserGesture, uint32_t&amp; streamID);
&gt; +    NPError loadRequest(NSURLRequest*, const char* cTarget, bool currentEventIsUserGesture, uint32_t&amp; streamID);

Same issue.

&gt; +    FrameLoadMap  m_pendingFrameLoads;

Two spaces instead of one.

&gt; +	// Check if another plug-in view or even this view is waiting for the frame to load.
&gt; +        // If it is, tell it that the load was cancelled because it will be anyway.

Tab here.

&gt; +void NetscapePluginInstanceProxy::webFrameDidFinishLoadWithReason(WebFrame* webFrame, NPReason reason)

Misplaced star again (I probably missed some instances anyway).

&gt; +    RefPtr&lt;PluginRequest&gt; pluginRequest = m_pendingFrameLoads.get(webFrame);

Why does this need to be a RefPtr?

&gt; -        PluginRequest* pluginRequest = new PluginRequest(requestID, request, target, allowPopups);
&gt; +        RefPtr&lt;PluginRequest&gt; pluginRequest = PluginRequest::create(requestID, request, target, allowPopups);
&gt;          m_pluginRequests.append(pluginRequest);

This is probably not performance critical code, but I think that a release() would prevent refcount thrash.

r=me with style fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175419</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-28 22:41:20 -0800</bug_when>
    <thetext>Attachment 45548 was posted by a committer and has review+, assigning to Maciej Stachowiak for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175521</commentid>
    <comment_count>7</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-29 05:46:40 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 45548 [details])
&gt; &gt; +    void webFrameDidFinishLoadWithReason(WebFrame*, NPReason);
&gt; 
&gt; Style nit: should be &quot;WebFrame *&quot;. I&apos;m not sure if the changes in your local
&gt; copy are in right or wrong direction - ObjC classes should have detached stars.

I reviewed our coding style guidelines, and our rule does not appear to be based on the kind of class a pointer type points to, but rather to the language of the code using it:

2. Pointer types in non-C++ code — Pointer types should be written with a space between the type and the * (so the * is adjacent to the following identifier if any).
3. Pointer and reference types in C++ code — Both pointer types and reference types should be written with no space between the type name and the * or &amp;.

I&apos;m not sure whether Objective-C++ counts as &quot;C++ code&quot; or &quot;non-C++ code&quot; but since the contents of these files are primarily C++ classes, I will take it as C++ code, and thus leave the *s next to the type name.

I am not sure whether it would be more consistent or less confusing to follow the alternate rule of separating the * only for ObjC classes regardless of the type of code. It might be an improvement but does not seem to be the current rule. Thus, landed without any * changes, but:

&gt; 
&gt; &gt; +    FrameLoadMap  m_pendingFrameLoads;
&gt; 
&gt; Two spaces instead of one.

I fixed this.

&gt; 
&gt; &gt; +	// Check if another plug-in view or even this view is waiting for the frame to load.
&gt; &gt; +        // If it is, tell it that the load was cancelled because it will be anyway.
&gt; 
&gt; Tab here.

And this.

&gt; 
&gt; &gt; +    RefPtr&lt;PluginRequest&gt; pluginRequest = m_pendingFrameLoads.get(webFrame);
&gt; 
&gt; Why does this need to be a RefPtr?

That&apos;s what .get() on a a RefPtr-valued HashMap returns. I suppose I could make it a raw pointer. Another alternative would be to use find() and both access and then remove by iterator. That&apos;s what I ended up doing (the find() version).

&gt; 
&gt; &gt; -        PluginRequest* pluginRequest = new PluginRequest(requestID, request, target, allowPopups);
&gt; &gt; +        RefPtr&lt;PluginRequest&gt; pluginRequest = PluginRequest::create(requestID, request, target, allowPopups);
&gt; &gt;          m_pluginRequests.append(pluginRequest);
&gt; 
&gt; This is probably not performance critical code, but I think that a release()
&gt; would prevent refcount thrash.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175522</commentid>
    <comment_count>8</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-29 05:53:20 -0800</bug_when>
    <thetext>Committed r52619: &lt;http://trac.webkit.org/changeset/52619&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175650</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-29 11:19:34 -0800</bug_when>
    <thetext>&gt; I reviewed our coding style guidelines, and our rule does not appear to be
&gt; based on the kind of class a pointer type points to, but rather to the language
&gt; of the code using it:
&lt;...&gt;
&gt; I&apos;m not sure whether Objective-C++ counts as &quot;C++ code&quot; or &quot;non-C++ code&quot; but
&gt; since the contents of these files are primarily C++ classes, I will take it as
&gt; C++ code, and thus leave the *s next to the type name.

Most existing code uses spacing appropriate to the particular variable. For example, until your commit, there were no instances of &quot;NSURLRequest*&quot; in WebKit, and only a few in WebCore.

Since my r+ was based on the expectation of fixing the style issues, I think it would have been appropriate to discuss them a bit more before landing, or at least not to make the changes to code you didn&apos;t touch otherwise.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45548</attachid>
            <date>2009-12-27 23:51:14 -0800</date>
            <delta_ts>2009-12-28 09:53:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32982-20091228005112.patch</filename>
            <type>text/plain</type>
            <size>10882</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA1MjU5MykKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMDktMTItMjcgIE1hY2llaiBTdGFjaG93aWFrICA8
bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBwbHVnaW5zL2dldC11cmwtd2l0aC1pZnJhbWUtdGFyZ2V0Lmh0bWwgZmFpbHMgb24g
U25vd0xlb3BhcmQgKDY0LWJpdCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMyOTgyCisgICAgICAgIAorICAgICAgICBUaGlzIHRlc3QgaGFzIGJlZW4g
ZmFpbGluZyBvbiBTbm93TGVvcGFyZCBzaW5jZSBpdCB3YXMgbGFuZGVkLgorICAgICAgICAKKyAg
ICAgICAgVGhlIHByb2JsZW0gaXMgdGhhdCB3ZSBuZXZlciBkZWxpdmVyZWQgdGhlIG5vdGlmaWNh
dGlvbiBmb3IKKyAgICAgICAgTlBOX0dldFVSTE5vdGlmeSwgaW4gdGhlIGZyYW1lLXRhcmdldGlu
ZyBjYXNlLCBmb3Igb3V0LW9mLXByb2Nlc3MKKyAgICAgICAgcGx1Z2lucyBvbiBNYWMuCisgICAg
ICAgIAorICAgICAgICBJIGltcGxlbWVudGVkIHN1cHBvcnQgZm9yIHRoaXMgYmFzZWQgb24gaG93
IGluLXByb2Nlc3MgTWFjIHBsdWdpbnMKKyAgICAgICAgZG8gaXQuCisKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5oOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tOgorICAgICAgICAoV2ViS2l0
OjpIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbTo6cmVhc29uRm9yRXJyb3IpOgorICAgICAgICAq
IFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oOgorICAgICAgICAq
IFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpQbHVnaW5SZXF1ZXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OlBsdWdp
blJlcXVlc3Q6OlBsdWdpblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHk6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHk6OnBlcmZvcm1SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5Ojp3ZWJGcmFtZURpZEZpbmlzaExvYWRXaXRoUmVhc29uKToK
KyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpyZXF1ZXN0VGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6
bG9hZFJlcXVlc3QpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5oOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IHdl
YkZyYW1lOmRpZEZpbmlzaExvYWRXaXRoUmVhc29uOl0pOgorICAgICAgICAoLVtXZWJIb3N0ZWRO
ZXRzY2FwZVBsdWdpblZpZXcgd2ViRnJhbWU6ZGlkRmluaXNoTG9hZFdpdGhFcnJvcjpdKToKKwog
MjAwOS0xMi0yMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgTWFyayBSb3dlLgpJbmRleDogV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Ib3N0
ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAkocmV2aXNpb24gNTI1OTApCisr
KyBXZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBjYW5j
ZWxMb2FkKE5QUmVhc29uIHJlYXNvbik7CiAKKyAgICBzdGF0aWMgTlBSZWFzb24gcmVhc29uRm9y
RXJyb3IoTlNFcnJvciAqZXJyb3IpOworCiBwcml2YXRlOgogICAgIE5TRXJyb3IgKmVycm9yRm9y
UmVhc29uKE5QUmVhc29uKSBjb25zdDsKICAgICB2b2lkIGNhbmNlbExvYWQoTlNFcnJvciAqKTsK
SW5kZXg6IFdlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJl
YW0ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Ib3N0ZWROZXRz
Y2FwZVBsdWdpblN0cmVhbS5tbQkocmV2aXNpb24gNTI1OTApCisrKyBXZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xODMsNyArMTgzLDcgQEAgdm9pZCBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbTo6ZGlkUmVj
ZQogICAgIHN0YXJ0U3RyZWFtKFtyIFVSTF0sIGV4cGVjdGVkQ29udGVudExlbmd0aCwgV0tHZXRO
U1VSTFJlc3BvbnNlTGFzdE1vZGlmaWVkRGF0ZShyKSwgW3IgTUlNRVR5cGVdLCB0aGVIZWFkZXJz
KTsKIH0KIAotc3RhdGljIE5QUmVhc29uIHJlYXNvbkZvckVycm9yKE5TRXJyb3IgKmVycm9yKQor
TlBSZWFzb24gSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW06OnJlYXNvbkZvckVycm9yKE5TRXJy
b3IgKmVycm9yKQogewogICAgIGlmICghZXJyb3IpCiAgICAgICAgIHJldHVybiBOUFJFU19ET05F
OwpJbmRleDogV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eS5oCShyZXZpc2lvbiA1MjU5MCkKKysrIFdlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ5LDExICs0OSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB9CiB9CiBAY2xhc3MgV2Vi
SG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3OworQGNsYXNzIFdlYkZyYW1lOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW07CiBjbGFzcyBOZXRz
Y2FwZVBsdWdpbkhvc3RQcm94eTsKK2NsYXNzIFBsdWdpblJlcXVlc3Q7CiBjbGFzcyBQcm94eUlu
c3RhbmNlOwogICAgIAogY2xhc3MgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5IDogcHVibGlj
IFJlZkNvdW50ZWQ8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiB7CkBAIC0yNTcsMTAgKzI1
OSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGQ6OmF1dG9fcHRyPFQ+KHN0YXRpY19j
YXN0PFQqPihyZXBseSkpOwogICAgIH0KICAgICAKKyAgICB2b2lkIHdlYkZyYW1lRGlkRmluaXNo
TG9hZFdpdGhSZWFzb24oV2ViRnJhbWUqLCBOUFJlYXNvbik7CisKIHByaXZhdGU6Ci0gICAgTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5KiwgV2ViSG9z
dGVkTmV0c2NhcGVQbHVnaW5WaWV3ICosIGJvb2wgZnVsbEZyYW1lUGx1Z2luKTsKKyAgICBOZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHkoTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkqLCBXZWJIb3N0
ZWROZXRzY2FwZVBsdWdpblZpZXcqLCBib29sIGZ1bGxGcmFtZVBsdWdpbik7CiAKLSAgICBOUEVy
cm9yIGxvYWRSZXF1ZXN0KE5TVVJMUmVxdWVzdCAqLCBjb25zdCBjaGFyKiBjVGFyZ2V0LCBib29s
IGN1cnJlbnRFdmVudElzVXNlckdlc3R1cmUsIHVpbnQzMl90JiBzdHJlYW1JRCk7CisgICAgTlBF
cnJvciBsb2FkUmVxdWVzdChOU1VSTFJlcXVlc3QqLCBjb25zdCBjaGFyKiBjVGFyZ2V0LCBib29s
IGN1cnJlbnRFdmVudElzVXNlckdlc3R1cmUsIHVpbnQzMl90JiBzdHJlYW1JRCk7CiAgICAgCiAg
ICAgY2xhc3MgUGx1Z2luUmVxdWVzdDsKICAgICB2b2lkIHBlcmZvcm1SZXF1ZXN0KFBsdWdpblJl
cXVlc3QqKTsKQEAgLTI3NCw3ICsyNzgsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXF1ZXN0
VGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk+Kik7
CiAgICAgV2ViQ29yZTo6VGltZXI8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBtX3JlcXVl
c3RUaW1lcjsKLSAgICBEZXF1ZTxQbHVnaW5SZXF1ZXN0Kj4gbV9wbHVnaW5SZXF1ZXN0czsKKyAg
ICBEZXF1ZTxSZWZQdHI8UGx1Z2luUmVxdWVzdD4gPiBtX3BsdWdpblJlcXVlc3RzOwogICAgIAog
ICAgIEhhc2hNYXA8dWludDMyX3QsIFJlZlB0cjxIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbT4g
PiBtX3N0cmVhbXM7CiAKQEAgLTMxMyw2ICszMTcsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9w
bHVnaW5Jc1dhaXRpbmdGb3JEcmF3OwogICAgIAogICAgIFJlZlB0cjxIb3N0ZWROZXRzY2FwZVBs
dWdpblN0cmVhbT4gbV9tYW51YWxTdHJlYW07CisKKyAgICB0eXBlZGVmIEhhc2hNYXA8V2ViRnJh
bWUqLCBSZWZQdHI8UGx1Z2luUmVxdWVzdD4gPiBGcmFtZUxvYWRNYXA7CisgICAgRnJhbWVMb2Fk
TWFwICBtX3BlbmRpbmdGcmFtZUxvYWRzOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApJbmRleDogV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkubW0JKHJldmlzaW9uIDUyNTkwKQorKysgV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTcyLDIyICs3MiwyNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLWNsYXNzIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6UGx1Z2lu
UmVxdWVzdCB7CitjbGFzcyBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OlBsdWdpblJlcXVl
c3QgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OlBsdWdp
blJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBQbHVnaW5SZXF1ZXN0KHVpbnQzMl90IHJlcXVlc3RJ
RCwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0LCBOU1N0cmluZyAqZnJhbWVOYW1lLCBib29sIGFsbG93
UG9wdXBzKQotICAgICAgICA6IG1fcmVxdWVzdElEKHJlcXVlc3RJRCkKLSAgICAgICAgLCBtX3Jl
cXVlc3QocmVxdWVzdCkKLSAgICAgICAgLCBtX2ZyYW1lTmFtZShmcmFtZU5hbWUpCi0gICAgICAg
ICwgbV9hbGxvd1BvcHVwcyhhbGxvd1BvcHVwcykKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVn
aW5SZXF1ZXN0PiBjcmVhdGUodWludDMyX3QgcmVxdWVzdElELCBOU1VSTFJlcXVlc3QgKnJlcXVl
c3QsIE5TU3RyaW5nICpmcmFtZU5hbWUsIGJvb2wgYWxsb3dQb3B1cHMpCiAgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFBsdWdpblJlcXVlc3QocmVxdWVzdElELCByZXF1ZXN0LCBm
cmFtZU5hbWUsIGFsbG93UG9wdXBzKSk7CiAgICAgfQotICAgIAorCiAgICAgdWludDMyX3QgcmVx
dWVzdElEKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0SUQ7IH0KICAgICBOU1VSTFJlcXVlc3Qg
KnJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3QuZ2V0KCk7IH0KICAgICBOU1N0cmlu
ZyAqZnJhbWVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZU5hbWUuZ2V0KCk7IH0KICAgICBi
b29sIGFsbG93UG9wdXBzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1BvcHVwczsgfQogICAgIAog
cHJpdmF0ZToKKyAgICBQbHVnaW5SZXF1ZXN0KHVpbnQzMl90IHJlcXVlc3RJRCwgTlNVUkxSZXF1
ZXN0ICpyZXF1ZXN0LCBOU1N0cmluZyAqZnJhbWVOYW1lLCBib29sIGFsbG93UG9wdXBzKQorICAg
ICAgICA6IG1fcmVxdWVzdElEKHJlcXVlc3RJRCkKKyAgICAgICAgLCBtX3JlcXVlc3QocmVxdWVz
dCkKKyAgICAgICAgLCBtX2ZyYW1lTmFtZShmcmFtZU5hbWUpCisgICAgICAgICwgbV9hbGxvd1Bv
cHVwcyhhbGxvd1BvcHVwcykKKyAgICB7CisgICAgfQorICAgIAogICAgIHVpbnQzMl90IG1fcmVx
dWVzdElEOwogICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3QgKj4gbV9yZXF1ZXN0OwogICAgIFJl
dGFpblB0cjxOU1N0cmluZyAqPiBtX2ZyYW1lTmFtZTsKQEAgLTIxMiw2ICsyMTcsMTAgQEAgdm9p
ZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmRlc3RybwogICAgIAogICAgIG1faW5EZXN0
cm95ID0gdHJ1ZTsKICAgICAKKyAgICBGcmFtZUxvYWRNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fcGVu
ZGluZ0ZyYW1lTG9hZHMuZW5kKCk7CisgICAgZm9yIChGcmFtZUxvYWRNYXA6Oml0ZXJhdG9yIGl0
ID0gbV9wZW5kaW5nRnJhbWVMb2Fkcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAg
IFsoaXQtPmZpcnN0KSBfc2V0SW50ZXJuYWxMb2FkRGVsZWdhdGU6bmlsXTsKKwogICAgIF9XS1BI
RGVzdHJveVBsdWdpbkluc3RhbmNlKG1fcGx1Z2luSG9zdFByb3h5LT5wb3J0KCksIG1fcGx1Z2lu
SUQsIHJlcXVlc3RJRCk7CiAgCiAgICAgLy8gSWYgdGhlIHBsdWctaW4gaG9zdCBjcmFzaGVzIHdo
aWxlIHdlJ3JlIHdhaXRpbmcgZm9yIGEgcmVwbHksIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGUg
aW5zdGFuY2UgcHJveHkKQEAgLTUxNyw4ICs1MjYsMzIgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHk6OnBlcmZvcgogICAgIGlmIChKU1N0cmluZykgewogICAgICAgICBBU1NFUlQo
IWZyYW1lIHx8IFttX3BsdWdpblZpZXcgd2ViRnJhbWVdID09IGZyYW1lKTsKICAgICAgICAgZXZh
bHVhdGVKYXZhU2NyaXB0KHBsdWdpblJlcXVlc3QpOwotICAgIH0gZWxzZQorICAgIH0gZWxzZSB7
CiAgICAgICAgIFtmcmFtZSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworCS8vIENoZWNrIGlmIGFu
b3RoZXIgcGx1Zy1pbiB2aWV3IG9yIGV2ZW4gdGhpcyB2aWV3IGlzIHdhaXRpbmcgZm9yIHRoZSBm
cmFtZSB0byBsb2FkLgorICAgICAgICAvLyBJZiBpdCBpcywgdGVsbCBpdCB0aGF0IHRoZSBsb2Fk
IHdhcyBjYW5jZWxsZWQgYmVjYXVzZSBpdCB3aWxsIGJlIGFueXdheS4KKyAgICAgICAgV2ViSG9z
dGVkTmV0c2NhcGVQbHVnaW5WaWV3ICp2aWV3ID0gW2ZyYW1lIF9pbnRlcm5hbExvYWREZWxlZ2F0
ZV07CisgICAgICAgIGlmICh2aWV3ICE9IG5pbCkgeworICAgICAgICAgICAgQVNTRVJUKFt2aWV3
IGlzS2luZE9mQ2xhc3M6W1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldyBjbGFzc11dKTsKKyAg
ICAgICAgICAgIFt2aWV3IHdlYkZyYW1lOmZyYW1lIGRpZEZpbmlzaExvYWRXaXRoUmVhc29uOk5Q
UkVTX1VTRVJfQlJFQUtdOworICAgICAgICB9CisgICAgICAgIG1fcGVuZGluZ0ZyYW1lTG9hZHMu
c2V0KGZyYW1lLCBwbHVnaW5SZXF1ZXN0KTsKKyAgICAgICAgW2ZyYW1lIF9zZXRJbnRlcm5hbExv
YWREZWxlZ2F0ZTptX3BsdWdpblZpZXddOworICAgIH0KKworfQorCit2b2lkIE5ldHNjYXBlUGx1
Z2luSW5zdGFuY2VQcm94eTo6d2ViRnJhbWVEaWRGaW5pc2hMb2FkV2l0aFJlYXNvbihXZWJGcmFt
ZSogd2ViRnJhbWUsIE5QUmVhc29uIHJlYXNvbikKK3sKKyAgICBSZWZQdHI8UGx1Z2luUmVxdWVz
dD4gcGx1Z2luUmVxdWVzdCA9IG1fcGVuZGluZ0ZyYW1lTG9hZHMuZ2V0KHdlYkZyYW1lKTsKKyAg
ICBBU1NFUlQocGx1Z2luUmVxdWVzdCk7CisgICAgICAgIAorICAgIF9XS1BITG9hZFVSTE5vdGlm
eShtX3BsdWdpbkhvc3RQcm94eS0+cG9ydCgpLCBtX3BsdWdpbklELCBwbHVnaW5SZXF1ZXN0LT5y
ZXF1ZXN0SUQoKSwgcmVhc29uKTsKKyAKKyAgICBtX3BlbmRpbmdGcmFtZUxvYWRzLnJlbW92ZSh3
ZWJGcmFtZSk7CisKKyAgICBbd2ViRnJhbWUgX3NldEludGVybmFsTG9hZERlbGVnYXRlOm5pbF07
CiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpldmFsdWF0ZUphdmFTY3Jp
cHQoUGx1Z2luUmVxdWVzdCogcGx1Z2luUmVxdWVzdCkKQEAgLTU1NywxNCArNTkwLDEzIEBAIHZv
aWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpyZXF1ZXMKICAgICBBU1NFUlQoIW1fcGx1
Z2luUmVxdWVzdHMuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQobV9wbHVnaW5WaWV3KTsKICAgICAK
LSAgICBQbHVnaW5SZXF1ZXN0KiByZXF1ZXN0ID0gbV9wbHVnaW5SZXF1ZXN0cy5maXJzdCgpOwor
ICAgIFJlZlB0cjxQbHVnaW5SZXF1ZXN0PiByZXF1ZXN0ID0gbV9wbHVnaW5SZXF1ZXN0cy5maXJz
dCgpOwogICAgIG1fcGx1Z2luUmVxdWVzdHMucmVtb3ZlRmlyc3QoKTsKICAgICAKICAgICBpZiAo
IW1fcGx1Z2luUmVxdWVzdHMuaXNFbXB0eSgpKQogICAgICAgICBtX3JlcXVlc3RUaW1lci5zdGFy
dE9uZVNob3QoMCk7CiAgICAgCi0gICAgcGVyZm9ybVJlcXVlc3QocmVxdWVzdCk7Ci0gICAgZGVs
ZXRlIHJlcXVlc3Q7CisgICAgcGVyZm9ybVJlcXVlc3QocmVxdWVzdC5nZXQoKSk7CiB9CiAgICAg
CiBOUEVycm9yIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6bG9hZFJlcXVlc3QoTlNVUkxS
ZXF1ZXN0ICpyZXF1ZXN0LCBjb25zdCBjaGFyKiBjVGFyZ2V0LCBib29sIGFsbG93UG9wdXBzLCB1
aW50MzJfdCYgcmVxdWVzdElEKQpAQCAtNjE2LDcgKzY0OCw3IEBAIE5QRXJyb3IgTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5Ojpsb2EKICAgICAgICAgICAgIHJldHVybiBOUEVSUl9JTlZBTElE
X1BBUkFNOwogICAgICAgICB9CiAKLSAgICAgICAgUGx1Z2luUmVxdWVzdCogcGx1Z2luUmVxdWVz
dCA9IG5ldyBQbHVnaW5SZXF1ZXN0KHJlcXVlc3RJRCwgcmVxdWVzdCwgdGFyZ2V0LCBhbGxvd1Bv
cHVwcyk7CisgICAgICAgIFJlZlB0cjxQbHVnaW5SZXF1ZXN0PiBwbHVnaW5SZXF1ZXN0ID0gUGx1
Z2luUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3RJRCwgcmVxdWVzdCwgdGFyZ2V0LCBhbGxvd1BvcHVw
cyk7CiAgICAgICAgIG1fcGx1Z2luUmVxdWVzdHMuYXBwZW5kKHBsdWdpblJlcXVlc3QpOwogICAg
ICAgICBtX3JlcXVlc3RUaW1lci5zdGFydE9uZVNob3QoMCk7CiAgICAgfSBlbHNlIHsKSW5kZXg6
IFdlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcuaAkocmV2aXNpb24gNTI1OTApCisrKyBXZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2
ICs1OSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICAgICAgZWxlbWVudDooUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4pZWxlbWVudDsKIAogLSAodm9pZClwbHVn
aW5Ib3N0RGllZDsKKworLSAodm9pZCl3ZWJGcmFtZTooV2ViRnJhbWUgKil3ZWJGcmFtZSBkaWRG
aW5pc2hMb2FkV2l0aFJlYXNvbjooTlBSZWFzb24pcmVhc29uOworCiBAZW5kCiAKICNlbmRpZiAv
LyBVU0UoUExVR0lOX0hPU1RfUFJPQ0VTUykKSW5kZXg6IFdlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCShyZXZpc2lv
biA1MjU5MCkKKysrIFdlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQ
bHVnaW5WaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NDEsNiArNDQxLDIwIEBAIGV4dGVybiAi
QyIgewogICAgIF9wcm94eS0+Y2hlY2tJZkFsbG93ZWRUb0xvYWRVUkxSZXN1bHQoY2hlY2tJRCwg
KHBvbGljeSA9PSBQb2xpY3lVc2UpKTsKIH0KIAorLSAodm9pZCl3ZWJGcmFtZTooV2ViRnJhbWUg
Kil3ZWJGcmFtZSBkaWRGaW5pc2hMb2FkV2l0aFJlYXNvbjooTlBSZWFzb24pcmVhc29uCit7Cisg
ICAgaWYgKF9pc1N0YXJ0ZWQgJiYgX3Byb3h5KQorICAgICAgICBfcHJveHktPndlYkZyYW1lRGlk
RmluaXNoTG9hZFdpdGhSZWFzb24od2ViRnJhbWUsIHJlYXNvbik7Cit9CisKKy0gKHZvaWQpd2Vi
RnJhbWU6KFdlYkZyYW1lICopd2ViRnJhbWUgZGlkRmluaXNoTG9hZFdpdGhFcnJvcjooTlNFcnJv
ciAqKWVycm9yCit7CisgICAgTlBSZWFzb24gcmVhc29uID0gTlBSRVNfRE9ORTsKKyAgICBpZiAo
ZXJyb3IgIT0gbmlsKQorICAgICAgICByZWFzb24gPSBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVh
bTo6cmVhc29uRm9yRXJyb3IoZXJyb3IpOworICAgIFtzZWxmIHdlYkZyYW1lOndlYkZyYW1lIGRp
ZEZpbmlzaExvYWRXaXRoUmVhc29uOnJlYXNvbl07Cit9CisKIEBlbmQKIAogI2VuZGlmCg==
</data>
<flag name="review"
          id="27602"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="27616"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>