<?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>151739</bug_id>
          
          <creation_ts>2015-12-01 20:50:41 -0800</creation_ts>
          <short_desc>Update Objective-C code generator to pass a reference to calling object for partial interfaces</short_desc>
          <delta_ts>2016-02-17 18:59:36 -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>Bindings</component>
          <version>WebKit 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>
          
          <blocked>151688</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikos Andronikos">nikos.andronikos</reporter>
          <assigned_to name="Nikos Andronikos">nikos.andronikos</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1145516</commentid>
    <comment_count>0</comment_count>
    <who name="Nikos Andronikos">nikos.andronikos</who>
    <bug_when>2015-12-01 20:50:41 -0800</bug_when>
    <thetext>This patch fixes errors caused by bug 151682, which changed the code for JS bindings to pass a reference to the object when calling static member functions.

The error is in the generated Objective-C code for partial interfaces:

   webkit/WebKitBuild/Debug/DerivedSources/WebCore/DOMDocument.mm:443:65: error: non-const lvalue reference to type &apos;WebCore::Document&apos; cannot bind to a temporary of type &apos;WebCore::Document *&apos;
       return kit(WTF::getPtr(WebCore::DocumentAnimation::timeline(IMPL)));
                                                                   ^~~~
   webkit/WebKitBuild/Debug/DerivedSources/WebCore/DOMDocument.mm:106:14: note: expanded from macro &apos;IMPL&apos;
   #define IMPL static_cast&lt;WebCore::Document*&gt;(reinterpret_cast&lt;WebCore::Node*&gt;(_internal))

The fix updates Objective-C code generator to pass a reference to calling object for partial interfaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145518</commentid>
    <comment_count>1</comment_count>
      <attachid>266427</attachid>
    <who name="Nikos Andronikos">nikos.andronikos</who>
    <bug_when>2015-12-01 20:58:25 -0800</bug_when>
    <thetext>Created attachment 266427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146887</commentid>
    <comment_count>2</comment_count>
      <attachid>266427</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-12-07 10:03:05 -0800</bug_when>
    <thetext>Comment on attachment 266427
Patch

This seems sort of pointless. I don’t think we’ll be generating Objective-C bindings for partial interfaces. We have different ideas about how to expose DOM to Objective-C and Swift. It’s OK to fix the code generator, but we never plan to use it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146897</commentid>
    <comment_count>3</comment_count>
      <attachid>266427</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-07 10:36:14 -0800</bug_when>
    <thetext>Comment on attachment 266427
Patch

Clearing flags on attachment: 266427

Committed r193637: &lt;http://trac.webkit.org/changeset/193637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146898</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-07 10:36:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146927</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-12-07 11:46:55 -0800</bug_when>
    <thetext>Should ObjC generator skips generating code for ImplementedBy functions and attributes then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147275</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-12-08 07:53:52 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Should ObjC generator skips generating code for ImplementedBy functions and
&gt; attributes then?

I’m not 100% sure we can do exactly that, but we could start doing something along those lines. Generally speaking what we probably want is to keep the existing Objective-C bindings working but not add more to them.

Note that there was no problem compiling WebKit even without this bug fix. I don’t know of any actual binding that we compile with Objective-C that was affected by this fix.

There are many new DOM APIs where we don’t have a good mapping to Objective-C in the bindings, but it doesn’t matter if we do not try to expose those new DOM APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147593</commentid>
    <comment_count>7</comment_count>
    <who name="Nikos Andronikos">nikos.andronikos</who>
    <bug_when>2015-12-08 20:59:08 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; Should ObjC generator skips generating code for ImplementedBy functions and
&gt; &gt; attributes then?
&gt; 
&gt; I’m not 100% sure we can do exactly that, but we could start doing something
&gt; along those lines. Generally speaking what we probably want is to keep the
&gt; existing Objective-C bindings working but not add more to them.
&gt; 
&gt; Note that there was no problem compiling WebKit even without this bug fix. I
&gt; don’t know of any actual binding that we compile with Objective-C that was
&gt; affected by this fix.

The affected code is in the new Web Animations impl - see bug 151688 
Web Animations defines an extension to the Document interface.
http://w3c.github.io/web-animations/#extensions-to-the-document-interface

&gt; 
&gt; There are many new DOM APIs where we don’t have a good mapping to
&gt; Objective-C in the bindings, but it doesn’t matter if we do not try to
&gt; expose those new DOM APIs.

So what&apos;s the mechanism for not exposing those APIs to Objective-C?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148055</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-12-09 19:51:57 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; So what&apos;s the mechanism for not exposing those APIs to Objective-C?

We have multiple mechanisms, none really elegant, and could add more. One approach is to use one of these in IDL files:

#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT

Another approach is that CodeGeneratorObjC.pm will omit certain thing entirely based on attributes or other aspects of the IDL. For example, I removed support for nullables entirely recently, so they are just ignored, similarly [Private] functions are ignored, [CustomBinding] items are ignored, [EventHandler] items are ignored.

Another approach is to list filenames to skip in this DerivedSources.make line:

OBJC_DOM_HEADERS=$(filter-out DOMDOMWindow.h DOMDOMMimeType.h DOMDOMPlugin.h,$(OBJC_DOM_CLASSES:%=DOM%.h))

Two more peculiar things about Objective-C DOM:

1) only things listed in bindings/objc/PublicDOMInterfaces.h get to be API; others are considered non-public SPI on OS X
2) the Objective-C DOM doesn&apos;t exist at all on iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165852</commentid>
    <comment_count>9</comment_count>
    <who name="Nikos Andronikos">nikos.andronikos</who>
    <bug_when>2016-02-17 18:59:36 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; So what&apos;s the mechanism for not exposing those APIs to Objective-C?
&gt; 
&gt; We have multiple mechanisms, none really elegant, and could add more. One
&gt; approach is to use one of these in IDL files:
&gt; 
&gt; #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
&gt; #if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT

For now, we&apos;ve chosen to adopt this method and won&apos;t expose the web animations API to Objective-C. 
See bug 151688.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266427</attachid>
            <date>2015-12-01 20:58:25 -0800</date>
            <delta_ts>2015-12-07 10:36:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151739-20151202155658.patch</filename>
            <type>text/plain</type>
            <size>8623</size>
            <attacher name="Nikos Andronikos">nikos.andronikos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyOTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFiOGM0MGExMWIwYjZh
NzgyYTJhOGYzNjk2MGNlZjZkMjE0YmQ3Yi4uNTM3YTY3M2QxODg0ZWM5NWI2NzUyNzUxNjAyYzFk
ZDZmMTY4MjljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE1LTEyLTAxICBOaWtv
cyBBbmRyb25pa29zICA8bmlrb3MuYW5kcm9uaWtvcy13ZWJraXRAY2lzcmEuY2Fub24uY29tLmF1
PgorCisgICAgICAgIFVwZGF0ZSBPYmplY3RpdmUtQyBjb2RlIGdlbmVyYXRvciB0byBwYXNzIGEg
cmVmZXJlbmNlIHRvIGNhbGxpbmcgb2JqZWN0IGZvciBwYXJ0aWFsIGludGVyZmFjZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTczOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBmaXggdXBkYXRl
cyB0aGUgT2JqZWN0aXZlLUMgY29kZSBnZW5lcmF0b3IgdG8gcGFzcyBhIHJlZmVyZW5jZSB0byBj
YWxsaW5nIG9iamVjdCBmb3IgcGFydGlhbCBpbnRlcmZhY2VzLgorICAgICAgICBUaGUgY2hhbmdl
IGZyb20gcGFzcyBieSBwb2ludGVyIHRvIHBhc3MgYnkgcmVmZXJlbmNlIHdhcyBpbnRyb2R1Y2Vk
IGluIHIxOTI4NDkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JP
YmpDLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFjZS5tbToKKyAgICAgICAgKC1b
RE9NVGVzdEludGVyZmFjZSBzdXBwbGVtZW50YWxTdHIxXSk6CisgICAgICAgICgtW0RPTVRlc3RJ
bnRlcmZhY2Ugc3VwcGxlbWVudGFsU3RyMl0pOgorICAgICAgICAoLVtET01UZXN0SW50ZXJmYWNl
IHNldFN1cHBsZW1lbnRhbFN0cjI6XSk6CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ugc3Vw
cGxlbWVudGFsU3RyM10pOgorICAgICAgICAoLVtET01UZXN0SW50ZXJmYWNlIHNldFN1cHBsZW1l
bnRhbFN0cjM6XSk6CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2Ugc3VwcGxlbWVudGFsTm9k
ZV0pOgorICAgICAgICAoLVtET01UZXN0SW50ZXJmYWNlIHNldFN1cHBsZW1lbnRhbE5vZGU6XSk6
CisgICAgICAgICgtW0RPTVRlc3RJbnRlcmZhY2UgYnVpbHRpbkF0dHJpYnV0ZV0pOgorICAgICAg
ICAoLVtET01UZXN0SW50ZXJmYWNlIHNldEJ1aWx0aW5BdHRyaWJ1dGU6XSk6CisgICAgICAgICgt
W0RPTVRlc3RJbnRlcmZhY2Ugc3VwcGxlbWVudGFsTWV0aG9kMV0pOgorICAgICAgICAoLVtET01U
ZXN0SW50ZXJmYWNlIHN1cHBsZW1lbnRhbE1ldGhvZDI6b2JqQXJnOl0pOgorICAgICAgICAoLVtE
T01UZXN0SW50ZXJmYWNlIHN1cHBsZW1lbnRhbE1ldGhvZDNdKToKKyAgICAgICAgKC1bRE9NVGVz
dEludGVyZmFjZSBzdXBwbGVtZW50YWxNZXRob2Q0XSk6CisgICAgICAgICgtW0RPTVRlc3RJbnRl
cmZhY2UgYnVpbHRpbkZ1bmN0aW9uXSk6CisKIDIwMTUtMTItMDEgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0VTNl0gSW1wbGVtZW50IExMSW50L0Jh
c2VsaW5lIFN1cHBvcnQgZm9yIEVTNiBHZW5lcmF0b3JzIGFuZCBlbmFibGUgdGhpcyBmZWF0dXJl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JPYmpDLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
T2JqQy5wbQppbmRleCA3YTI3NGZkYzI2ZDYxZWI5ZDc2MWRjMzIzNzQ3NmQ3MTc5NzU4MTMwLi5i
N2IyN2Q2ZDlhNmY1YWRiZGIwNzBhNGUxMGVlOTAwM2QxMzkwNDY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KQEAgLTEy
OTcsNyArMTI5Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBp
ZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50
ZWRCeSJ9KSB7CiAgICAgICAgICAgICAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CiAgICAg
ICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtpbXBsZW1lbnRlZEJ5fS5oIn0gPSAxOwotICAg
ICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJXZWJDb3JlOjoke2ltcGxlbWVudGVk
Qnl9Ojoke2dldHRlckV4cHJlc3Npb25QcmVmaXh9SU1QTCI7CisgICAgICAgICAgICAgICAgJGdl
dHRlckNvbnRlbnRIZWFkID0gIldlYkNvcmU6OiR7aW1wbGVtZW50ZWRCeX06OiR7Z2V0dGVyRXhw
cmVzc2lvblByZWZpeH0qSU1QTCI7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJJTVBMLT4kZ2V0dGVyRXhwcmVzc2lvblByZWZpeCI7
CiAgICAgICAgICAgICB9CkBAIC0xNDM3LDcgKzE0MzcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In0pIHsKICAgICAgICAgICAgICAgICAgICAg
bXkgJGltcGxlbWVudGVkQnkgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CiAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IiR7aW1wbGVtZW50ZWRCeX0uaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgdW5zaGlm
dChAYXJndW1lbnRzLCAiSU1QTCIpOworICAgICAgICAgICAgICAgICAgICB1bnNoaWZ0KEBhcmd1
bWVudHMsICIqSU1QTCIpOwogICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gIldl
YkNvcmU6OiR7aW1wbGVtZW50ZWRCeX06OiR7ZnVuY3Rpb25OYW1lfSI7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJJTVBMLT4k
e2Z1bmN0aW9uTmFtZX0iOwpAQCAtMTU2NSw3ICsxNTY1LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifSkgewogICAgICAgICAgICAgICAgIG15ICRpbXBs
ZW1lbnRlZEJ5ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJ
bXBsZW1lbnRlZEJ5In07CiAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtpbXBsZW1l
bnRlZEJ5fS5oIn0gPSAxOwotICAgICAgICAgICAgICAgIHVuc2hpZnQoQHBhcmFtZXRlck5hbWVz
LCAkY2FsbGVyKTsKKyAgICAgICAgICAgICAgICB1bnNoaWZ0KEBwYXJhbWV0ZXJOYW1lcywgIioi
IC4gJGNhbGxlcik7CiAgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAiV2ViQ29yZTo6JHtpbXBs
ZW1lbnRlZEJ5fTo6IiAuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbk5hbWUp
IC4gIigiIC4gam9pbigiLCAiLCBAcGFyYW1ldGVyTmFtZXMpIC4gIikiOwogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUg
PSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVk
QXMifSB8fCAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb25OYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJ
bnRlcmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0SW50ZXJmYWNlLm1tCmluZGV4IDg5NDE5MWIxNWVlNWRlOGRhNjQwOGVhZjY5NGIzMmQ0
MWJjOGExMzcuLmYyZTUzYTNiYThjYjc4MTE4Mzc3YTAwZWM4YzBhNzFmMjNkODA5OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RJ
bnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdEludGVyZmFjZS5tbQpAQCAtMTI0LDcgKzEyNCw3IEBAIC0gKHZvaWQpc2V0SW1w
bGVtZW50c05vZGU6KERPTU5vZGUgKiluZXdJbXBsZW1lbnRzTm9kZQogLSAoTlNTdHJpbmcgKilz
dXBwbGVtZW50YWxTdHIxCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIHJldHVybiBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxT
dHIxKElNUEwpOworICAgIHJldHVybiBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVt
ZW50YWxTdHIxKCpJTVBMKTsKIH0KICNlbmRpZgogCkBAIC0xMzIsMTMgKzEzMiwxMyBAQCAtIChO
U1N0cmluZyAqKXN1cHBsZW1lbnRhbFN0cjEKIC0gKE5TU3RyaW5nICopc3VwcGxlbWVudGFsU3Ry
MgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1
cm4gV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMihJTVBMKTsKKyAg
ICByZXR1cm4gV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMigqSU1Q
TCk7CiB9CiAKIC0gKHZvaWQpc2V0U3VwcGxlbWVudGFsU3RyMjooTlNTdHJpbmcgKiluZXdTdXBw
bGVtZW50YWxTdHIyCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OwotICAgIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbFN0cjIoSU1Q
TCwgbmV3U3VwcGxlbWVudGFsU3RyMik7CisgICAgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6
c2V0U3VwcGxlbWVudGFsU3RyMigqSU1QTCwgbmV3U3VwcGxlbWVudGFsU3RyMik7CiB9CiAjZW5k
aWYKIApAQCAtMTQ2LDEzICsxNDYsMTMgQEAgLSAodm9pZClzZXRTdXBwbGVtZW50YWxTdHIyOihO
U1N0cmluZyAqKW5ld1N1cHBsZW1lbnRhbFN0cjIKIC0gKE5TU3RyaW5nICopc3VwcGxlbWVudGFs
U3RyMwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBy
ZXR1cm4gV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMyhJTVBMKTsK
KyAgICByZXR1cm4gV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMygq
SU1QTCk7CiB9CiAKIC0gKHZvaWQpc2V0U3VwcGxlbWVudGFsU3RyMzooTlNTdHJpbmcgKiluZXdT
dXBwbGVtZW50YWxTdHIzCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbFN0cjMo
SU1QTCwgbmV3U3VwcGxlbWVudGFsU3RyMyk7CisgICAgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRh
bDo6c2V0U3VwcGxlbWVudGFsU3RyMygqSU1QTCwgbmV3U3VwcGxlbWVudGFsU3RyMyk7CiB9CiAj
ZW5kaWYKIApAQCAtMTYwLDcgKzE2MCw3IEBAIC0gKHZvaWQpc2V0U3VwcGxlbWVudGFsU3RyMzoo
TlNTdHJpbmcgKiluZXdTdXBwbGVtZW50YWxTdHIzCiAtIChET01Ob2RlICopc3VwcGxlbWVudGFs
Tm9kZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1l
bnRhbE5vZGUoSU1QTCkpKTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKFdlYkNvcmU6OlRl
c3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE5vZGUoKklNUEwpKSk7CiB9CiAKIC0gKHZvaWQp
c2V0U3VwcGxlbWVudGFsTm9kZTooRE9NTm9kZSAqKW5ld1N1cHBsZW1lbnRhbE5vZGUKQEAgLTE2
OCw3ICsxNjgsNyBAQCAtICh2b2lkKXNldFN1cHBsZW1lbnRhbE5vZGU6KERPTU5vZGUgKiluZXdT
dXBwbGVtZW50YWxOb2RlCiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OwogICAgIEFTU0VSVChuZXdTdXBwbGVtZW50YWxOb2RlKTsKIAotICAgIFdlYkNvcmU6OlRlc3RT
dXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbE5vZGUoSU1QTCwgY29yZShuZXdTdXBwbGVtZW50
YWxOb2RlKSk7CisgICAgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFs
Tm9kZSgqSU1QTCwgY29yZShuZXdTdXBwbGVtZW50YWxOb2RlKSk7CiB9CiAjZW5kaWYKIApAQCAt
MTc2LDEzICsxNzYsMTMgQEAgLSAodm9pZClzZXRTdXBwbGVtZW50YWxOb2RlOihET01Ob2RlICop
bmV3U3VwcGxlbWVudGFsTm9kZQogLSAodW5zaWduZWQgc2hvcnQpYnVpbHRpbkF0dHJpYnV0ZQog
ewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4g
V2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6YnVpbHRpbkF0dHJpYnV0ZShJTVBMKTsKKyAgICBy
ZXR1cm4gV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6YnVpbHRpbkF0dHJpYnV0ZSgqSU1QTCk7
CiB9CiAKIC0gKHZvaWQpc2V0QnVpbHRpbkF0dHJpYnV0ZToodW5zaWduZWQgc2hvcnQpbmV3QnVp
bHRpbkF0dHJpYnV0ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKLSAgICBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzZXRCdWlsdGluQXR0cmlidXRlKElN
UEwsIG5ld0J1aWx0aW5BdHRyaWJ1dGUpOworICAgIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6
OnNldEJ1aWx0aW5BdHRyaWJ1dGUoKklNUEwsIG5ld0J1aWx0aW5BdHRyaWJ1dGUpOwogfQogI2Vu
ZGlmCiAKQEAgLTIzNCw3ICsyMzQsNyBAQCAtICh2b2lkKWltcGxlbWVudHNNZXRob2Q0CiAtICh2
b2lkKXN1cHBsZW1lbnRhbE1ldGhvZDEKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFs
TWV0aG9kMShJTVBMKTsKKyAgICBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50
YWxNZXRob2QxKCpJTVBMKTsKIH0KIAogI2VuZGlmCkBAIC0yNDUsNyArMjQ1LDcgQEAgLSAoRE9N
VGVzdE9iaiAqKXN1cHBsZW1lbnRhbE1ldGhvZDI6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzoo
RE9NVGVzdE9iaiAqKW9iakEKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgRE9NVGVzdE9i
aiAqcmVzdWx0ID0ga2l0KFdURjo6Z2V0UHRyKFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1
cHBsZW1lbnRhbE1ldGhvZDIoSU1QTCwgc3RyQXJnLCBjb3JlKG9iakFyZyksIGVjKSkpOworICAg
IERPTVRlc3RPYmogKnJlc3VsdCA9IGtpdChXVEY6OmdldFB0cihXZWJDb3JlOjpUZXN0U3VwcGxl
bWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2QyKCpJTVBMLCBzdHJBcmcsIGNvcmUob2JqQXJnKSwg
ZWMpKSk7CiAgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQpAQCAtMjU3LDcgKzI1Nyw3IEBAIC0gKERPTVRlc3RPYmogKilzdXBwbGVtZW50YWxN
ZXRob2QyOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBCiAtICh2
b2lkKXN1cHBsZW1lbnRhbE1ldGhvZDMKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFs
TWV0aG9kMyhJTVBMKTsKKyAgICBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50
YWxNZXRob2QzKCpJTVBMKTsKIH0KIAogI2VuZGlmCkBAIC0yNjcsNyArMjY3LDcgQEAgLSAodm9p
ZClzdXBwbGVtZW50YWxNZXRob2QzCiAtICh2b2lkKXN1cHBsZW1lbnRhbE1ldGhvZDQKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6VGVz
dFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kNChJTVBMKTsKKyAgICBXZWJDb3JlOjpU
ZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2Q0KCpJTVBMKTsKIH0KIAogI2VuZGlm
CkBAIC0yNzcsNyArMjc3LDcgQEAgLSAodm9pZClzdXBwbGVtZW50YWxNZXRob2Q0CiAtICh2b2lk
KWJ1aWx0aW5GdW5jdGlvbgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpidWlsdGluRnVuY3Rpb24oSU1Q
TCk7CisgICAgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6YnVpbHRpbkZ1bmN0aW9uKCpJTVBM
KTsKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>