<?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>79125</bug_id>
          
          <creation_ts>2012-02-21 10:38:46 -0800</creation_ts>
          <short_desc>CachedScriptSourceProvider::getRange can unnecessarily make a full copy of the source</short_desc>
          <delta_ts>2012-05-07 11:50:24 -0700</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 JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>81466</dup_id>
          
          <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="Yong Li">yong.li.webkit</reporter>
          <assigned_to name="Yong Li">yong.li.webkit</assigned_to>
          <cc>barraclough</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>msaboff</cc>
    
    <cc>pnormand</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>561008</commentid>
    <comment_count>0</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-02-21 10:38:46 -0800</bug_when>
    <thetext>JSC::UString getRange(int start, int end) should share the existing StringImpl when it is asked to return the full range.

patch is forthcoming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561026</commentid>
    <comment_count>1</comment_count>
      <attachid>127998</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-02-21 10:53:50 -0800</bug_when>
    <thetext>Created attachment 127998
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561033</commentid>
    <comment_count>2</comment_count>
      <attachid>127998</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-21 10:57:44 -0800</bug_when>
    <thetext>Comment on attachment 127998
the patch

Attachment 127998 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11562167</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561037</commentid>
    <comment_count>3</comment_count>
      <attachid>127998</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-21 11:00:34 -0800</bug_when>
    <thetext>Comment on attachment 127998
the patch

Attachment 127998 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11562168</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561045</commentid>
    <comment_count>4</comment_count>
      <attachid>128001</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-02-21 11:05:37 -0800</bug_when>
    <thetext>Created attachment 128001
Try again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561154</commentid>
    <comment_count>5</comment_count>
      <attachid>128001</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-02-21 12:51:53 -0800</bug_when>
    <thetext>Comment on attachment 128001
Try again

Actually I can make it better</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561156</commentid>
    <comment_count>6</comment_count>
      <attachid>128026</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-02-21 12:53:30 -0800</bug_when>
    <thetext>Created attachment 128026
another try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561168</commentid>
    <comment_count>7</comment_count>
      <attachid>128031</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-02-21 13:09:49 -0800</bug_when>
    <thetext>Created attachment 128031
updated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561995</commentid>
    <comment_count>8</comment_count>
      <attachid>128219</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-02-22 08:27:00 -0800</bug_when>
    <thetext>Created attachment 128219
More

Prevent CachedScript from resetting m_script when its string buffer is still referenced by others because doing so won&apos;t save any memory but cause extra memory usage if scritp() is called on the CachedScript afterwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563089</commentid>
    <comment_count>9</comment_count>
      <attachid>128219</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-02-23 06:54:00 -0800</bug_when>
    <thetext>Comment on attachment 128219
More

The change in CachedScript may be unnecessary and also uncomplete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563090</commentid>
    <comment_count>10</comment_count>
      <attachid>128031</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-02-23 06:54:27 -0800</bug_when>
    <thetext>Comment on attachment 128031
updated

Go back to this simple change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615369</commentid>
    <comment_count>11</comment_count>
      <attachid>140039</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-05-03 10:06:06 -0700</bug_when>
    <thetext>Created attachment 140039
new patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615375</commentid>
    <comment_count>12</comment_count>
      <attachid>140039</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-03 10:10:47 -0700</bug_when>
    <thetext>Comment on attachment 140039
new patch

Don&apos;t we have a String::substring() or StringImpl::substring() call which would do this optimization for us?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615390</commentid>
    <comment_count>13</comment_count>
      <attachid>140039</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-03 10:33:40 -0700</bug_when>
    <thetext>Comment on attachment 140039
new patch

Attachment 140039 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12606210</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615393</commentid>
    <comment_count>14</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-05-03 10:39:52 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 140039 [details])
&gt; Don&apos;t we have a String::substring() or StringImpl::substring() call which would do this optimization for us?

Yes we do. My previous patch uses substringSharingImpl(). But I feel it is a little bit confusing because it hints that, no matter where the substring is, it would always share the original buffer. That might or might not be good, because the CachedScript will destroy decoded script. Actually substringSharingImpl() creates new copy if the substring is not the full string. But the name isn&apos;t so accurate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615735</commentid>
    <comment_count>15</comment_count>
      <attachid>140039</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-03 15:57:28 -0700</bug_when>
    <thetext>Comment on attachment 140039
new patch

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

&gt; Source/WebCore/bindings/js/CachedScriptSourceProvider.h:59
&gt;              ASSERT(start + length &lt;= this-&gt;length());
&gt;  
&gt;              String script = m_cachedScript-&gt;script();
&gt; +
&gt; +            if (!start &amp;&amp; length == script.length())
&gt; +                return stringToUString(script);
&gt; +
&gt;              return JSC::UString(StringImpl::create(script.impl(), start, length));

This whole thing can be done as a one-liner, without all those assertions, using the substring function, which already correctly optimizes the case of a range covering the entire string.

    return stringToUString(m_cachedScript-&gt;script().substring(start, end - start));

&gt; Source/WebCore/bindings/js/StringSourceProvider.h:54
&gt;              ASSERT(length &gt;= 0);
&gt;              ASSERT(start + length &lt;= this-&gt;length());
&gt;  
&gt; +            if (!start &amp;&amp; length == m_source.length())
&gt; +                return stringToUString(m_source);
&gt; +
&gt;              return JSC::UString(StringImpl::create(m_source.impl(), start, length));

Same here:

    return stringToUString(m_source.substring(start, end - start));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616268</commentid>
    <comment_count>16</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-05-04 08:57:30 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 140039 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140039&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/CachedScriptSourceProvider.h:59
&gt; &gt;              ASSERT(start + length &lt;= this-&gt;length());
&gt; &gt;  
&gt; &gt;              String script = m_cachedScript-&gt;script();
&gt; &gt; +
&gt; &gt; +            if (!start &amp;&amp; length == script.length())
&gt; &gt; +                return stringToUString(script);
&gt; &gt; +
&gt; &gt;              return JSC::UString(StringImpl::create(script.impl(), start, length));
&gt; 
&gt; This whole thing can be done as a one-liner, without all those assertions, using the substring function, which already correctly optimizes the case of a range covering the entire string.
&gt; 
&gt;     return stringToUString(m_cachedScript-&gt;script().substring(start, end - start));
&gt; 


Hm... Didn&apos;t realize substring() can do that since some day.

substring() also does sanity checks. so no need for those asserts now. patch is forthcoming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616269</commentid>
    <comment_count>17</comment_count>
      <attachid>140246</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-05-04 08:58:05 -0700</bug_when>
    <thetext>Created attachment 140246
use substring() now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616275</commentid>
    <comment_count>18</comment_count>
      <attachid>140247</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-05-04 09:00:43 -0700</bug_when>
    <thetext>Created attachment 140247
substring()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617785</commentid>
    <comment_count>19</comment_count>
      <attachid>140247</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-05-07 11:49:53 -0700</bug_when>
    <thetext>Comment on attachment 140247
substring()

Actually the issue has been fixed with the latest code:

http://trac.webkit.org/changeset/111358
Bug 81466</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617787</commentid>
    <comment_count>20</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-05-07 11:50:24 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 81466 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127998</attachid>
            <date>2012-02-21 10:53:50 -0800</date>
            <delta_ts>2012-02-21 11:05:37 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>79125.patch</filename>
            <type>text/plain</type>
            <size>1821</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZGU0YTI0Li5iZjA0ODMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTkg
QEAKLTIwMTItMDItMjEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
MjAxMi0wMi0yMSAgWW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KKworICAgICAgICBDYWNoZWRTY3Jp
cHRTb3VyY2VQcm92aWRlcjo6Z2V0UmFuZ2UgY2FuIHVubmVjZXNzYXJpbHkgbWFrZSBhIGZ1bGwg
Y29weSBvZiB0aGUgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03OTEyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSBTdHJpbmc6OnN1YnN0cmluZygpIHRvIGdldCB0aGUgcmFuZ2Ugc28gaXQg
d2lsbCBzaGFyZSB0aGUgZXhpc3RpbmcgYnVmZmVyCisgICAgICAgIHdoZW4gYmVpbmcgYXNrZWQg
dG8gcmV0dXJuIHRoZSBmdWxsIHJhbmdlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlcjo6Z2V0UmFuZ2UpOgorCiswMTItMDItMjEgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYkF1ZGlvIGJ1
aWxkIGlzIGJyb2tlbgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzkxMTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNo
ZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCmluZGV4IGIwYjZhYzkuLmM4YTQwZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJv
dmlkZXIuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICB9CiAKLSAgICAg
ICAgSlNDOjpVU3RyaW5nIGdldFJhbmdlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QgeyByZXR1
cm4gSlNDOjpVU3RyaW5nKG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQoKS5jaGFyYWN0ZXJzKCkgKyBz
dGFydCwgZW5kIC0gc3RhcnQpOyB9CisgICAgICAgIEpTQzo6VVN0cmluZyBnZXRSYW5nZShpbnQg
c3RhcnQsIGludCBlbmQpIGNvbnN0IHsgcmV0dXJuIHVzdHJpbmdUb1N0cmluZyhtX2NhY2hlZFNj
cmlwdC0+c2NyaXB0KCkuc3Vic3RyaW5nKHN0YXJ0LCBlbmQgLSBzdGFydCkpOyB9CiAgICAgICAg
IGNvbnN0IFN0cmluZ0ltcGwqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC0+
c2NyaXB0KCkuaW1wbCgpOyB9CiAgICAgICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBt
X2NhY2hlZFNjcmlwdC0+c2NyaXB0KCkubGVuZ3RoKCk7IH0KICAgICAgICAgY29uc3QgU3RyaW5n
JiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC0+c2NyaXB0KCk7IH0K
</data>
<flag name="commit-queue"
          id="130278"
          type_id="3"
          status="-"
          setter="pnormand"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128001</attachid>
            <date>2012-02-21 11:05:37 -0800</date>
            <delta_ts>2012-02-21 12:51:53 -0800</delta_ts>
            <desc>Try again</desc>
            <filename>79125.patch</filename>
            <type>text/plain</type>
            <size>1821</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZGU0YTI0Li5iZjA0ODMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTkg
QEAKLTIwMTItMDItMjEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
MjAxMi0wMi0yMSAgWW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KKworICAgICAgICBDYWNoZWRTY3Jp
cHRTb3VyY2VQcm92aWRlcjo6Z2V0UmFuZ2UgY2FuIHVubmVjZXNzYXJpbHkgbWFrZSBhIGZ1bGwg
Y29weSBvZiB0aGUgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03OTEyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSBTdHJpbmc6OnN1YnN0cmluZygpIHRvIGdldCB0aGUgcmFuZ2Ugc28gaXQg
d2lsbCBzaGFyZSB0aGUgZXhpc3RpbmcgYnVmZmVyCisgICAgICAgIHdoZW4gYmVpbmcgYXNrZWQg
dG8gcmV0dXJuIHRoZSBmdWxsIHJhbmdlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IHRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlcjo6Z2V0UmFuZ2UpOgorCiswMTItMDItMjEgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYkF1ZGlvIGJ1
aWxkIGlzIGJyb2tlbgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzkxMTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNo
ZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCmluZGV4IGIwYjZhYzkuLmM4YTQwZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJv
dmlkZXIuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICB9CiAKLSAgICAg
ICAgSlNDOjpVU3RyaW5nIGdldFJhbmdlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QgeyByZXR1
cm4gSlNDOjpVU3RyaW5nKG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQoKS5jaGFyYWN0ZXJzKCkgKyBz
dGFydCwgZW5kIC0gc3RhcnQpOyB9CisgICAgICAgIEpTQzo6VVN0cmluZyBnZXRSYW5nZShpbnQg
c3RhcnQsIGludCBlbmQpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ1RvVVN0cmluZyhtX2NhY2hlZFNj
cmlwdC0+c2NyaXB0KCkuc3Vic3RyaW5nKHN0YXJ0LCBlbmQgLSBzdGFydCkpOyB9CiAgICAgICAg
IGNvbnN0IFN0cmluZ0ltcGwqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC0+
c2NyaXB0KCkuaW1wbCgpOyB9CiAgICAgICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBt
X2NhY2hlZFNjcmlwdC0+c2NyaXB0KCkubGVuZ3RoKCk7IH0KICAgICAgICAgY29uc3QgU3RyaW5n
JiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC0+c2NyaXB0KCk7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128026</attachid>
            <date>2012-02-21 12:53:30 -0800</date>
            <delta_ts>2012-02-21 13:00:14 -0800</delta_ts>
            <desc>another try</desc>
            <filename>79125.patch</filename>
            <type>text/plain</type>
            <size>1760</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZGU0YTI0Li5iZjA0ODMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTkg
QEAKLTIwMTItMDItMjEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
MjAxMi0wMi0yMSAgWW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KKworICAgICAgICBDYWNoZWRTY3Jp
cHRTb3VyY2VQcm92aWRlcjo6Z2V0UmFuZ2Ugc2hvdWxkIHNoYXJlIHRoZSBleGlzdGluZyBzdHJp
bmcgYnVmZmVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzkxMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgVVN0cmluZzo6c3Vic3RyaW5nU2hhcmluZ0ltcGwoKSB0byBzaGFyZSB0aGUgZXhpc3Rp
bmcgYnVmZmVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGZ1
bmN0aW9uYWwgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNv
dXJjZVByb3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTY3JpcHRTb3VyY2VQcm92
aWRlcjo6Z2V0UmFuZ2UpOgorCiswMTItMDItMjEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYkF1ZGlvIGJ1aWxkIGlzIGJyb2tlbgog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxMTMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oCmluZGV4IGIwYjZhYzkuLmM4YTQwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaApAQCAtNDUs
NyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBtX2NhY2hlZFNjcmlw
dC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICB9CiAKLSAgICAgICAgSlNDOjpVU3RyaW5n
IGdldFJhbmdlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QgeyByZXR1cm4gSlNDOjpVU3RyaW5n
KG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQoKS5jaGFyYWN0ZXJzKCkgKyBzdGFydCwgZW5kIC0gc3Rh
cnQpOyB9CisgICAgICAgIEpTQzo6VVN0cmluZyBnZXRSYW5nZShpbnQgc3RhcnQsIGludCBlbmQp
IGNvbnN0IHsgcmV0dXJuIHN0cmluZ1RvVVN0cmluZyhtX2NhY2hlZFNjcmlwdC0+c2NyaXB0KCkp
LnN1YnN0cmluZ1NoYXJpbmdJbXBsKHN0YXJ0LCBlbmQgLSBzdGFydCk7IH0KICAgICAgICAgY29u
c3QgU3RyaW5nSW1wbCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LT5zY3Jp
cHQoKS5pbXBsKCk7IH0KICAgICAgICAgaW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY2Fj
aGVkU2NyaXB0LT5zY3JpcHQoKS5sZW5ndGgoKTsgfQogICAgICAgICBjb25zdCBTdHJpbmcmIHNv
dXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQoKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128031</attachid>
            <date>2012-02-21 13:09:49 -0800</date>
            <delta_ts>2012-05-01 09:13:57 -0700</delta_ts>
            <desc>updated</desc>
            <filename>79125.patch</filename>
            <type>text/plain</type>
            <size>1811</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZGU0YTI0Li5mNjdjYTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTkg
QEAKLTIwMTItMDItMjEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
MjAxMi0wMi0yMSAgWW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KKworICAgICAgICBDYWNoZWRTY3Jp
cHRTb3VyY2VQcm92aWRlcjo6Z2V0UmFuZ2Ugc2hvdWxkIHNoYXJlIHRoZSBleGlzdGluZyBzdHJp
bmcgYnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03OTEyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBVU3RyaW5nOjpzdWJzdHJpbmdTaGFyaW5nSW1wbCgpIHRvIHNoYXJlIHRoZSBleGlzdGlu
ZyBzdHJpbmcgYnVmZmVyIGFzIGlzIGRvbmUKKyAgICAgICAgaW4gVVN0cmluZ1NvdXJjZVByb3Zp
ZGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGZ1bmN0aW9u
YWwgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVBy
b3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcjo6
Z2V0UmFuZ2UpOgorCiswMTItMDItMjEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYkF1ZGlvIGJ1aWxkIGlzIGJyb2tlbgogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxMTMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRl
ci5oCmluZGV4IGIwYjZhYzkuLjMzMTk4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaApAQCAtNDUsNyArNDUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBtX2NhY2hlZFNjcmlwdC0+cmVt
b3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICB9CiAKLSAgICAgICAgSlNDOjpVU3RyaW5nIGdldFJh
bmdlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QgeyByZXR1cm4gSlNDOjpVU3RyaW5nKG1fY2Fj
aGVkU2NyaXB0LT5zY3JpcHQoKS5jaGFyYWN0ZXJzKCkgKyBzdGFydCwgZW5kIC0gc3RhcnQpOyB9
CisgICAgICAgIEpTQzo6VVN0cmluZyBnZXRSYW5nZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0
IHsgcmV0dXJuIHN0cmluZ1RvVVN0cmluZyhtX2NhY2hlZFNjcmlwdC0+c2NyaXB0KCkpLnN1YnN0
cmluZ1NoYXJpbmdJbXBsKHN0YXJ0LCBlbmQgLSBzdGFydCk7IH0KICAgICAgICAgY29uc3QgU3Ry
aW5nSW1wbCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQoKS5p
bXBsKCk7IH0KICAgICAgICAgaW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2Ny
aXB0LT5zY3JpcHQoKS5sZW5ndGgoKTsgfQogICAgICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQoKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128219</attachid>
            <date>2012-02-22 08:27:00 -0800</date>
            <delta_ts>2012-02-23 06:54:00 -0800</delta_ts>
            <desc>More</desc>
            <filename>79125.patch</filename>
            <type>text/plain</type>
            <size>2923</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ZWYzYWM3Li44NDE3ZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDItMjEgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXI6OmdldFJhbmdlIHNob3VsZCBzaGFyZSB0aGUgZXhpc3Rpbmcg
c3RyaW5nIGJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzkxMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVc2UgVVN0cmluZzo6c3Vic3RyaW5nU2hhcmluZ0ltcGwoKSB0byBzaGFyZSB0aGUgZXhp
c3Rpbmcgc3RyaW5nIGJ1ZmZlciBhcyBpcyBkb25lCisgICAgICAgIGluIFVTdHJpbmdTb3VyY2VQ
cm92aWRlci4gQWxzbyBwcmV2ZW50IENhY2hlU2NyaXB0IGZyb20gZGVzdHJveW5nIHRoZSBzY3Jp
cHQgd2hlbgorICAgICAgICBpdCBpcyBzdGlsbCByZWZlcmVuY2VkIGJ5IG90aGVycy4gRGVzdHJv
eWluZyB0aGUgc2NyaXB0IGluIHN1Y2ggY2FzZSB3aWxsIG5vdCBzYXZlCisgICAgICAgIG1lbW9y
eSBidXQgY2F1c2UgZXh0cmEgbWVtb3J5IHVzYWdlIHdoZW4gc2NyaXB0KCkgaXMgY2FsbGVkIGFn
YWluIG9uIHRoZSBDYWNoZWRTY3JpcHQuCisgICAgICAgIElkZWFsbHkgdGhpcyBzaG91bGQgYmUg
ZG9uZSB3aXRoIHdlYWsgcG9pbnRlciwgYnV0IFdlYktpdCBkb2Vzbid0IGhhdmUgd2VhayBwb2lu
dGVyIHlldC4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBmdW5j
dGlvbmFsIGNoYW5nZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3Vy
Y2VQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXI6OmdldFJhbmdlKTogU2hhcmUgdGhlIGV4aXN0aW5nIHN0cmluZyBidWZmZXIuCisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRTY3JpcHQ6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpOiBDbGVhciBtX3Nj
cmlwdCBvbmx5IHdoZW4gaXRzIHJlZkNvdW50IGlzIDEuCisKIDIwMTItMDItMjEgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgU2V0IFJlZmVycmVyIGhl
YWRlciBmb3IgbWVkaWEgZG93bmxvYWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaAppbmRleCBiMGI2YWM5Li4zMzE5
OGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRT
b3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNj
cmlwdFNvdXJjZVByb3ZpZGVyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKICAgICAg
ICAgfQogCi0gICAgICAgIEpTQzo6VVN0cmluZyBnZXRSYW5nZShpbnQgc3RhcnQsIGludCBlbmQp
IGNvbnN0IHsgcmV0dXJuIEpTQzo6VVN0cmluZyhtX2NhY2hlZFNjcmlwdC0+c2NyaXB0KCkuY2hh
cmFjdGVycygpICsgc3RhcnQsIGVuZCAtIHN0YXJ0KTsgfQorICAgICAgICBKU0M6OlVTdHJpbmcg
Z2V0UmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdCB7IHJldHVybiBzdHJpbmdUb1VTdHJp
bmcobV9jYWNoZWRTY3JpcHQtPnNjcmlwdCgpKS5zdWJzdHJpbmdTaGFyaW5nSW1wbChzdGFydCwg
ZW5kIC0gc3RhcnQpOyB9CiAgICAgICAgIGNvbnN0IFN0cmluZ0ltcGwqIGRhdGEoKSBjb25zdCB7
IHJldHVybiBtX2NhY2hlZFNjcmlwdC0+c2NyaXB0KCkuaW1wbCgpOyB9CiAgICAgICAgIGludCBs
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC0+c2NyaXB0KCkubGVuZ3RoKCk7
IH0KICAgICAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX2NhY2hl
ZFNjcmlwdC0+c2NyaXB0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFNjcmlwdC5jcHAKaW5kZXggOGM4M2JjYS4uYTY5ODM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTExNCw2ICsxMTQsMTYgQEAgdm9pZCBD
YWNoZWRTY3JpcHQ6OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3RhdHVzKQogCiB2b2lk
IENhY2hlZFNjcmlwdDo6ZGVzdHJveURlY29kZWREYXRhKCkKIHsKKyAgICBpZiAobV9zY3JpcHQu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fc2NyaXB0LmltcGwoKS0+
aGFzT25lUmVmKCkpIHsKKyAgICAgICAgLy8gV2UgYXJlIG5vdCB0aGUgb25seSBvd25lciBvZiB0
aGlzIHN0cmluZyBidWZmZXIuIFJlbGVhc2luZyBvdXIKKyAgICAgICAgLy8gcmVmZXJlbmNlIHdp
bGwgbm90IHNhdmUgbWVtb3J5LCBidXQgd2lsbCBjcmVhdGUgZXh0cmEgY29waWVzCisgICAgICAg
IC8vIHdoZW4gc2NyaXB0KCkgaXMgY2FsbGVkIGFnYWluLgorICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgbV9zY3JpcHQgPSBTdHJpbmcoKTsKICAgICB1bnNpZ25lZCBleHRyYVNpemUgPSAw
OwogI2lmIFVTRShKU0MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140039</attachid>
            <date>2012-05-03 10:06:06 -0700</date>
            <delta_ts>2012-05-04 09:00:43 -0700</delta_ts>
            <desc>new patch</desc>
            <filename>79125.patch</filename>
            <type>text/plain</type>
            <size>2384</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZTA0ZDIyLi4wZWUyODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDUtMDIgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXIvU3RyaW5nU291cmNlUHJvdmlkZXI6OmdldFJhbmdlIHNob3Vs
ZCBzaGFyZSB0aGUgZXhpc3Rpbmcgc3RyaW5nIGJ1ZmZlciB3aGVuIHBvc3NpYmxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTEyNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGZhc3QgcGF0aCBm
b3IgdGhlIGNhc2UgZ2V0UmFuZ2UoKSBpcyBjYWxsZWQgdG8gb2J0YWluIHRoZSB3aG9sZSBzY3Jp
cHQuCisgICAgICAgIFRoaXMgc2F2ZXMgYSBtYWxsb2MvZnJlZS9tZW1jcHkgd2hlbiBleGVjdXRp
bmcgZWFjaCBzY3JpcHQgZWxlbWVudC4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0
aGVyZSBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZXMgYW5kIGl0IGlzIGhhcmQKKyAgICAgICAgZm9y
IGEgbGF5b3V0IHRlc3QgdG8gZGV0ZWN0IHRoZSBtZW1vcnkgdXNhZ2UgYW5kIHBlcmZvcm1hbmNl
IGRpZmZlcmVuY2UuIFNvbWUKKyAgICAgICAgZGVjZW50IGxvYWRpbmcgcGVyZm9ybWFuY2UgdGVz
dHMgbWF5IGJlIGFibGUgdG8gZG8gc28uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXI6OmdldFJhbmdlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3Vy
Y2VQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0U291cmNlUHJvdmlkZXI6Omdl
dFJhbmdlKToKKwogMjAxMi0wNS0wMSAgSWdvciBPbGl2ZWlyYSAgPGlnb3Iub0BzaXNhLnNhbXN1
bmcuY29tPgogCiAgICAgICAgIFVzZSBIYXNoTWFwPE93blB0cj4gZm9yIENvdW50ZXJNYXAgaW4g
UmVuZGVyQ291bnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2Fj
aGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Nh
Y2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKaW5kZXggOGVmYjQ4MS4uNTViODUxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oCkBAIC01Miw2ICs1MiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
ICAgICBBU1NFUlQoc3RhcnQgKyBsZW5ndGggPD0gdGhpcy0+bGVuZ3RoKCkpOwogCiAgICAgICAg
ICAgICBTdHJpbmcgc2NyaXB0ID0gbV9jYWNoZWRTY3JpcHQtPnNjcmlwdCgpOworCisgICAgICAg
ICAgICBpZiAoIXN0YXJ0ICYmIGxlbmd0aCA9PSBzY3JpcHQubGVuZ3RoKCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHN0cmluZ1RvVVN0cmluZyhzY3JpcHQpOworCiAgICAgICAgICAgICByZXR1
cm4gSlNDOjpVU3RyaW5nKFN0cmluZ0ltcGw6OmNyZWF0ZShzY3JpcHQuaW1wbCgpLCBzdGFydCwg
bGVuZ3RoKSk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1N0cmluZ1NvdXJjZVByb3ZpZGVyLmgKaW5kZXggOGI2NzE4OC4uYjc0MmM1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92aWRlci5oCkBAIC00
OCw2ICs0OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIEFTU0VSVChsZW5n
dGggPj0gMCk7CiAgICAgICAgICAgICBBU1NFUlQoc3RhcnQgKyBsZW5ndGggPD0gdGhpcy0+bGVu
Z3RoKCkpOwogCisgICAgICAgICAgICBpZiAoIXN0YXJ0ICYmIGxlbmd0aCA9PSBtX3NvdXJjZS5s
ZW5ndGgoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nVG9VU3RyaW5nKG1fc291cmNl
KTsKKwogICAgICAgICAgICAgcmV0dXJuIEpTQzo6VVN0cmluZyhTdHJpbmdJbXBsOjpjcmVhdGUo
bV9zb3VyY2UuaW1wbCgpLCBzdGFydCwgbGVuZ3RoKSk7CiAgICAgICAgIH0KIAo=
</data>
<flag name="review"
          id="145792"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="145797"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140246</attachid>
            <date>2012-05-04 08:58:05 -0700</date>
            <delta_ts>2012-05-04 08:58:31 -0700</delta_ts>
            <desc>use substring() now</desc>
            <filename>79125.patch</filename>
            <type>text/plain</type>
            <size>2777</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZTA0ZDIyLi4wZWUyODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDUtMDIgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXIvU3RyaW5nU291cmNlUHJvdmlkZXI6OmdldFJhbmdlIHNob3Vs
ZCBzaGFyZSB0aGUgZXhpc3Rpbmcgc3RyaW5nIGJ1ZmZlciB3aGVuIHBvc3NpYmxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTEyNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGZhc3QgcGF0aCBm
b3IgdGhlIGNhc2UgZ2V0UmFuZ2UoKSBpcyBjYWxsZWQgdG8gb2J0YWluIHRoZSB3aG9sZSBzY3Jp
cHQuCisgICAgICAgIFRoaXMgc2F2ZXMgYSBtYWxsb2MvZnJlZS9tZW1jcHkgd2hlbiBleGVjdXRp
bmcgZWFjaCBzY3JpcHQgZWxlbWVudC4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0
aGVyZSBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZXMgYW5kIGl0IGlzIGhhcmQKKyAgICAgICAgZm9y
IGEgbGF5b3V0IHRlc3QgdG8gZGV0ZWN0IHRoZSBtZW1vcnkgdXNhZ2UgYW5kIHBlcmZvcm1hbmNl
IGRpZmZlcmVuY2UuIFNvbWUKKyAgICAgICAgZGVjZW50IGxvYWRpbmcgcGVyZm9ybWFuY2UgdGVz
dHMgbWF5IGJlIGFibGUgdG8gZG8gc28uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXI6OmdldFJhbmdlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3Vy
Y2VQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0U291cmNlUHJvdmlkZXI6Omdl
dFJhbmdlKToKKwogMjAxMi0wNS0wMSAgSWdvciBPbGl2ZWlyYSAgPGlnb3Iub0BzaXNhLnNhbXN1
bmcuY29tPgogCiAgICAgICAgIFVzZSBIYXNoTWFwPE93blB0cj4gZm9yIENvdW50ZXJNYXAgaW4g
UmVuZGVyQ291bnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2Fj
aGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Nh
Y2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKaW5kZXggOGVmYjQ4MS4uZmY2YjQyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oCkBAIC00NywxMiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAg
ICAgdmlydHVhbCBKU0M6OlVTdHJpbmcgZ2V0UmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25z
dCBPVkVSUklERQogICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgbGVuZ3RoID0gZW5kIC0gc3Rh
cnQ7Ci0gICAgICAgICAgICBBU1NFUlQobGVuZ3RoID49IDApOwotICAgICAgICAgICAgQVNTRVJU
KHN0YXJ0ICsgbGVuZ3RoIDw9IHRoaXMtPmxlbmd0aCgpKTsKLQotICAgICAgICAgICAgU3RyaW5n
IHNjcmlwdCA9IG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQoKTsKLSAgICAgICAgICAgIHJldHVybiBK
U0M6OlVTdHJpbmcoU3RyaW5nSW1wbDo6Y3JlYXRlKHNjcmlwdC5pbXBsKCksIHN0YXJ0LCBsZW5n
dGgpKTsKKyAgICAgICAgICAgIHJldHVybiBzdHJpbmdUb1VTdHJpbmcobV9jYWNoZWRTY3JpcHQt
PnNjcmlwdCgpLnN1YnN0cmluZyhzdGFydCwgZW5kIC0gc3RhcnQpKTsKICAgICAgICAgfQogCiAg
ICAgICAgIGNvbnN0IFN0cmluZ0ltcGwqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNj
cmlwdC0+c2NyaXB0KCkuaW1wbCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU3RyaW5nU291cmNlUHJvdmlkZXIuaAppbmRleCA4YjY3MTg4Li41MDk2NDkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92aWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1N0cmluZ1NvdXJjZVByb3ZpZGVyLmgKQEAg
LTQ0LDExICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIEpT
Qzo6VVN0cmluZyBnZXRSYW5nZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0IE9WRVJSSURFCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGludCBsZW5ndGggPSBlbmQgLSBzdGFydDsKLSAgICAgICAg
ICAgIEFTU0VSVChsZW5ndGggPj0gMCk7Ci0gICAgICAgICAgICBBU1NFUlQoc3RhcnQgKyBsZW5n
dGggPD0gdGhpcy0+bGVuZ3RoKCkpOwotCi0gICAgICAgICAgICByZXR1cm4gSlNDOjpVU3RyaW5n
KFN0cmluZ0ltcGw6OmNyZWF0ZShtX3NvdXJjZS5pbXBsKCksIHN0YXJ0LCBsZW5ndGgpKTsKKyAg
ICAgICAgICAgIHJldHVybiBzdHJpbmdUb1VTdHJpbmcobV9zb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0
LCBlbmQgLSBzdGFydCkpOwogICAgICAgICB9CiAKICAgICAgICAgY29uc3QgU3RyaW5nSW1wbCog
ZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLmltcGwoKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140247</attachid>
            <date>2012-05-04 09:00:43 -0700</date>
            <delta_ts>2012-05-07 11:49:52 -0700</delta_ts>
            <desc>substring()</desc>
            <filename>79125.patch</filename>
            <type>text/plain</type>
            <size>2764</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZTA0ZDIyLi4yYTRjYzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDUtMDIgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXIvU3RyaW5nU291cmNlUHJvdmlkZXI6OmdldFJhbmdlIHNob3Vs
ZCBzaGFyZSB0aGUgZXhpc3Rpbmcgc3RyaW5nIGJ1ZmZlciB3aGVuIHBvc3NpYmxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTEyNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBzdWJzdHJpbmcoKSBp
biBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci9TdHJpbmdTb3VyY2VQcm92aWRlcjo6Z2V0UmFu
Z2UoKSBpbnN0ZWFkCisgICAgICAgIG9mIGFsd2F5cyBtYW51YWxseSBjb25zdHJ1Y3RpbmcgYSBu
ZXcgc3RyaW5nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGZ1
bmN0aW9uYWwgY2hhbmdlcyBhbmQgaXQgaXMgaGFyZAorICAgICAgICBmb3IgYSBsYXlvdXQgdGVz
dCB0byBkZXRlY3QgdGhlIG1lbW9yeSB1c2FnZSBhbmQgcGVyZm9ybWFuY2UgZGlmZmVyZW5jZS4g
U29tZQorICAgICAgICBkZWNlbnQgbG9hZGluZyBwZXJmb3JtYW5jZSB0ZXN0cyBtYXkgYmUgYWJs
ZSB0byBkbyBzby4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVBy
b3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcjo6
Z2V0UmFuZ2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZVByb3ZpZGVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VQcm92aWRlcjo6Z2V0UmFuZ2UpOgorCiAy
MDEyLTA1LTAxICBJZ29yIE9saXZlaXJhICA8aWdvci5vQHNpc2Euc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgVXNlIEhhc2hNYXA8T3duUHRyPiBmb3IgQ291bnRlck1hcCBpbiBSZW5kZXJDb3VudGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3Vy
Y2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXIuaAppbmRleCA4ZWZiNDgxLi5mZjZiNDI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKQEAg
LTQ3LDEyICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIEpT
Qzo6VVN0cmluZyBnZXRSYW5nZShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0IE9WRVJSSURFCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGludCBsZW5ndGggPSBlbmQgLSBzdGFydDsKLSAgICAgICAg
ICAgIEFTU0VSVChsZW5ndGggPj0gMCk7Ci0gICAgICAgICAgICBBU1NFUlQoc3RhcnQgKyBsZW5n
dGggPD0gdGhpcy0+bGVuZ3RoKCkpOwotCi0gICAgICAgICAgICBTdHJpbmcgc2NyaXB0ID0gbV9j
YWNoZWRTY3JpcHQtPnNjcmlwdCgpOwotICAgICAgICAgICAgcmV0dXJuIEpTQzo6VVN0cmluZyhT
dHJpbmdJbXBsOjpjcmVhdGUoc2NyaXB0LmltcGwoKSwgc3RhcnQsIGxlbmd0aCkpOworICAgICAg
ICAgICAgcmV0dXJuIHN0cmluZ1RvVVN0cmluZyhtX2NhY2hlZFNjcmlwdC0+c2NyaXB0KCkuc3Vi
c3RyaW5nKHN0YXJ0LCBlbmQgLSBzdGFydCkpOwogICAgICAgICB9CiAKICAgICAgICAgY29uc3Qg
U3RyaW5nSW1wbCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LT5zY3JpcHQo
KS5pbXBsKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1N0cmlu
Z1NvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJpbmdTb3Vy
Y2VQcm92aWRlci5oCmluZGV4IDhiNjcxODguLjUwOTY0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1N0cmluZ1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaApAQCAtNDQsMTEgKzQ0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgSlNDOjpVU3RyaW5nIGdl
dFJhbmdlKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QgT1ZFUlJJREUKICAgICAgICAgewotICAg
ICAgICAgICAgaW50IGxlbmd0aCA9IGVuZCAtIHN0YXJ0OwotICAgICAgICAgICAgQVNTRVJUKGxl
bmd0aCA+PSAwKTsKLSAgICAgICAgICAgIEFTU0VSVChzdGFydCArIGxlbmd0aCA8PSB0aGlzLT5s
ZW5ndGgoKSk7Ci0KLSAgICAgICAgICAgIHJldHVybiBKU0M6OlVTdHJpbmcoU3RyaW5nSW1wbDo6
Y3JlYXRlKG1fc291cmNlLmltcGwoKSwgc3RhcnQsIGxlbmd0aCkpOworICAgICAgICAgICAgcmV0
dXJuIHN0cmluZ1RvVVN0cmluZyhtX3NvdXJjZS5zdWJzdHJpbmcoc3RhcnQsIGVuZCAtIHN0YXJ0
KSk7CiAgICAgICAgIH0KIAogICAgICAgICBjb25zdCBTdHJpbmdJbXBsKiBkYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2UuaW1wbCgpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>