<?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>98300</bug_id>
          
          <creation_ts>2012-10-03 14:16:09 -0700</creation_ts>
          <short_desc>OpaqueJSString doesn&apos;t optimally handle 8 bit strings</short_desc>
          <delta_ts>2022-02-27 23:24:23 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>98417</dependson>
    
    <dependson>98433</dependson>
    
    <dependson>98693</dependson>
    
    <dependson>98801</dependson>
    
    <dependson>98805</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>734024</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-10-03 14:16:09 -0700</bug_when>
    <thetext>OpaqueJSString&apos;s can be created with a String or with a UChar*, length pair.  The String version of create() will up convert an 8 bit string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734054</commentid>
    <comment_count>1</comment_count>
      <attachid>166963</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-10-03 14:45:53 -0700</bug_when>
    <thetext>Created attachment 166963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734055</commentid>
    <comment_count>2</comment_count>
      <attachid>166963</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-10-03 14:47:08 -0700</bug_when>
    <thetext>Comment on attachment 166963
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166963&amp;action=review

r=me

&gt; Source/JavaScriptCore/API/OpaqueJSString.h:67
&gt; +        // Make a copy fo the source string

Typo: should be &quot;of&quot;. Please put a period at the end of the comment sentence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734187</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-10-03 16:40:09 -0700</bug_when>
    <thetext>Committed r130344: &lt;http://trac.webkit.org/changeset/130344&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734410</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-04 00:04:04 -0700</bug_when>
    <thetext>Hi,

This patch seems to have caused a behavior change for the following code:

JSRetainPtr&lt;JSStringRef&gt; response;
response.adopt(JSStringCreateWithUTF8CString(0));
String responseString = response-&gt;string();
responseString.isNull() // Used to return true, now returns false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734420</commentid>
    <comment_count>5</comment_count>
      <attachid>166963</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-04 00:15:52 -0700</bug_when>
    <thetext>Comment on attachment 166963
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166963&amp;action=review

&gt; Source/JavaScriptCore/API/OpaqueJSString.h:62
&gt; +        m_string = emptyString();

Why this? Shouldn&apos;t m_string stay null here instead of assigning an empty string to it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734749</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-10-04 09:17:02 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 166963 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166963&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/API/OpaqueJSString.h:62
&gt; &gt; +        m_string = emptyString();
&gt; 
&gt; Why this? Shouldn&apos;t m_string stay null here instead of assigning an empty string to it?

That change is likely the cause of your problem.  I filed https://bugs.webkit.org/show_bug.cgi?id=98417 &quot;After r130344, OpaqueJSString() creates a empty string which should be a null string&quot;.  Will fix this today.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166963</attachid>
            <date>2012-10-03 14:45:53 -0700</date>
            <delta_ts>2022-02-27 23:24:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>98300.patch</filename>
            <type>text/plain</type>
            <size>3902</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMwMzI0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDEyLTEwLTAzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIE9wYXF1ZUpTU3RyaW5nIGRvZXNuJ3Qgb3B0aW1hbGx5IGhhbmRsZSA4IGJpdCBzdHJpbmdz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODMwMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBP
cGFxdWVKU1N0cmluZyB0byBzdG9yZSBhbmQgbWFuYWdlIGEgU3RyaW5nIGluc3RlYWQgb2YgYSBV
Q2hhciBidWZmZXIuCisgICAgICAgIFRoZSBtZW1iZXIgc3RyaW5nIGlzIGEgY29weSBvZiBhbnkg
c3RyaW5nIHVzZWQgZHVyaW5nIGNyZWF0aW9uLgorCisgICAgICAgICogQVBJL09wYXF1ZUpTU3Ry
aW5nLmNwcDoKKyAgICAgICAgKE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUpOgorICAgICAgICAoT3Bh
cXVlSlNTdHJpbmc6OmlkZW50aWZpZXIpOgorICAgICAgICAqIEFQSS9PcGFxdWVKU1N0cmluZy5o
OgorICAgICAgICAoT3BhcXVlSlNTdHJpbmc6OmNoYXJhY3RlcnMpOgorICAgICAgICAoT3BhcXVl
SlNTdHJpbmc6Omxlbmd0aCk6CisgICAgICAgIChPcGFxdWVKU1N0cmluZzo6c3RyaW5nKToKKyAg
ICAgICAgKE9wYXF1ZUpTU3RyaW5nOjpPcGFxdWVKU1N0cmluZyk6CisgICAgICAgIChPcGFxdWVK
U1N0cmluZyk6CisKIDIwMTItMTAtMDMgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBBcnJheS5zcGxpY2Ugc2hvdWxkIGJlIGZhc3Qgd2hlbiBpdCBpcyB1c2VkIHRv
IHJlbW92ZSBlbGVtZW50cyBvdGhlciB0aGFuIHRoZSB2ZXJ5IGZpcnN0CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpTU3RyaW5nLmNwcAkocmV2aXNpb24gMTMwMjk2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDIxICszNSwxNCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogUGFzc1Jl
ZlB0cjxPcGFxdWVKU1N0cmluZz4gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShjb25zdCBTdHJpbmcm
IHN0cmluZykKIHsKICAgICBpZiAoIXN0cmluZy5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBPcGFxdWVKU1N0cmluZyhzdHJpbmcuY2hhcmFjdGVycygpLCBzdHJpbmcubGVu
Z3RoKCkpKTsKLSAgICByZXR1cm4gMDsKLX0KLQotU3RyaW5nIE9wYXF1ZUpTU3RyaW5nOjpzdHJp
bmcoKSBjb25zdAotewotICAgIGlmICh0aGlzICYmIG1fY2hhcmFjdGVycykKLSAgICAgICAgcmV0
dXJuIFN0cmluZyhtX2NoYXJhY3RlcnMsIG1fbGVuZ3RoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgT3BhcXVlSlNTdHJpbmcoc3RyaW5nKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPcGFxdWVKU1N0cmluZygpKTsKIH0KIAogSWRlbnRpZmll
ciBPcGFxdWVKU1N0cmluZzo6aWRlbnRpZmllcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpIGNv
bnN0CiB7Ci0gICAgaWYgKCF0aGlzIHx8ICFtX2NoYXJhY3RlcnMpCisgICAgaWYgKCF0aGlzIHx8
ICFtX3N0cmluZy5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIElkZW50aWZpZXIoZ2xvYmFsRGF0
YSwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KDApKTsKIAotICAgIHJldHVybiBJZGVudGlmaWVy
KGdsb2JhbERhdGEsIG1fY2hhcmFjdGVycywgbV9sZW5ndGgpOworICAgIHJldHVybiBJZGVudGlm
aWVyKGdsb2JhbERhdGEsIG1fc3RyaW5nKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvT3BhcXVlSlNTdHJpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL09wYXF1ZUpTU3RyaW5nLmgJKHJldmlzaW9uIDEzMDI5NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsMzUg
KzQ4LDM1IEBAIHN0cnVjdCBPcGFxdWVKU1N0cmluZyA6IHB1YmxpYyBUaHJlYWRTYWYKIAogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBQYXNzUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBjcmVh
dGUoY29uc3QgU3RyaW5nJik7CiAKLSAgICBVQ2hhciogY2hhcmFjdGVycygpIHsgcmV0dXJuIHRo
aXMgPyBtX2NoYXJhY3RlcnMgOiAwOyB9Ci0gICAgdW5zaWduZWQgbGVuZ3RoKCkgeyByZXR1cm4g
dGhpcyA/IG1fbGVuZ3RoIDogMDsgfQorICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzKCkgeyBy
ZXR1cm4gISF0aGlzID8gbV9zdHJpbmcuY2hhcmFjdGVycygpIDogMDsgfQorICAgIHVuc2lnbmVk
IGxlbmd0aCgpIHsgcmV0dXJuICEhdGhpcyA/IG1fc3RyaW5nLmxlbmd0aCgpIDogMDsgfQogCi0g
ICAgU3RyaW5nIHN0cmluZygpIGNvbnN0OworICAgIFN0cmluZyBzdHJpbmcoKSBjb25zdCB7IHJl
dHVybiAhIXRoaXMgPyBtX3N0cmluZyA6IFN0cmluZygpOyB9OwogICAgIEpTQzo6SWRlbnRpZmll
ciBpZGVudGlmaWVyKEpTQzo6SlNHbG9iYWxEYXRhKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAg
ZnJpZW5kIGNsYXNzIFdURjo6VGhyZWFkU2FmZVJlZkNvdW50ZWQ8T3BhcXVlSlNTdHJpbmc+Owog
CiAgICAgT3BhcXVlSlNTdHJpbmcoKQotICAgICAgICA6IG1fY2hhcmFjdGVycygwKQotICAgICAg
ICAsIG1fbGVuZ3RoKDApCiAgICAgeworICAgICAgICBtX3N0cmluZyA9IGVtcHR5U3RyaW5nKCk7
CiAgICAgfQogCi0gICAgT3BhcXVlSlNTdHJpbmcoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCkKLSAgICAgICAgOiBtX2xlbmd0aChsZW5ndGgpCisgICAgT3BhcXVlSlNT
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgewotICAgICAgICBtX2NoYXJhY3RlcnMg
PSBuZXcgVUNoYXJbbGVuZ3RoXTsKLSAgICAgICAgbWVtY3B5KG1fY2hhcmFjdGVycywgY2hhcmFj
dGVycywgbGVuZ3RoICogc2l6ZW9mKFVDaGFyKSk7CisgICAgICAgIC8vIE1ha2UgYSBjb3B5IGZv
IHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICAgIGlmIChzdHJpbmcuaXM4Qml0KCkpCisgICAgICAg
ICAgICBtX3N0cmluZyA9IFN0cmluZyhzdHJpbmcuY2hhcmFjdGVyczgoKSwgc3RyaW5nLmxlbmd0
aCgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoc3RyaW5n
LmNoYXJhY3RlcnMxNigpLCBzdHJpbmcubGVuZ3RoKCkpOwogICAgIH0KIAotICAgIH5PcGFxdWVK
U1N0cmluZygpCisgICAgT3BhcXVlSlNTdHJpbmcoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCkKICAgICB7Ci0gICAgICAgIGRlbGV0ZVtdIG1fY2hhcmFjdGVyczsKKyAg
ICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoY2hhcmFjdGVycywgbGVuZ3RoKTsKICAgICB9CiAKLSAg
ICBVQ2hhciogbV9jaGFyYWN0ZXJzOwotICAgIHVuc2lnbmVkIG1fbGVuZ3RoOworICAgIFN0cmlu
ZyBtX3N0cmluZzsKIH07CiAKICNlbmRpZgo=
</data>
<flag name="review"
          id="179486"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>