<?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>195206</bug_id>
          
          <creation_ts>2019-03-01 03:25:16 -0800</creation_ts>
          <short_desc>[GLib] Returning G_TYPE_OBJECT from a constructor does not work</short_desc>
          <delta_ts>2019-03-04 02:35:39 -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>JavaScriptCore</component>
          <version>Other</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="Adrian Perez">aperez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1511362</commentid>
    <comment_count>0</comment_count>
      <attachid>363321</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-03-01 03:25:16 -0800</bug_when>
    <thetext>Created attachment 363321
jscobj.c: Example code to reproduce the issue

When a constructor is installed with jsc_class_add_constructor(), and the
return type is specified as G_TYPE_OBJECT, methods do not seem to receive
the object returned from the constructor correctly when invoked.

For the small example that I am attaching, the output is:

  (process:9038): GLib-GIO-CRITICAL **: 12:39:24.868: g_file_get_path: assertion &apos;G_IS_FILE (file)&apos; failed
  **
  ERROR:jscobj.c:54:main: assertion failed: (jsc_value_is_string (result))
  zsh: abort (core dumped)  ./jscobj</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511365</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-03-01 03:36:36 -0800</bug_when>
    <thetext>We are freeing the newly created object before returning from the constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511366</commentid>
    <comment_count>2</comment_count>
      <attachid>363322</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-03-01 03:39:01 -0800</bug_when>
    <thetext>Created attachment 363322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511398</commentid>
    <comment_count>3</comment_count>
      <attachid>363330</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-03-01 07:59:16 -0800</bug_when>
    <thetext>Created attachment 363330
jscobjc-v2.c: Similar code, different issue

I have built JSC locally with your patch, and it does indeed
make it possible for the call to .getPath() to work correctly,
thanks!

Unfortunately, now there is a GObject critical during the
destruction of the JSCContext. I have am attaching an updated
test program; the output is:

  ** Message: 17:50:45.863: js_GFile_new: GFile @ 0x557a2fe3a220.
  ** Message: 17:50:45.863: js_GFile_getPath: GFile @ 0x557a2fe3a220.
  Path: /home/aperez

  (process:11638): GLib-GObject-CRITICAL **: 17:50:45.864: g_object_unref: assertion &apos;G_IS_OBJECT (object)&apos; failed


Backtrace from GDB follows. I may be able to use a build of GLib
with debug info, so let me know if that would be helpful.


----- 8&lt; ---- Backtrace ----- 8&lt; ----------- 8&lt; ----------- 8&lt; -----

(gdb) r
Starting program: /home/aperez/jscobj 
[Thread debugging using libthread_db enabled]
Using host libthread_db library &quot;/usr/lib/libthread_db.so.1&quot;.
[New Thread 0x7ffff4166700 (LWP 11916)]
[New Thread 0x7fffb2dff700 (LWP 11917)]
[New Thread 0x7fffb25fe700 (LWP 11918)]
** Message: 17:55:57.915: js_GFile_new: GFile @ 0x5555555a7000.
** Message: 17:55:57.916: js_GFile_getPath: GFile @ 0x5555555a7000.
Path: /home/aperez

(process:11912): GLib-GObject-CRITICAL **: 17:55:57.916: g_object_unref: assertion &apos;G_IS_OBJECT (object)&apos; failed

Thread 1 &quot;jscobj&quot; received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff68ffc36 in ?? () from /usr/lib/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff68ffc36 in  () at /usr/lib/libglib-2.0.so.0
#1  0x00007ffff69005e3 in g_logv () at /usr/lib/libglib-2.0.so.0
#2  0x00007ffff69007e0 in g_log () at /usr/lib/libglib-2.0.so.0
#3  0x00007ffff79b15bf in void JSC::MarkedBlock::Handle::specializedSweep&lt;false, (JSC::MarkedBlock::Handle::EmptyMode)0, (JSC::MarkedBlock::Handle::SweepMode)0, (JSC::MarkedBlock::Handle::SweepDestructionMode)0, (JSC::MarkedBlock::Handle::ScribbleMode)0, (JSC::MarkedBlock::Handle::NewlyAllocatedMode)0, (JSC::MarkedBlock::Handle::MarksMode)0, JSC::JSDestructibleObjectDestroyFunc&gt;(JSC::FreeList*, JSC::MarkedBlock::Handle::EmptyMode, JSC::MarkedBlock::Handle::SweepMode, JSC::MarkedBlock::Handle::SweepDestructionMode, JSC::MarkedBlock::Handle::ScribbleMode, JSC::MarkedBlock::Handle::NewlyAllocatedMode, JSC::MarkedBlock::Handle::MarksMode, JSC::JSDestructibleObjectDestroyFunc const&amp;) () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#4  0x00007ffff79b1cb4 in void JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType&lt;JSC::JSDestructibleObjectDestroyFunc&gt;(JSC::FreeList*, JSC::JSDestructibleObjectDestroyFunc const&amp;) () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#5  0x00007ffff79abfe4 in JSC::JSDestructibleObjectHeapCellType::finishSweep(JSC::MarkedBlock::Handle&amp;, JSC::FreeList*) () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007ffff764e136 in JSC::MarkedBlock::Handle::sweep(JSC::FreeList*) () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007ffff7620b4c in JSC::BlockDirectory::lastChanceToFinalize() () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#8  0x00007ffff764a700 in JSC::MarkedSpace::lastChanceToFinalize() () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#9  0x00007ffff7633887 in JSC::Heap::lastChanceToFinalize() () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#10 0x00007ffff7b0b35b in JSC::VM::~VM() () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#11 0x00007ffff79e67b8 in JSC::JSLockHolder::~JSLockHolder() () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#12 0x00007ffff7033225 in JSContextGroupRelease () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#13 0x00007ffff701e1ec in jscVirtualMachineSetContextGroup(_JSCVirtualMachine*, OpaqueJSContextGroup const*) [clone .part.58] () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#14 0x00007ffff701e2ac in jscVirtualMachineDispose(_GObject*) () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#15 0x00007ffff69f5315 in g_object_unref () at /usr/lib/libgobject-2.0.so.0
#16 0x00007ffff6ff3f32 in jscContextSetVirtualMachine(_JSCContext*, WTF::GRefPtr&lt;_JSCVirtualMachine&gt;&amp;&amp;) () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#17 0x00007ffff6ff419b in jscContextDispose(_GObject*) () at /home/aperez/.prefix/wkgtk-trunk/lib/libjavascriptcoregtk-4.0.so.18
#18 0x00007ffff69f5315 in g_object_unref () at /usr/lib/libgobject-2.0.so.0
#19 0x00005555555552b0 in glib_autoptr_cleanup_JSCContext ()
#20 0x0000555555555595 in main ()
(gdb)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511402</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-03-01 08:15:47 -0800</bug_when>
    <thetext>That&apos;s weird, do tests pass for you? because that case is now covered by the tests, I&apos;m even checking the GFile is actually destroyed when the context is destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511409</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-03-01 09:05:05 -0800</bug_when>
    <thetext>g_autoptr(JSCClass) klass = jsc_context_register_class 

That&apos;s the bug, you are freeing the JSCClass which is owned by the context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511416</commentid>
    <comment_count>6</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-03-01 09:20:04 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #5)
&gt; g_autoptr(JSCClass) klass = jsc_context_register_class 
&gt; 
&gt; That&apos;s the bug, you are freeing the JSCClass which is owned by the context.

/me facepalms

You are right, and the API documentation definitely has the function
annotated “transfer none”. I removed the g_autoptr() and all works
like a charm now.

Informal r+ to the patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512104</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-03-04 02:34:11 -0800</bug_when>
    <thetext>Committed r242349: &lt;https://trac.webkit.org/changeset/242349&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512105</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-04 02:35:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/48557414&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>363321</attachid>
            <date>2019-03-01 03:25:16 -0800</date>
            <delta_ts>2019-03-01 03:25:16 -0800</delta_ts>
            <desc>jscobj.c: Example code to reproduce the issue</desc>
            <filename>jscobj.c</filename>
            <type>text/x-csrc</type>
            <size>2245</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">LyoKICogQnVpbGQgd2l0aDoKICogICAgZ2NjIC1vIGpzY29iaiBqc2NvYmouYyAkKHBrZy1jb25m
aWcgamF2YXNjcmlwdGNvcmVndGstNC4wIGdpby0yLjAgLS1jZmxhZ3MgLS1saWJzKQogKi8KCiNp
bmNsdWRlIDxnaW8vZ2lvLmg+CiNpbmNsdWRlIDxqc2MvanNjLmg+CgoKc3RhdGljIEdGaWxlKgpq
c19HRmlsZV9jb25zdHJ1Y3RvciAoY29uc3QgY2hhciAqcGF0aCkKewogICAgcmV0dXJuIGdfZmls
ZV9uZXdfZm9yX3BhdGggKHBhdGgpOwp9CgpzdGF0aWMgdm9pZApzZXR1cF9qc2NfY29udGV4dCAo
SlNDQ29udGV4dCAqY3R4KQp7CiAgICBnX2F1dG9wdHIoSlNDQ2xhc3MpIGtsYXNzID0ganNjX2Nv
bnRleHRfcmVnaXN0ZXJfY2xhc3MgKGN0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdGaWxlIiAvKiBuYW1lICovLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM
IC8qIHBhcmVudCAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCAvKiB2dGFibGUgKi8sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgLyogZGVzdHJveV9u
b3RpZnkgKi8pOwogICAgZ19hdXRvcHRyKEpTQ1ZhbHVlKSBjdG9yID0ganNjX2NsYXNzX2FkZF9j
b25zdHJ1Y3RvciAoa2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOVUxMIC8qIG5hbWU6IHNhbWUgYXMgY2xhc3MgKi8sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NB
TExCQUNLIChqc19HRmlsZV9jb25zdHJ1Y3RvciksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMIC8qIHVzZXJfZGF0YSAqLywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwgLyogdXNlcl9kYXRhIGRlc3Ryb3lfbm90aWZ5ICovLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX09CSkVDVCAvKiByZXR1
cm4gdHlwZSAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEgLyogbl9wYXJhbXMgKi8sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfU1RSSU5HKTsKICAgIGpzY19j
bGFzc19hZGRfbWV0aG9kIChrbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAiZ2V0UGF0
aCIgLyogbmFtZSAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChnX2Zp
bGVfZ2V0X3BhdGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgLyogdXNlcl9kYXRh
ICovLAogICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgLyogdXNlcl9kYXRhIGRlc3Ryb3lf
bm90aWZ5ICovLAogICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcgLyogcmV0
dXJuIHR5cGUgKi8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgMCAvKiBuX3BhcmFtcyAqLyk7
CgogICAganNjX2NvbnRleHRfc2V0X3ZhbHVlIChjdHgsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGpzY19jbGFzc19nZXRfbmFtZSAoa2xhc3MpIC8qIG5hbWUgKi8sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGN0b3IgLyogdmFsdWUgKi8pOwp9CgppbnQKbWFpbiAoaW50IGFyZ2MsIGNo
YXIgKmFyZ3ZbXSkKewogICAgZ19hdXRvcHRyKEpTQ0NvbnRleHQpIGN0eCA9IGpzY19jb250ZXh0
X25ldyAoKTsKICAgIHNldHVwX2pzY19jb250ZXh0IChjdHgpOwoKICAgIGdfYXV0b3B0cihKU0NW
YWx1ZSkgcmVzdWx0ID0ganNjX2NvbnRleHRfZXZhbHVhdGUgKGN0eCwgIihuZXcgR0ZpbGUoJy4n
KSkuZ2V0UGF0aCgpIiwgLTEpOwogICAgZ19hc3NlcnQgKGpzY192YWx1ZV9pc19zdHJpbmcgKHJl
c3VsdCkpOwoKICAgIGdfYXV0b2ZyZWUgY2hhciAqcmVzdWx0X3N0cmluZyA9IGpzY192YWx1ZV90
b19zdHJpbmcgKHJlc3VsdCk7CiAgICBnX3ByaW50ICgiUGF0aDogJXNcbiIsIHJlc3VsdF9zdHJp
bmcpOwoKICAgIHJldHVybiAwOwp9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363322</attachid>
            <date>2019-03-01 03:39:01 -0800</date>
            <delta_ts>2019-03-04 02:30:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>jsc-gobject.diff</filename>
            <type>text/plain</type>
            <size>5923</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDYWxsYmFja0Z1
bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDYWxsYmFja0Z1
bmN0aW9uLmNwcAppbmRleCA3MzUwODk4OTczNS4uNDFhOTA5NzY0ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ2FsbGJhY2tGdW5jdGlvbi5jcHAK
QEAgLTIwNSwxNyArMjA1LDE1IEBAIEpTT2JqZWN0UmVmIEpTQ0NhbGxiYWNrRnVuY3Rpb246OmNv
bnN0cnVjdChKU0NvbnRleHRSZWYgY2FsbGVyQ29udGV4dCwgc2l6ZV90IGFyCiAgICAgc3dpdGNo
IChnX3R5cGVfZnVuZGFtZW50YWwoR19WQUxVRV9UWVBFKCZyZXR1cm5WYWx1ZSkpKSB7CiAgICAg
Y2FzZSBHX1RZUEVfUE9JTlRFUjoKICAgICBjYXNlIEdfVFlQRV9PQkpFQ1Q6Ci0gICAgICAgIGlm
IChhdXRvKiBwdHIgPSByZXR1cm5WYWx1ZS5kYXRhWzBdLnZfcG9pbnRlcikgewotICAgICAgICAg
ICAgYXV0byogcmV0dmFsID0ganNjQ2xhc3NHZXRPckNyZWF0ZUpTV3JhcHBlcihtX2NsYXNzLmdl
dCgpLCBwdHIpOwotICAgICAgICAgICAgZ192YWx1ZV91bnNldCgmcmV0dXJuVmFsdWUpOwotICAg
ICAgICAgICAgcmV0dXJuIHRvUmVmKHJldHZhbCk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGF1
dG8qIHB0ciA9IHJldHVyblZhbHVlLmRhdGFbMF0udl9wb2ludGVyKQorICAgICAgICAgICAgcmV0
dXJuIHRvUmVmKGpzY0NsYXNzR2V0T3JDcmVhdGVKU1dyYXBwZXIobV9jbGFzcy5nZXQoKSwgcHRy
KSk7CiAgICAgICAgICpleGNlcHRpb24gPSB0b1JlZihKU0M6OmNyZWF0ZVR5cGVFcnJvcih0b0pT
KGpzQ29udGV4dCksICJjb25zdHJ1Y3RvciByZXR1cm5lZCBudWxsIl9zKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgICpleGNlcHRpb24gPSB0b1JlZihKU0M6OmNyZWF0
ZVR5cGVFcnJvcih0b0pTKGpzQ29udGV4dCksIG1ha2VTdHJpbmcoImludmFsaWQgdHlwZSAiLCBn
X3R5cGVfbmFtZShHX1ZBTFVFX1RZUEUoJnJldHVyblZhbHVlKSksICIgcmV0dXJuZWQgYnkgY29u
c3RydWN0b3IiKSkpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgZ192YWx1ZV91bnNldCgm
cmV0dXJuVmFsdWUpOwogICAgIHJldHVybiBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCBlN2ExYTExNmQxNC4uYWY2MzBiNDQyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAzLTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0xpYl0gUmV0dXJuaW5nIEdfVFlQRV9P
QkpFQ1QgZnJvbSBhIGNvbnN0cnVjdG9yIGRvZXMgbm90IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTIwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGFyZSBmcmVlaW5nIHRoZSBuZXdseSBj
cmVhdGVkIG9iamVjdCBiZWZvcmUgcmV0dXJuaW5nIGZyb20gdGhlIGNvbnN0cnVjdG9yLgorCisg
ICAgICAgICogQVBJL2dsaWIvSlNDQ2FsbGJhY2tGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6
OkpTQ0NhbGxiYWNrRnVuY3Rpb246OmNvbnN0cnVjdCk6CisKIDIwMTktMDItMjggIFRhZGV1IFph
Z2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIENhY2hlZFB0cjo6
bV9pc0VtcHR5IGFuZCBDYWNoZWRPcHRpb25hbDo6bV9pc0VtcHR5IGZpZWxkcwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZjZjcwOGViODg1Li5j
ZTMyZTE5YmZlMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAzLTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0xpYl0gUmV0dXJuaW5nIEdfVFlQRV9P
QkpFQ1QgZnJvbSBhIGNvbnN0cnVjdG9yIGRvZXMgbm90IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTIwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IGNhc2UuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL2dsaWIvVGVzdEpTQy5j
cHA6CisgICAgICAgICh0ZXN0SlNDQ2xhc3MpOgorCiAyMDE5LTAzLTAxICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IGxsZGIgd2Vi
a2l0cHkgdGVzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNj
cmlwdENvcmUvZ2xpYi9UZXN0SlNDLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2
YVNjcmlwdENvcmUvZ2xpYi9UZXN0SlNDLmNwcAppbmRleCBiMjJmN2U1MzAyOS4uMjBiYjJmZWQ4
OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUv
Z2xpYi9UZXN0SlNDLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3Jp
cHRDb3JlL2dsaWIvVGVzdEpTQy5jcHAKQEAgLTE1ODksNiArMTU4OSwxNCBAQCBzdGF0aWMgSlND
Q2xhc3NWVGFibGUgZm9vVlRhYmxlID0gewogICAgIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIKIH07CiAKK3N0YXRpYyBHRmlsZSogY3JlYXRlR0ZpbGUoY29uc3QgY2hhciogcGF0
aCkKK3sKKyAgICBHRmlsZSogZmlsZSA9IGdfZmlsZV9uZXdfZm9yX3BhdGgocGF0aCk7CisgICAg
YXV0byogY2hlY2tlciA9IHN0YXRpY19jYXN0PExlYWtDaGVja2VyKj4oZ19vYmplY3RfZ2V0X2Rh
dGEoR19PQkpFQ1QoanNjX2NvbnRleHRfZ2V0X2N1cnJlbnQoKSksICJsZWFrLWNoZWNrZXIiKSk7
CisgICAgY2hlY2tlci0+d2F0Y2goZmlsZSk7CisgICAgcmV0dXJuIGZpbGU7Cit9CisKIHN0YXRp
YyB2b2lkIHRlc3RKU0NDbGFzcygpCiB7CiAgICAgewpAQCAtMjI0OCw2ICsyMjU2LDQ3IEBAIHN0
YXRpYyB2b2lkIHRlc3RKU0NDbGFzcygpCiAgICAgICAgIGdfYXNzZXJ0X2RpZF90aHJvdyhleGNl
cHRpb25IYW5kbGVyLCBkaWRUaHJvdyk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX2NvbnRl
eHRfZ2V0X2V4Y2VwdGlvbihjb250ZXh0LmdldCgpKSA9PSBwcmV2aW91c0V4Y2VwdGlvbi5nZXQo
KSk7CiAgICAgfQorCisgICAgeworICAgICAgICBMZWFrQ2hlY2tlciBjaGVja2VyOworICAgICAg
ICBHUmVmUHRyPEpTQ0NvbnRleHQ+IGNvbnRleHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfbmV3
KCkpOworICAgICAgICBjaGVja2VyLndhdGNoKGNvbnRleHQuZ2V0KCkpOworICAgICAgICBnX29i
amVjdF9zZXRfZGF0YShHX09CSkVDVChjb250ZXh0LmdldCgpKSwgImxlYWstY2hlY2tlciIsICZj
aGVja2VyKTsKKyAgICAgICAgRXhjZXB0aW9uSGFuZGxlciBleGNlcHRpb25IYW5kbGVyKGNvbnRl
eHQuZ2V0KCkpOworCisgICAgICAgIEpTQ0NsYXNzKiBqc2NDbGFzcyA9IGpzY19jb250ZXh0X3Jl
Z2lzdGVyX2NsYXNzKGNvbnRleHQuZ2V0KCksICJHRmlsZSIsIG51bGxwdHIsIG51bGxwdHIsIHJl
aW50ZXJwcmV0X2Nhc3Q8R0Rlc3Ryb3lOb3RpZnk+KGdfb2JqZWN0X3VucmVmKSk7CisgICAgICAg
IGNoZWNrZXIud2F0Y2goanNjQ2xhc3MpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGNv
bnN0cnVjdG9yID0gYWRvcHRHUmVmKGpzY19jbGFzc19hZGRfY29uc3RydWN0b3IoanNjQ2xhc3Ms
IG51bGxwdHIsIEdfQ0FMTEJBQ0soY3JlYXRlR0ZpbGUpLCBudWxscHRyLCBudWxscHRyLCBHX1RZ
UEVfT0JKRUNULCAxLCBHX1RZUEVfU1RSSU5HKSk7CisgICAgICAgIGNoZWNrZXIud2F0Y2goY29u
c3RydWN0b3IuZ2V0KCkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19jb25z
dHJ1Y3Rvcihjb25zdHJ1Y3Rvci5nZXQoKSkpOworICAgICAgICBqc2NfY2xhc3NfYWRkX21ldGhv
ZChqc2NDbGFzcywgImdldFBhdGgiLCBHX0NBTExCQUNLKGdfZmlsZV9nZXRfcGF0aCksIG51bGxw
dHIsIG51bGxwdHIsIEdfVFlQRV9TVFJJTkcsIDAsIEdfVFlQRV9OT05FKTsKKworICAgICAgICBq
c2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwganNjX2NsYXNzX2dldF9uYW1lKGpz
Y0NsYXNzKSwgY29uc3RydWN0b3IuZ2V0KCkpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+
IGZpbGUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYg
PSBuZXcgR0ZpbGUoJy4nKTsiLCAtMSkpOworICAgICAgICBjaGVja2VyLndhdGNoKGZpbGUuZ2V0
KCkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19vYmplY3QoZmlsZS5nZXQo
KSkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9vYmplY3RfaXNfaW5zdGFuY2Vf
b2YoZmlsZS5nZXQoKSwganNjX2NsYXNzX2dldF9uYW1lKGpzY0NsYXNzKSkpOworICAgICAgICBH
UmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUo
Y29udGV4dC5nZXQoKSwgImYgaW5zdGFuY2VvZiBHRmlsZTsiLCAtMSkpOworICAgICAgICBjaGVj
a2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVl
X2lzX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3Zh
bHVlX3RvX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CisKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShq
c2NfdmFsdWVfb2JqZWN0X2hhc19wcm9wZXJ0eShmaWxlLmdldCgpLCAiZ2V0UGF0aCIpKTsKKyAg
ICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gdmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVj
dF9pbnZva2VfbWV0aG9kKGZpbGUuZ2V0KCksICJnZXRQYXRoIiwgR19UWVBFX05PTkUpKTsKKyAg
ICAgICAgY2hlY2tlci53YXRjaCh2YWx1ZS5nZXQoKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUo
anNjX3ZhbHVlX2lzX3N0cmluZyh2YWx1ZS5nZXQoKSkpOworICAgICAgICBHVW5pcXVlUHRyPGNo
YXI+IHJlc3VsdFN0cmluZyhqc2NfdmFsdWVfdG9fc3RyaW5nKHZhbHVlLmdldCgpKSk7CisgICAg
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gY3VycmVudERpcmVjdG9yeShnX2dldF9jdXJyZW50X2Rpcigp
KTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHJlc3VsdFN0cmluZy5nZXQoKSwgPT0sIGN1cnJl
bnREaXJlY3RvcnkuZ2V0KCkpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlMiA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5nZXRQYXRo
KCcuJyk7IiwgLTEpKTsKKyAgICAgICAgY2hlY2tlci53YXRjaCh2YWx1ZTIuZ2V0KCkpOworICAg
ICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19zdHJpbmcodmFsdWUyLmdldCgpKSk7Cisg
ICAgICAgIHJlc3VsdFN0cmluZy5yZXNldChqc2NfdmFsdWVfdG9fc3RyaW5nKHZhbHVlMi5nZXQo
KSkpOworICAgICAgICBnX2Fzc2VydF9jbXBzdHIocmVzdWx0U3RyaW5nLmdldCgpLCA9PSwgY3Vy
cmVudERpcmVjdG9yeS5nZXQoKSk7CisgICAgfQogfQogCiB0eXBlZGVmIHN0cnVjdCB7Cg==
</data>
<flag name="review"
          id="379921"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>363330</attachid>
            <date>2019-03-01 07:59:16 -0800</date>
            <delta_ts>2019-03-01 07:59:16 -0800</delta_ts>
            <desc>jscobjc-v2.c: Similar code, different issue</desc>
            <filename>jscobj-v2.c</filename>
            <type>text/x-csrc</type>
            <size>2594</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">LyoKICogQnVpbGQgd2l0aDoKICogICAgZ2NjIC1vIGpzY29iaiBqc2NvYmouYyAkKHBrZy1jb25m
aWcgamF2YXNjcmlwdGNvcmVndGstNC4wIGdpby0yLjAgLS1jZmxhZ3MgLS1saWJzKQogKi8KCiNp
bmNsdWRlIDxnaW8vZ2lvLmg+CiNpbmNsdWRlIDxqc2MvanNjLmg+CgpzdGF0aWMgdm9pZApqc19H
RmlsZV9kZXN0cm95IChHRmlsZSAqZmlsZSkKewogICAgZ19tZXNzYWdlICgiJXM6IEdGaWxlIEAg
JXAuIiwgX19mdW5jX18sIGZpbGUpOwogICAgZ19vYmplY3RfdW5yZWYgKGZpbGUpOwp9CgpzdGF0
aWMgR0ZpbGUqCmpzX0dGaWxlX25ldyAoY29uc3QgY2hhciAqcGF0aCkKewogICAgR0ZpbGUgKmZp
bGUgPSBnX2ZpbGVfbmV3X2Zvcl9wYXRoIChwYXRoKTsKICAgIGdfbWVzc2FnZSAoIiVzOiBHRmls
ZSBAICVwLiIsIF9fZnVuY19fLCBmaWxlKTsKICAgIHJldHVybiBmaWxlOwp9CgpzdGF0aWMgY2hh
cioKanNfR0ZpbGVfZ2V0UGF0aCAoR0ZpbGUgKmZpbGUpCnsKICAgIGdfbWVzc2FnZSAoIiVzOiBH
RmlsZSBAICVwLiIsIF9fZnVuY19fLCBmaWxlKTsKICAgIHJldHVybiBnX2ZpbGVfZ2V0X3BhdGgg
KGZpbGUpOwp9CgpzdGF0aWMgdm9pZApzZXR1cF9qc2NfY29udGV4dCAoSlNDQ29udGV4dCAqY3R4
KQp7CiAgICBnX2F1dG9wdHIoSlNDQ2xhc3MpIGtsYXNzID0ganNjX2NvbnRleHRfcmVnaXN0ZXJf
Y2xhc3MgKGN0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIkdGaWxlIiAvKiBuYW1lICovLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMIC8qIHBhcmVudCAqLywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlVMTCAvKiB2dGFibGUgKi8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChHRGVzdHJveU5vdGlmeSkganNfR0ZpbGVfZGVzdHJv
eSAvKiBkZXN0cm95X25vdGlmeSAqLyk7CiAgICBnX2F1dG9wdHIoSlNDVmFsdWUpIGN0b3IgPSBq
c2NfY2xhc3NfYWRkX2NvbnN0cnVjdG9yIChrbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgLyogbmFtZTogc2FtZSBhcyBj
bGFzcyAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdfQ0FMTEJBQ0sgKGpzX0dGaWxlX25ldyksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMIC8qIHVzZXJfZGF0YSAq
LywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE5VTEwgLyogdXNlcl9kYXRhIGRlc3Ryb3lfbm90aWZ5ICovLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX09CSkVDVCAv
KiByZXR1cm4gdHlwZSAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEgLyogbl9wYXJhbXMgKi8sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfU1RSSU5HKTsKICAg
IGpzY19jbGFzc19hZGRfbWV0aG9kIChrbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAi
Z2V0UGF0aCIgLyogbmFtZSAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNL
IChqc19HRmlsZV9nZXRQYXRoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMIC8qIHVz
ZXJfZGF0YSAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMIC8qIHVzZXJfZGF0YSBk
ZXN0cm95X25vdGlmeSAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfU1RSSU5H
IC8qIHJldHVybiB0eXBlICovLAogICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogbl9wYXJh
bXMgKi8pOwoKICAgIGpzY19jb250ZXh0X3NldF92YWx1ZSAoY3R4LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICBqc2NfY2xhc3NfZ2V0X25hbWUgKGtsYXNzKSAvKiBuYW1lICovLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICBjdG9yIC8qIHZhbHVlICovKTsKfQoKaW50Cm1haW4gKGludCBh
cmdjLCBjaGFyICphcmd2W10pCnsKICAgIGdfYXV0b3B0cihKU0NDb250ZXh0KSBjdHggPSBqc2Nf
Y29udGV4dF9uZXcgKCk7CiAgICBzZXR1cF9qc2NfY29udGV4dCAoY3R4KTsKCiAgICBnX2F1dG9w
dHIoSlNDVmFsdWUpIHJlc3VsdCA9IGpzY19jb250ZXh0X2V2YWx1YXRlIChjdHgsICIobmV3IEdG
aWxlKCcuJykpLmdldFBhdGgoKSIsIC0xKTsKICAgIGdfYXNzZXJ0IChqc2NfdmFsdWVfaXNfc3Ry
aW5nIChyZXN1bHQpKTsKCiAgICBnX2F1dG9mcmVlIGNoYXIgKnJlc3VsdF9zdHJpbmcgPSBqc2Nf
dmFsdWVfdG9fc3RyaW5nIChyZXN1bHQpOwogICAgZ19wcmludCAoIlBhdGg6ICVzXG4iLCByZXN1
bHRfc3RyaW5nKTsKCiAgICByZXR1cm4gMDsKfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>