<?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>80532</bug_id>
          
          <creation_ts>2012-03-07 12:29:08 -0800</creation_ts>
          <short_desc>Web Worker crashes with WX_EXCLUSIVE</short_desc>
          <delta_ts>2012-03-10 09:39:04 -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>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yong Li">yong.li.webkit</reporter>
          <assigned_to name="Yong Li">yong.li.webkit</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>gustavo</cc>
    
    <cc>levin+threading</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>573117</commentid>
    <comment_count>0</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-03-07 12:29:08 -0800</bug_when>
    <thetext>MetaAllocator tries to share one page for assemblies. Currently all threads share one MetaAllocator. When one thread is using a page to execute an assembly, another thread may want to write on it.

Making the allocator thread-specific for WX_EXCLUSIVE is a quick solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573166</commentid>
    <comment_count>1</comment_count>
      <attachid>130679</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-03-07 13:23:08 -0800</bug_when>
    <thetext>Created attachment 130679
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573169</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-07 13:24:52 -0800</bug_when>
    <thetext>Attachment 130679 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/jit/ExecutableAllocator.cpp:107:  g_allocator is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/jit/ExecutableAllocator.cpp:122:  g_allocator is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573172</commentid>
    <comment_count>3</comment_count>
      <attachid>130679</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-07 13:26:04 -0800</bug_when>
    <thetext>Comment on attachment 130679
the patch

Attachment 130679 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11855264</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573178</commentid>
    <comment_count>4</comment_count>
      <attachid>130679</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-03-07 13:31:59 -0800</bug_when>
    <thetext>Comment on attachment 130679
the patch

Attachment 130679 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11853279</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573222</commentid>
    <comment_count>5</comment_count>
      <attachid>130679</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-07 14:06:47 -0800</bug_when>
    <thetext>Comment on attachment 130679
the patch

Attachment 130679 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11854270</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573230</commentid>
    <comment_count>6</comment_count>
      <attachid>130679</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-07 14:14:57 -0800</bug_when>
    <thetext>Comment on attachment 130679
the patch

Attachment 130679 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11849377</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573297</commentid>
    <comment_count>7</comment_count>
      <attachid>130710</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-03-07 15:22:27 -0800</bug_when>
    <thetext>Created attachment 130710
the correct patch

The previous patch was actually an obsolete one that never worked</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573301</commentid>
    <comment_count>8</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-03-07 15:25:17 -0800</bug_when>
    <thetext>Darn... Some implementations of TCMalloc_SpinLock has Finalize, and some don&apos;t...

Can we just use Mutex defined in ThreadingPrimitives.h?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573329</commentid>
    <comment_count>9</comment_count>
      <attachid>130710</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-07 15:56:56 -0800</bug_when>
    <thetext>Comment on attachment 130710
the correct patch

Attachment 130710 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11850444</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573359</commentid>
    <comment_count>10</comment_count>
      <attachid>130710</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-07 16:41:00 -0800</bug_when>
    <thetext>Comment on attachment 130710
the correct patch

This would break JavaScriptCore.

A JSC VM instance may be used from multiple threads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573804</commentid>
    <comment_count>11</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-03-08 06:52:25 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 130710 [details])
&gt; This would break JavaScriptCore.
&gt; 
&gt; A JSC VM instance may be used from multiple threads.

Then any suggestion about how to recover the ASSEMBLER_WX_EXCLUSIVE?

Can I wrap the code with something like #if ENABLE(ASSEMBLER_WX_EXCLUSIVE) &amp;&amp; USE(JSC_SINGLE_THREADED)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574263</commentid>
    <comment_count>12</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-08 15:00:33 -0800</bug_when>
    <thetext>Phil,

I guess fixing this would mean splitting the ExecutableAllocator to be tiered into a have a locked, global page allocation, and a per-global-data sub page allocation pool.  What do you think?

G.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574297</commentid>
    <comment_count>13</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-08 15:20:20 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Phil,
&gt; 
&gt; I guess fixing this would mean splitting the ExecutableAllocator to be tiered into a have a locked, global page allocation, and a per-global-data sub page allocation pool.  What do you think?
&gt; 
&gt; G.

I tend to think that WX_EXCLUSIVE should just be thread safe.  Is there any reason why it cannot be?

The MetaAllocator has a simple thread safety contract: it protects itself with a lock.  Hence once its code runs, we know that we&apos;re serialized.

If WX_EXCLUSIVE needs to do additional things, it should also protect itself with a lock - either the MetaAllocator&apos;s lock or a different one.  Probably doesn&apos;t matter.

I don&apos;t buy that we should be splitting the executable memory allocator into separate memory allocators.  This just increases fragmentation, which is what we are trying to avoid at all costs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574299</commentid>
    <comment_count>14</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-08 15:21:05 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; MetaAllocator tries to share one page for assemblies. Currently all threads share one MetaAllocator. When one thread is using a page to execute an assembly, another thread may want to write on it.
&gt; 
&gt; Making the allocator thread-specific for WX_EXCLUSIVE is a quick solution.

I think for this code I would prefer that we do the right solution, rather than the quick one, though see my comment below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574300</commentid>
    <comment_count>15</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-08 15:21:26 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 130710 [details] [details])
&gt; &gt; This would break JavaScriptCore.
&gt; &gt; 
&gt; &gt; A JSC VM instance may be used from multiple threads.
&gt; 
&gt; Then any suggestion about how to recover the ASSEMBLER_WX_EXCLUSIVE?
&gt; 
&gt; Can I wrap the code with something like #if ENABLE(ASSEMBLER_WX_EXCLUSIVE) &amp;&amp; USE(JSC_SINGLE_THREADED)?

I would be OK with this, but please open a bug about making WX_EXCLUSIVE thread safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574879</commentid>
    <comment_count>16</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-03-09 07:15:41 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #11)
&gt; &gt; (In reply to comment #10)
&gt; &gt; &gt; (From update of attachment 130710 [details] [details] [details])
&gt; &gt; &gt; This would break JavaScriptCore.
&gt; &gt; &gt; 
&gt; &gt; &gt; A JSC VM instance may be used from multiple threads.
&gt; &gt; 
&gt; &gt; Then any suggestion about how to recover the ASSEMBLER_WX_EXCLUSIVE?
&gt; &gt; 
&gt; &gt; Can I wrap the code with something like #if ENABLE(ASSEMBLER_WX_EXCLUSIVE) &amp;&amp; USE(JSC_SINGLE_THREADED)?
&gt; 
&gt; I would be OK with this, but please open a bug about making WX_EXCLUSIVE thread safe.

Was WX_EXCLUSIVE ever thread-safe?

1) If not, then wrapping with another #define seems not necessary.
2) If yes, I&apos;m thinking we can make every global object own a MetaAllocator. So the global object is still thread-safe, and there is no conflict from web worker. Do you think this is right thing to do?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575065</commentid>
    <comment_count>17</comment_count>
      <attachid>131071</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-03-09 12:16:27 -0800</bug_when>
    <thetext>Created attachment 131071
For WX_EXCLUSIVE, let each global object own a meta allocator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575084</commentid>
    <comment_count>18</comment_count>
      <attachid>131074</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-03-09 12:38:43 -0800</bug_when>
    <thetext>Created attachment 131074
One MetaAllocator per JS global object (only for WX_EXCLUSIVE)

Had to add a dtor and put it to the cpp file otherwise OwnPtr doesn&apos;t know how to delete DemandExecutableAllocator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575091</commentid>
    <comment_count>19</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-09 12:43:09 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; (In reply to comment #10)
&gt; &gt; &gt; &gt; (From update of attachment 130710 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; This would break JavaScriptCore.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; A JSC VM instance may be used from multiple threads.
&gt; &gt; &gt; 
&gt; &gt; &gt; Then any suggestion about how to recover the ASSEMBLER_WX_EXCLUSIVE?
&gt; &gt; &gt; 
&gt; &gt; &gt; Can I wrap the code with something like #if ENABLE(ASSEMBLER_WX_EXCLUSIVE) &amp;&amp; USE(JSC_SINGLE_THREADED)?
&gt; &gt; 
&gt; &gt; I would be OK with this, but please open a bug about making WX_EXCLUSIVE thread safe.
&gt; 
&gt; Was WX_EXCLUSIVE ever thread-safe?

Yes, because the old allocator would put each piece of code onto a separate page.

&gt; 
&gt; 1) If not, then wrapping with another #define seems not necessary.
&gt; 2) If yes, I&apos;m thinking we can make every global object own a MetaAllocator. So the global object is still thread-safe, and there is no conflict from web worker. Do you think this is right thing to do?

I don&apos;t understand why you think this is an easier solution than putting a lock around methods that do the work of WX_EXCLUSIVE.  That seems so much easier and will result in a smaller patch.  Can you explain why you did not do it that way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575104</commentid>
    <comment_count>20</comment_count>
      <attachid>131080</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-03-09 12:52:50 -0800</bug_when>
    <thetext>Created attachment 131080
fix build error for ExecutableAllocatorFixedVMPool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575175</commentid>
    <comment_count>21</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-09 13:47:05 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; I don&apos;t understand why you think this is an easier solution than putting a lock around methods that do the work of WX_EXCLUSIVE.  That seems so much easier and will result in a smaller patch.  Can you explain why you did not do it that way?

Is this the whole problem?  I was thinking we had a scenario where:

Thread A is allocated space on page X.
Thread A makes page X writable.
Thread A generates code on page X.
Thread A makes page X executable.
Thread A starts running code on page X.
Thread B is allocated space on page X.
Thread B makes page X writable.
Thread A crashes.

Just locking the region in with the writable/executable permissions are changed doesn&apos;t seem to be enough, you&apos;d need to interrupt other running threads, wouldn&apos;t you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575213</commentid>
    <comment_count>22</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-09 14:16:39 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #19)
&gt; &gt; I don&apos;t understand why you think this is an easier solution than putting a lock around methods that do the work of WX_EXCLUSIVE.  That seems so much easier and will result in a smaller patch.  Can you explain why you did not do it that way?
&gt; 
&gt; Is this the whole problem?  I was thinking we had a scenario where:
&gt; 
&gt; Thread A is allocated space on page X.
&gt; Thread A makes page X writable.
&gt; Thread A generates code on page X.
&gt; Thread A makes page X executable.
&gt; Thread A starts running code on page X.
&gt; Thread B is allocated space on page X.
&gt; Thread B makes page X writable.
&gt; Thread A crashes.
&gt; 
&gt; Just locking the region in with the writable/executable permissions are changed doesn&apos;t seem to be enough, you&apos;d need to interrupt other running threads, wouldn&apos;t you?

Ahh!  Good point.  I forgot that WX_EXCLUSIVE meant flipping pages from exec-only to write-only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575528</commentid>
    <comment_count>23</comment_count>
      <attachid>131080</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-10 09:38:59 -0800</bug_when>
    <thetext>Comment on attachment 131080
fix build error for ExecutableAllocatorFixedVMPool

Clearing flags on attachment: 131080

Committed r110379: &lt;http://trac.webkit.org/changeset/110379&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575529</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-10 09:39:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130679</attachid>
            <date>2012-03-07 13:23:08 -0800</date>
            <delta_ts>2012-03-07 14:16:40 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>80532.patch</filename>
            <type>text/plain</type>
            <size>5314</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDUzMTRlMjMuLjM3YmUxNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTA3ICBZb25nIExpICA8eW9s
aUByaW0uY29tPgorCisgICAgICAgIFdlYiBXb3JrZXIgY3Jhc2hlcyB3aXRoIEFTU0VNQkxFUl9X
WF9FWENMVVNJVkUgb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgwNTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFrZSBFeGVjdXRhYmxlQWxsb2NhdG9yJ3MgaW50ZXJuYWwgTWV0YUFsbG9jYXRvciB0
aHJlYWQtc3BlY2lmaWMgZm9yIEFTU0VNQkxFUl9XWF9FWENMVVNJVkUKKyAgICAgICAgdG8gYXZv
aWQgY29uZmxpY3RzIGJldHdlZW4gdGhyZWFkcy4KKyAgICAgICAgQWxzbyBmaXggYSBtdXRleCBs
ZWFrIGluIE1ldGFBbGxvY2F0b3IncyBkZXN0cnVjdG9yLgorCisgICAgICAgICogaml0L0V4ZWN1
dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6YWxsb2Nh
dG9yKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6aW5pdGlhbGl6ZUFsbG9j
YXRvcik6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OkV4ZWN1dGFibGVBbGxv
Y2F0b3IpOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVBy
ZXNzdXJlKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1
cmVNdWx0aXBsaWVyKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2Nh
dGUpOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpjb21taXR0ZWRCeXRlQ291
bnQpOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpkdW1wUHJvZmlsZSk6Cisg
ICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuaDoKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRv
cjo6fk1ldGFBbGxvY2F0b3IpOiBEZXN0cm95IHRoZSBtdXRleC4KKwogMjAxMi0wMy0wNyAgU2lt
b24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgQVJNIGJ1
aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJs
ZUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxv
Y2F0b3IuY3BwCmluZGV4IDFhZjFmNDIuLmVlZDE2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcApAQCAtMzMsNiArMzMsMTAgQEAK
ICNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9QYWdlUmVzZXJ2
YXRpb24uaD4KICNpbmNsdWRlIDx3dGYvVk1UYWdzLmg+CisjaWYgRU5BQkxFKEFTU0VNQkxFUl9X
WF9FWENMVVNJVkUpCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
VGhyZWFkU3BlY2lmaWMuaD4KKyNlbmRpZgogI2VuZGlmCiAKIC8vIFVuY29tbWVudCB0byBjcmVh
dGUgYW4gYXJ0aWZpY2lhbCBleGVjdXRhYmxlIG1lbW9yeSB1c2FnZSBsaW1pdC4gVGhpcyBsaW1p
dApAQCAtOTksMTggKzEwMywzOSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxQYWdlUmVzZXJ2YXRp
b24sIDE2PiByZXNlcnZhdGlvbnM7CiB9OwogCi1zdGF0aWMgRGVtYW5kRXhlY3V0YWJsZUFsbG9j
YXRvciogYWxsb2NhdG9yOworI2lmIEVOQUJMRShBU1NFTUJMRVJfV1hfRVhDTFVTSVZFKQorc3Rh
dGljIFRocmVhZFNwZWNpZmljPE93blB0cjxEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yPiA+KiBn
X2FsbG9jYXRvcjsKKworc3RhdGljIERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRv
cigpCit7CisgICAgaWYgKCoqZ19hbGxvY2F0b3IpCisgICAgICAgICoqZ19hbGxvY2F0b3IgPSBh
ZG9wdFB0cihuZXcgRGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcigpKTsKKyAgICByZXR1cm4gKCpn
X2FsbG9jYXRvciktPmdldCgpOworfQogCiB2b2lkIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmluaXRp
YWxpemVBbGxvY2F0b3IoKQogewotICAgIEFTU0VSVCghYWxsb2NhdG9yKTsKLSAgICBhbGxvY2F0
b3IgPSBuZXcgRGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcigpOwotICAgIENvZGVQcm9maWxpbmc6
Om5vdGlmeUFsbG9jYXRvcihhbGxvY2F0b3IpOworICAgIEFTU0VSVCghZ19hbGxvY2F0b3IpOwor
ICAgIGdfYWxsb2NhdG9yID0gbmV3IFRocmVhZFNwZWNpZmljPE93blB0cjxEZW1hbmRFeGVjdXRh
YmxlQWxsb2NhdG9yPiA+KCk7Cit9CisjZWxzZQorc3RhdGljIERlbWFuZEV4ZWN1dGFibGVBbGxv
Y2F0b3IqIGdfYWxsb2NhdG9yOworCitzdGF0aWMgRGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvciog
YWxsb2NhdG9yKCkKK3sKKyAgICByZXR1cm4gZ19hbGxvY2F0b3I7CiB9CiAKK3ZvaWQgRXhlY3V0
YWJsZUFsbG9jYXRvcjo6aW5pdGlhbGl6ZUFsbG9jYXRvcigpCit7CisgICAgQVNTRVJUKCFnX2Fs
bG9jYXRvcik7CisgICAgZ19hbGxvY2F0b3IgPSBuZXcgRGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRv
cigpOworfQorI2VuZGlmCisKIEV4ZWN1dGFibGVBbGxvY2F0b3I6OkV4ZWN1dGFibGVBbGxvY2F0
b3IoSlNHbG9iYWxEYXRhJikKIHsKLSAgICBBU1NFUlQoYWxsb2NhdG9yKTsKKyAgICBBU1NFUlQo
YWxsb2NhdG9yKCkpOwogfQogCiBib29sIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmlzVmFsaWQoKSBj
b25zdApAQCAtMTIxLDcgKzE0NiwxMCBAQCBib29sIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmlzVmFs
aWQoKSBjb25zdAogYm9vbCBFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNzdXJl
KCkKIHsKICNpZmRlZiBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVAotICAgIHJldHVybiBhbGxvY2F0
b3ItPmJ5dGVzQWxsb2NhdGVkKCkgPiBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVCAvIDI7CisjaWYg
RU5BQkxFKEFTU0VNQkxFUl9XWF9FWENMVVNJVkUpCisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8g
Z28gdGhyb3VnaCBhbGwgYWxsb2NhdG9ycy4KKyNlbmRpZgorICAgIHJldHVybiBhbGxvY2F0b3Io
KS0+Ynl0ZXNBbGxvY2F0ZWQoKSA+IEVYRUNVVEFCTEVfTUVNT1JZX0xJTUlUIC8gMjsKICNlbHNl
CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCkBAIC0xMzAsNyArMTU4LDEwIEBAIGJvb2wgRXhl
Y3V0YWJsZUFsbG9jYXRvcjo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpCiBkb3VibGUgRXhlY3V0YWJs
ZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKHNpemVfdCBhZGRlZE1lbW9yeVVz
YWdlKQogewogI2lmZGVmIEVYRUNVVEFCTEVfTUVNT1JZX0xJTUlUCi0gICAgc2l6ZV90IGJ5dGVz
QWxsb2NhdGVkID0gYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpICsgYWRkZWRNZW1vcnlVc2Fn
ZTsKKyNpZiBFTkFCTEUoQVNTRU1CTEVSX1dYX0VYQ0xVU0lWRSkKKyAgICAvLyBGSVhNRTogV2Ug
bmVlZCB0byBnbyB0aHJvdWdoIGFsbCBhbGxvY2F0b3JzLgorI2VuZGlmCisgICAgc2l6ZV90IGJ5
dGVzQWxsb2NhdGVkID0gYWxsb2NhdG9yKCktPmJ5dGVzQWxsb2NhdGVkKCkgKyBhZGRlZE1lbW9y
eVVzYWdlOwogICAgIGlmIChieXRlc0FsbG9jYXRlZCA+PSBFWEVDVVRBQkxFX01FTU9SWV9MSU1J
VCkKICAgICAgICAgYnl0ZXNBbGxvY2F0ZWQgPSBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVDsKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihFWEVDVVRBQkxFX01FTU9SWV9MSU1JVCkgLwpA
QCAtMTQzLDcgKzE3NCw3IEBAIGRvdWJsZSBFeGVjdXRhYmxlQWxsb2NhdG9yOjptZW1vcnlQcmVz
c3VyZU11bHRpcGxpZXIoc2l6ZV90IGFkZGVkTWVtb3J5VXNhZ2UpCiAKIFBhc3NSZWZQdHI8RXhl
Y3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoSlNHbG9i
YWxEYXRhJiwgc2l6ZV90IHNpemVJbkJ5dGVzLCB2b2lkKiBvd25lclVJRCwgSklUQ29tcGlsYXRp
b25FZmZvcnQgZWZmb3J0KQogewotICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBy
ZXN1bHQgPSBhbGxvY2F0b3ItPmFsbG9jYXRlKHNpemVJbkJ5dGVzLCBvd25lclVJRCk7CisgICAg
UmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IHJlc3VsdCA9IGFsbG9jYXRvcigpLT5hbGxv
Y2F0ZShzaXplSW5CeXRlcywgb3duZXJVSUQpOwogICAgIGlmICghcmVzdWx0ICYmIGVmZm9ydCA9
PSBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKQogICAgICAgICBDUkFTSCgpOwogICAgIHJldHVy
biByZXN1bHQucmVsZWFzZSgpOwpAQCAtMTUxLDEzICsxODIsMTMgQEAgUGFzc1JlZlB0cjxFeGVj
dXRhYmxlTWVtb3J5SGFuZGxlPiBFeGVjdXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0ZShKU0dsb2Jh
bERhdGEmLAogCiBzaXplX3QgRXhlY3V0YWJsZUFsbG9jYXRvcjo6Y29tbWl0dGVkQnl0ZUNvdW50
KCkKIHsKLSAgICByZXR1cm4gYWxsb2NhdG9yLT5ieXRlc0NvbW1pdHRlZCgpOworICAgIHJldHVy
biBhbGxvY2F0b3IoKS0+Ynl0ZXNDb21taXR0ZWQoKTsKIH0KIAogI2lmIEVOQUJMRShNRVRBX0FM
TE9DQVRPUl9QUk9GSUxFKQogdm9pZCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpkdW1wUHJvZmlsZSgp
CiB7Ci0gICAgYWxsb2NhdG9yLT5kdW1wUHJvZmlsZSgpOworICAgIGFsbG9jYXRvcigpLT5kdW1w
UHJvZmlsZSgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTWV0YUFsbG9jYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NZXRhQWxs
b2NhdG9yLmgKaW5kZXggY2M1Mzg2Ni4uOGNhNWJjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9NZXRhQWxsb2NhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9NZXRhQWxsb2NhdG9yLmgKQEAgLTIwNyw2ICsyMDcsNyBAQCBpbmxpbmUgTWV0YUFsbG9j
YXRvcjo6fk1ldGFBbGxvY2F0b3IoKQogI2lmbmRlZiBOREVCVUcKICAgICBBU1NFUlQoIW1fbWFs
bG9jQmFsYW5jZSk7CiAjZW5kaWYKKyAgICBtX2xvY2suRmluYWxpemUoKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV1RGCg==
</data>
<flag name="commit-queue"
          id="133760"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130710</attachid>
            <date>2012-03-07 15:22:27 -0800</date>
            <delta_ts>2012-03-09 12:16:27 -0800</delta_ts>
            <desc>the correct patch</desc>
            <filename>80532.patch</filename>
            <type>text/plain</type>
            <size>5077</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDUzMTRlMjMuLjM3YmUxNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTA3ICBZb25nIExpICA8eW9s
aUByaW0uY29tPgorCisgICAgICAgIFdlYiBXb3JrZXIgY3Jhc2hlcyB3aXRoIEFTU0VNQkxFUl9X
WF9FWENMVVNJVkUgb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgwNTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFrZSBFeGVjdXRhYmxlQWxsb2NhdG9yJ3MgaW50ZXJuYWwgTWV0YUFsbG9jYXRvciB0
aHJlYWQtc3BlY2lmaWMgZm9yIEFTU0VNQkxFUl9XWF9FWENMVVNJVkUKKyAgICAgICAgdG8gYXZv
aWQgY29uZmxpY3RzIGJldHdlZW4gdGhyZWFkcy4KKyAgICAgICAgQWxzbyBmaXggYSBtdXRleCBs
ZWFrIGluIE1ldGFBbGxvY2F0b3IncyBkZXN0cnVjdG9yLgorCisgICAgICAgICogaml0L0V4ZWN1
dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6YWxsb2Nh
dG9yKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6aW5pdGlhbGl6ZUFsbG9j
YXRvcik6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OkV4ZWN1dGFibGVBbGxv
Y2F0b3IpOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVBy
ZXNzdXJlKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1
cmVNdWx0aXBsaWVyKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2Nh
dGUpOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpjb21taXR0ZWRCeXRlQ291
bnQpOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpkdW1wUHJvZmlsZSk6Cisg
ICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuaDoKKyAgICAgICAgKFdURjo6TWV0YUFsbG9jYXRv
cjo6fk1ldGFBbGxvY2F0b3IpOiBEZXN0cm95IHRoZSBtdXRleC4KKwogMjAxMi0wMy0wNyAgU2lt
b24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgQVJNIGJ1
aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJs
ZUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxv
Y2F0b3IuY3BwCmluZGV4IDFhZjFmNDIuLmQyMzYzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcApAQCAtMzMsNiArMzMsOSBAQAog
I2luY2x1ZGUgPHd0Zi9NZXRhQWxsb2NhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1BhZ2VSZXNlcnZh
dGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9WTVRhZ3MuaD4KKyNpZiBFTkFCTEUoQVNTRU1CTEVSX1dY
X0VYQ0xVU0lWRSkKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KKyNlbmRpZgogI2Vu
ZGlmCiAKIC8vIFVuY29tbWVudCB0byBjcmVhdGUgYW4gYXJ0aWZpY2lhbCBleGVjdXRhYmxlIG1l
bW9yeSB1c2FnZSBsaW1pdC4gVGhpcyBsaW1pdApAQCAtOTksMTggKzEwMiwzOSBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxQYWdlUmVzZXJ2YXRpb24sIDE2PiByZXNlcnZhdGlvbnM7CiB9OwogCi1z
dGF0aWMgRGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvciogYWxsb2NhdG9yOworI2lmIEVOQUJMRShB
U1NFTUJMRVJfV1hfRVhDTFVTSVZFKQorLy8gRklYTUU6IFdlIHNob3VsZCB3YWxrIHRocm91Z2gg
YWxsIGFsbG9jYXRvcnMgdG8gZ2V0IHRoZSBudW1iZXJzIGZvciBieXRlc0FsbG9jYXRlZCgpIGFu
ZCBieXRlc0NvbW1pdHRlZCgpLgorCitzdGF0aWMgVGhyZWFkU3BlY2lmaWM8RGVtYW5kRXhlY3V0
YWJsZUFsbG9jYXRvcj4qIGdBbGxvY2F0b3I7CisKK3N0YXRpYyBEZW1hbmRFeGVjdXRhYmxlQWxs
b2NhdG9yKiBhbGxvY2F0b3IoKQoreworICAgIHJldHVybiAmKipnQWxsb2NhdG9yOworfQorCit2
b2lkIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmluaXRpYWxpemVBbGxvY2F0b3IoKQoreworICAgIEFT
U0VSVCghZ0FsbG9jYXRvcik7CisgICAgZ0FsbG9jYXRvciA9IG5ldyBUaHJlYWRTcGVjaWZpYzxE
ZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yPigpOworfQorI2Vsc2UKK3N0YXRpYyBEZW1hbmRFeGVj
dXRhYmxlQWxsb2NhdG9yKiBnQWxsb2NhdG9yOworCitzdGF0aWMgRGVtYW5kRXhlY3V0YWJsZUFs
bG9jYXRvciogYWxsb2NhdG9yKCkKK3sKKyAgICByZXR1cm4gZ0FsbG9jYXRvcjsKK30KIAogdm9p
ZCBFeGVjdXRhYmxlQWxsb2NhdG9yOjppbml0aWFsaXplQWxsb2NhdG9yKCkKIHsKLSAgICBBU1NF
UlQoIWFsbG9jYXRvcik7Ci0gICAgYWxsb2NhdG9yID0gbmV3IERlbWFuZEV4ZWN1dGFibGVBbGxv
Y2F0b3IoKTsKLSAgICBDb2RlUHJvZmlsaW5nOjpub3RpZnlBbGxvY2F0b3IoYWxsb2NhdG9yKTsK
KyAgICBBU1NFUlQoIWdfYWxsb2NhdG9yKTsKKyAgICBnQWxsb2NhdG9yID0gbmV3IERlbWFuZEV4
ZWN1dGFibGVBbGxvY2F0b3IoKTsKIH0KKyNlbmRpZgogCiBFeGVjdXRhYmxlQWxsb2NhdG9yOjpF
eGVjdXRhYmxlQWxsb2NhdG9yKEpTR2xvYmFsRGF0YSYpCiB7Ci0gICAgQVNTRVJUKGFsbG9jYXRv
cik7CisgICAgQVNTRVJUKGFsbG9jYXRvcigpKTsKIH0KIAogYm9vbCBFeGVjdXRhYmxlQWxsb2Nh
dG9yOjppc1ZhbGlkKCkgY29uc3QKQEAgLTEyMSw3ICsxNDUsNyBAQCBib29sIEV4ZWN1dGFibGVB
bGxvY2F0b3I6OmlzVmFsaWQoKSBjb25zdAogYm9vbCBFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRl
ck1lbW9yeVByZXNzdXJlKCkKIHsKICNpZmRlZiBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVAotICAg
IHJldHVybiBhbGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgPiBFWEVDVVRBQkxFX01FTU9SWV9M
SU1JVCAvIDI7CisgICAgcmV0dXJuIGFsbG9jYXRvcigpLT5ieXRlc0FsbG9jYXRlZCgpID4gRVhF
Q1VUQUJMRV9NRU1PUllfTElNSVQgLyAyOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5k
aWYKQEAgLTEzMCw3ICsxNTQsNyBAQCBib29sIEV4ZWN1dGFibGVBbGxvY2F0b3I6OnVuZGVyTWVt
b3J5UHJlc3N1cmUoKQogZG91YmxlIEV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeVByZXNzdXJl
TXVsdGlwbGllcihzaXplX3QgYWRkZWRNZW1vcnlVc2FnZSkKIHsKICNpZmRlZiBFWEVDVVRBQkxF
X01FTU9SWV9MSU1JVAotICAgIHNpemVfdCBieXRlc0FsbG9jYXRlZCA9IGFsbG9jYXRvci0+Ynl0
ZXNBbGxvY2F0ZWQoKSArIGFkZGVkTWVtb3J5VXNhZ2U7CisgICAgc2l6ZV90IGJ5dGVzQWxsb2Nh
dGVkID0gYWxsb2NhdG9yKCktPmJ5dGVzQWxsb2NhdGVkKCkgKyBhZGRlZE1lbW9yeVVzYWdlOwog
ICAgIGlmIChieXRlc0FsbG9jYXRlZCA+PSBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVCkKICAgICAg
ICAgYnl0ZXNBbGxvY2F0ZWQgPSBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVDsKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8ZG91YmxlPihFWEVDVVRBQkxFX01FTU9SWV9MSU1JVCkgLwpAQCAtMTQzLDcg
KzE2Nyw3IEBAIGRvdWJsZSBFeGVjdXRhYmxlQWxsb2NhdG9yOjptZW1vcnlQcmVzc3VyZU11bHRp
cGxpZXIoc2l6ZV90IGFkZGVkTWVtb3J5VXNhZ2UpCiAKIFBhc3NSZWZQdHI8RXhlY3V0YWJsZU1l
bW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoSlNHbG9iYWxEYXRhJiwg
c2l6ZV90IHNpemVJbkJ5dGVzLCB2b2lkKiBvd25lclVJRCwgSklUQ29tcGlsYXRpb25FZmZvcnQg
ZWZmb3J0KQogewotICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiByZXN1bHQgPSBh
bGxvY2F0b3ItPmFsbG9jYXRlKHNpemVJbkJ5dGVzLCBvd25lclVJRCk7CisgICAgUmVmUHRyPEV4
ZWN1dGFibGVNZW1vcnlIYW5kbGU+IHJlc3VsdCA9IGFsbG9jYXRvcigpLT5hbGxvY2F0ZShzaXpl
SW5CeXRlcywgb3duZXJVSUQpOwogICAgIGlmICghcmVzdWx0ICYmIGVmZm9ydCA9PSBKSVRDb21w
aWxhdGlvbk11c3RTdWNjZWVkKQogICAgICAgICBDUkFTSCgpOwogICAgIHJldHVybiByZXN1bHQu
cmVsZWFzZSgpOwpAQCAtMTUxLDEzICsxNzUsMTMgQEAgUGFzc1JlZlB0cjxFeGVjdXRhYmxlTWVt
b3J5SGFuZGxlPiBFeGVjdXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0ZShKU0dsb2JhbERhdGEmLAog
CiBzaXplX3QgRXhlY3V0YWJsZUFsbG9jYXRvcjo6Y29tbWl0dGVkQnl0ZUNvdW50KCkKIHsKLSAg
ICByZXR1cm4gYWxsb2NhdG9yLT5ieXRlc0NvbW1pdHRlZCgpOworICAgIHJldHVybiBhbGxvY2F0
b3IoKS0+Ynl0ZXNDb21taXR0ZWQoKTsKIH0KIAogI2lmIEVOQUJMRShNRVRBX0FMTE9DQVRPUl9Q
Uk9GSUxFKQogdm9pZCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpkdW1wUHJvZmlsZSgpCiB7Ci0gICAg
YWxsb2NhdG9yLT5kdW1wUHJvZmlsZSgpOworICAgIGFsbG9jYXRvcigpLT5kdW1wUHJvZmlsZSgp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWV0
YUFsbG9jYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NZXRhQWxsb2NhdG9yLmgK
aW5kZXggY2M1Mzg2Ni4uOGNhNWJjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9NZXRhQWxsb2NhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NZXRh
QWxsb2NhdG9yLmgKQEAgLTIwNyw2ICsyMDcsNyBAQCBpbmxpbmUgTWV0YUFsbG9jYXRvcjo6fk1l
dGFBbGxvY2F0b3IoKQogI2lmbmRlZiBOREVCVUcKICAgICBBU1NFUlQoIW1fbWFsbG9jQmFsYW5j
ZSk7CiAjZW5kaWYKKyAgICBtX2xvY2suRmluYWxpemUoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V1RGCg==
</data>
<flag name="review"
          id="133796"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="133804"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131071</attachid>
            <date>2012-03-09 12:16:27 -0800</date>
            <delta_ts>2012-03-09 12:35:18 -0800</delta_ts>
            <desc>For WX_EXCLUSIVE, let each global object own a meta allocator</desc>
            <filename>80532.patch</filename>
            <type>text/plain</type>
            <size>9653</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDMxMjYwNjQuLmRmMmEyZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTAzLTA5ICBZb25nIExpICA8eW9s
aUByaW0uY29tPgorCisgICAgICAgIFdlYiBXb3JrZXIgY3Jhc2hlcyB3aXRoIFdYX0VYQ0xVU0lW
RQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA1MzIK
KworICAgICAgICBMZXQgZWFjaCBKUyBnbG9iYWwgb2JqZWN0IG93biBhIG1ldGEgYWxsb2NhdG9y
CisgICAgICAgIGZvciBXWF9FWENMVVNJVkUgdG8gYXZvaWQgY29uZmxpY3RzIGZyb20gV2ViIFdv
cmtlci4KKyAgICAgICAgQWxzbyBmaXggYSBtdXRleCBsZWFrIGluIE1ldGFBbGxvY2F0b3IncyBk
dG9yLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDOjpEZW1hbmRFeGVjdXRh
YmxlQWxsb2NhdG9yOjpEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6
RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjo6fkRlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IpOgor
ICAgICAgICAoSlNDOjpEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yOjpieXRlc0FsbG9jYXRlZEJ5
QWxsQWxsb2NhdG9ycyk6CisgICAgICAgIChEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKToKKyAg
ICAgICAgKEpTQzo6RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjo6Ynl0ZXNDb21taXR0ZWRCeUFs
bG9jYWN0b3JzKToKKyAgICAgICAgKEpTQzo6RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjo6ZHVt
cFByb2ZpbGVGcm9tQWxsQWxsb2NhdG9ycyk6CisgICAgICAgIChKU0M6OkRlbWFuZEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OmFsbG9jYXRlTmV3U3BhY2UpOgorICAgICAgICAoSlNDOjpEZW1hbmRFeGVj
dXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0b3JzKToKKyAgICAgICAgKEpTQzo6RGVtYW5kRXhlY3V0
YWJsZUFsbG9jYXRvcjo6YWxsb2NhdG9yc011dGV4KToKKyAgICAgICAgKEpTQyk6CisgICAgICAg
IChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmluaXRpYWxpemVBbGxvY2F0b3IpOgorICAgICAg
ICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpFeGVjdXRhYmxlQWxsb2NhdG9yKToKKyAgICAg
ICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6dW5kZXJNZW1vcnlQcmVzc3VyZSk6CisgICAg
ICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeVByZXNzdXJlTXVsdGlwbGllcik6
CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKToKKyAgICAgICAg
KEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6Y29tbWl0dGVkQnl0ZUNvdW50KToKKyAgICAgICAg
KEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6ZHVtcFByb2ZpbGUpOgorICAgICAgICAqIGppdC9F
eGVjdXRhYmxlQWxsb2NhdG9yLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAoRXhlY3V0YWJs
ZUFsbG9jYXRvcik6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRv
cik6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuaDoKKyAgICAgICAgKFdURjo6TWV0YUFs
bG9jYXRvcjo6fk1ldGFBbGxvY2F0b3IpOiBGaW5hbGl6ZSB0aGUgc3BpbiBsb2NrLgorICAgICAg
ICAqIHd0Zi9UQ1NwaW5Mb2NrLmg6CisgICAgICAgIChUQ01hbGxvY19TcGluTG9jazo6RmluYWxp
emUpOiBBZGQgZW1wdHkgRmluYWxpemUoKSB0byBzb21lIGltcGxlbWVudGF0aW9ucy4KKwogMjAx
Mi0wMy0wOSAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdp
bmRvd3MgZGVidWcgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKaW5kZXggMWFmMWY0Mi4uZGVlZjRhMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCkBAIC0z
MCw4ICszMCwxMyBAQAogI2lmIEVOQUJMRShFWEVDVVRBQkxFX0FMTE9DQVRPUl9ERU1BTkQpCiAj
aW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYWdlUmVzZXJ2YXRpb24uaD4KKyNpZiBFTkFCTEUoQVNTRU1CTEVSX1dYX0VY
Q0xVU0lWRSkKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2VuZGlmCisjaW5jbHVkZSA8
d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVk1UYWdzLmg+CiAjZW5k
aWYKIApAQCAtNTMsMTUgKzU4LDQ2IEBAIHB1YmxpYzoKICAgICBEZW1hbmRFeGVjdXRhYmxlQWxs
b2NhdG9yKCkKICAgICAgICAgOiBNZXRhQWxsb2NhdG9yKDMyKSAvLyByb3VuZCB1cCBhbGwgYWxs
b2NhdGlvbnMgdG8gMzIgYnl0ZXMKICAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2soYWxs
b2NhdG9yc011dGV4KCkpOworICAgICAgICBhbGxvY2F0b3JzKCkuYWRkKHRoaXMpOwogICAgICAg
ICAvLyBEb24ndCBwcmVhbGxvY2F0ZSBhbnkgbWVtb3J5IGhlcmUuCiAgICAgfQogICAgIAogICAg
IHZpcnR1YWwgfkRlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IoKQogICAgIHsKKyAgICAgICAgewor
ICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhhbGxvY2F0b3JzTXV0ZXgoKSk7CisgICAgICAg
ICAgICBhbGxvY2F0b3JzKCkucmVtb3ZlKHRoaXMpOworICAgICAgICB9CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCByZXNlcnZhdGlvbnMuc2l6ZSgpOyArK2kpCiAgICAgICAgICAg
ICByZXNlcnZhdGlvbnMuYXQoaSkuZGVhbGxvY2F0ZSgpOwogICAgIH0KIAorICAgIHN0YXRpYyBz
aXplX3QgYnl0ZXNBbGxvY2F0ZWRCeUFsbEFsbG9jYXRvcnMoKQorICAgIHsKKyAgICAgICAgc2l6
ZV90IHRvdGFsID0gMDsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhhbGxvY2F0b3JzTXV0ZXgo
KSk7CisgICAgICAgIGZvciAoSGFzaFNldDxEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKj46OmNv
bnN0X2l0ZXJhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvcnMoKS5iZWdpbigpOyBhbGxvY2F0b3Ig
IT0gYWxsb2NhdG9ycygpLmVuZCgpOyArK2FsbG9jYXRvcikKKyAgICAgICAgICAgIHRvdGFsICs9
ICgqYWxsb2NhdG9yKS0+Ynl0ZXNBbGxvY2F0ZWQoKTsKKyAgICAgICAgcmV0dXJuIHRvdGFsOwor
ICAgIH0KKworICAgIHN0YXRpYyBzaXplX3QgYnl0ZXNDb21taXR0ZWRCeUFsbG9jYWN0b3JzKCkK
KyAgICB7CisgICAgICAgIHNpemVfdCB0b3RhbCA9IDA7CisgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2soYWxsb2NhdG9yc011dGV4KCkpOworICAgICAgICBmb3IgKEhhc2hTZXQ8RGVtYW5kRXhlY3V0
YWJsZUFsbG9jYXRvcio+Ojpjb25zdF9pdGVyYXRvciBhbGxvY2F0b3IgPSBhbGxvY2F0b3JzKCku
YmVnaW4oKTsgYWxsb2NhdG9yICE9IGFsbG9jYXRvcnMoKS5lbmQoKTsgKythbGxvY2F0b3IpCisg
ICAgICAgICAgICB0b3RhbCArPSAoKmFsbG9jYXRvciktPmJ5dGVzQ29tbWl0dGVkKCk7CisgICAg
ICAgIHJldHVybiB0b3RhbDsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBkdW1wUHJvZmlsZUZy
b21BbGxBbGxvY2F0b3JzKCkKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2soYWxsb2Nh
dG9yc011dGV4KCkpOworICAgICAgICBmb3IgKEhhc2hTZXQ8RGVtYW5kRXhlY3V0YWJsZUFsbG9j
YXRvcio+Ojpjb25zdF9pdGVyYXRvciBhbGxvY2F0b3IgPSBhbGxvY2F0b3JzKCkuYmVnaW4oKTsg
YWxsb2NhdG9yICE9IGFsbG9jYXRvcnMoKS5lbmQoKTsgKythbGxvY2F0b3IpCisgICAgICAgICAg
ICAoKmFsbG9jYXRvciktPmR1bXBQcm9maWxlKCk7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCB2b2lkKiBhbGxvY2F0ZU5ld1NwYWNlKHNpemVfdCYgbnVtUGFnZXMpCiAgICAgewpA
QCAtNzIsNyArMTA4LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBudW1QYWdlcyA9IG5ld051bVBh
Z2VzOwogICAgICAgICAKICNpZmRlZiBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVAotICAgICAgICBp
ZiAoYnl0ZXNBbGxvY2F0ZWQoKSA+PSBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVCkKKyAgICAgICAg
aWYgKGJ5dGVzQWxsb2NhdGVkQnlBbGxBbGxvY2F0b3JzKCkgPj0gRVhFQ1VUQUJMRV9NRU1PUllf
TElNSVQpCiAgICAgICAgICAgICByZXR1cm4gMDsKICNlbmRpZgogICAgICAgICAKQEAgLTk3LDIw
ICsxMzMsNDYgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIFZlY3RvcjxQYWdlUmVzZXJ2
YXRpb24sIDE2PiByZXNlcnZhdGlvbnM7CisgICAgc3RhdGljIEhhc2hTZXQ8RGVtYW5kRXhlY3V0
YWJsZUFsbG9jYXRvcio+JiBhbGxvY2F0b3JzKCkKKyAgICB7CisgICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKj4sIHNBbGxvY2F0b3Jz
LCAoKSk7CisgICAgICAgIHJldHVybiBzQWxsb2NhdG9yczsKKyAgICB9CisgICAgc3RhdGljIE11
dGV4JiBhbGxvY2F0b3JzTXV0ZXgoKQorICAgIHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICAgICAgcmV0dXJuIG11dGV4OworICAgIH0KIH07CiAK
LXN0YXRpYyBEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKiBhbGxvY2F0b3I7CisjaWYgRU5BQkxF
KEFTU0VNQkxFUl9XWF9FWENMVVNJVkUpCit2b2lkIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmluaXRp
YWxpemVBbGxvY2F0b3IoKQoreworfQorI2Vsc2UKK3N0YXRpYyBEZW1hbmRFeGVjdXRhYmxlQWxs
b2NhdG9yKiBnQWxsb2NhdG9yOworCituYW1lc3BhY2Ugeworc3RhdGljIGlubGluZSBEZW1hbmRF
eGVjdXRhYmxlQWxsb2NhdG9yKiBhbGxvY2F0b3IoKQoreworICAgIHJldHVybiBnQWxsb2NhdG9y
OworfQorfQogCiB2b2lkIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmluaXRpYWxpemVBbGxvY2F0b3Io
KQogewotICAgIEFTU0VSVCghYWxsb2NhdG9yKTsKLSAgICBhbGxvY2F0b3IgPSBuZXcgRGVtYW5k
RXhlY3V0YWJsZUFsbG9jYXRvcigpOwotICAgIENvZGVQcm9maWxpbmc6Om5vdGlmeUFsbG9jYXRv
cihhbGxvY2F0b3IpOworICAgIEFTU0VSVCghZ0FsbG9jYXRvcik7CisgICAgZ0FsbG9jYXRvciA9
IG5ldyBEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKCk7CisgICAgQ29kZVByb2ZpbGluZzo6bm90
aWZ5QWxsb2NhdG9yKGdBbGxvY2F0b3IpOwogfQorI2VuZGlmCiAKIEV4ZWN1dGFibGVBbGxvY2F0
b3I6OkV4ZWN1dGFibGVBbGxvY2F0b3IoSlNHbG9iYWxEYXRhJikKKyNpZiBFTkFCTEUoQVNTRU1C
TEVSX1dYX0VYQ0xVU0lWRSkKKyAgICA6IG1fYWxsb2NhdG9yKGFkb3B0UHRyKG5ldyAgRGVtYW5k
RXhlY3V0YWJsZUFsbG9jYXRvcigpKSkKKyNlbmRpZgogewotICAgIEFTU0VSVChhbGxvY2F0b3Ip
OworICAgIEFTU0VSVChhbGxvY2F0b3IoKSk7CiB9CiAKIGJvb2wgRXhlY3V0YWJsZUFsbG9jYXRv
cjo6aXNWYWxpZCgpIGNvbnN0CkBAIC0xMjEsNyArMTgzLDcgQEAgYm9vbCBFeGVjdXRhYmxlQWxs
b2NhdG9yOjppc1ZhbGlkKCkgY29uc3QKIGJvb2wgRXhlY3V0YWJsZUFsbG9jYXRvcjo6dW5kZXJN
ZW1vcnlQcmVzc3VyZSgpCiB7CiAjaWZkZWYgRVhFQ1VUQUJMRV9NRU1PUllfTElNSVQKLSAgICBy
ZXR1cm4gYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpID4gRVhFQ1VUQUJMRV9NRU1PUllfTElN
SVQgLyAyOworICAgIHJldHVybiBEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yOjpieXRlc0FsbG9j
YXRlZEJ5QWxsQWxsb2NhdG9ycygpID4gRVhFQ1VUQUJMRV9NRU1PUllfTElNSVQgLyAyOwogI2Vs
c2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKQEAgLTEzMCw3ICsxOTIsNyBAQCBib29sIEV4
ZWN1dGFibGVBbGxvY2F0b3I6OnVuZGVyTWVtb3J5UHJlc3N1cmUoKQogZG91YmxlIEV4ZWN1dGFi
bGVBbGxvY2F0b3I6Om1lbW9yeVByZXNzdXJlTXVsdGlwbGllcihzaXplX3QgYWRkZWRNZW1vcnlV
c2FnZSkKIHsKICNpZmRlZiBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVAotICAgIHNpemVfdCBieXRl
c0FsbG9jYXRlZCA9IGFsbG9jYXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSArIGFkZGVkTWVtb3J5VXNh
Z2U7CisgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkID0gRGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRv
cjo6Ynl0ZXNBbGxvY2F0ZWRCeUFsbEFsbG9jYXRvcnMoKSArIGFkZGVkTWVtb3J5VXNhZ2U7CiAg
ICAgaWYgKGJ5dGVzQWxsb2NhdGVkID49IEVYRUNVVEFCTEVfTUVNT1JZX0xJTUlUKQogICAgICAg
ICBieXRlc0FsbG9jYXRlZCA9IEVYRUNVVEFCTEVfTUVNT1JZX0xJTUlUOwogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxkb3VibGU+KEVYRUNVVEFCTEVfTUVNT1JZX0xJTUlUKSAvCkBAIC0xNDMsNyAr
MjA1LDcgQEAgZG91YmxlIEV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeVByZXNzdXJlTXVsdGlw
bGllcihzaXplX3QgYWRkZWRNZW1vcnlVc2FnZSkKIAogUGFzc1JlZlB0cjxFeGVjdXRhYmxlTWVt
b3J5SGFuZGxlPiBFeGVjdXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0ZShKU0dsb2JhbERhdGEmLCBz
aXplX3Qgc2l6ZUluQnl0ZXMsIHZvaWQqIG93bmVyVUlELCBKSVRDb21waWxhdGlvbkVmZm9ydCBl
ZmZvcnQpCiB7Ci0gICAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IHJlc3VsdCA9IGFs
bG9jYXRvci0+YWxsb2NhdGUoc2l6ZUluQnl0ZXMsIG93bmVyVUlEKTsKKyAgICBSZWZQdHI8RXhl
Y3V0YWJsZU1lbW9yeUhhbmRsZT4gcmVzdWx0ID0gYWxsb2NhdG9yKCktPmFsbG9jYXRlKHNpemVJ
bkJ5dGVzLCBvd25lclVJRCk7CiAgICAgaWYgKCFyZXN1bHQgJiYgZWZmb3J0ID09IEpJVENvbXBp
bGF0aW9uTXVzdFN1Y2NlZWQpCiAgICAgICAgIENSQVNIKCk7CiAgICAgcmV0dXJuIHJlc3VsdC5y
ZWxlYXNlKCk7CkBAIC0xNTEsMTMgKzIxMywxMyBAQCBQYXNzUmVmUHRyPEV4ZWN1dGFibGVNZW1v
cnlIYW5kbGU+IEV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKEpTR2xvYmFsRGF0YSYsCiAK
IHNpemVfdCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpjb21taXR0ZWRCeXRlQ291bnQoKQogewotICAg
IHJldHVybiBhbGxvY2F0b3ItPmJ5dGVzQ29tbWl0dGVkKCk7CisgICAgcmV0dXJuIERlbWFuZEV4
ZWN1dGFibGVBbGxvY2F0b3I6OmJ5dGVzQ29tbWl0dGVkQnlBbGxvY2FjdG9ycygpOwogfQogCiAj
aWYgRU5BQkxFKE1FVEFfQUxMT0NBVE9SX1BST0ZJTEUpCiB2b2lkIEV4ZWN1dGFibGVBbGxvY2F0
b3I6OmR1bXBQcm9maWxlKCkKIHsKLSAgICBhbGxvY2F0b3ItPmR1bXBQcm9maWxlKCk7CisgICAg
RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjo6ZHVtcFByb2ZpbGVGcm9tQWxsQWxsb2NhdG9ycygp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhl
Y3V0YWJsZUFsbG9jYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxl
QWxsb2NhdG9yLmgKaW5kZXggMGEwNTgzMC4uODE0YzlhMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKQEAgLTk2LDYgKzk2LDEwIEBAIHR5
cGVkZWYgV1RGOjpNZXRhQWxsb2NhdG9ySGFuZGxlIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU7CiAK
ICNpZiBFTkFCTEUoSklUKSAmJiBFTkFCTEUoQVNTRU1CTEVSKQogCisjaWYgRU5BQkxFKEVYRUNV
VEFCTEVfQUxMT0NBVE9SX0RFTUFORCkKK2NsYXNzIERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3I7
CisjZW5kaWYKKwogY2xhc3MgRXhlY3V0YWJsZUFsbG9jYXRvciB7CiAgICAgZW51bSBQcm90ZWN0
aW9uU2V0dGluZyB7IFdyaXRhYmxlLCBFeGVjdXRhYmxlIH07CiAKQEAgLTIzNSw3ICsyMzksMTMg
QEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShBU1NFTUJMRVJfV1hfRVhDTFVTSVZFKQogICAgIHN0
YXRpYyB2b2lkIHJlcHJvdGVjdFJlZ2lvbih2b2lkKiwgc2l6ZV90LCBQcm90ZWN0aW9uU2V0dGlu
Zyk7CisjaWYgRU5BQkxFKEVYRUNVVEFCTEVfQUxMT0NBVE9SX0RFTUFORCkKKyAgICAvLyBXZSBj
cmVhdGUgYSBNZXRhQWxsb2NhdG9yIGZvciBlYWNoIEpTIGdsb2JhbCBvYmplY3QuCisgICAgT3du
UHRyPERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3I+IG1fYWxsb2NhdG9yOworICAgIERlbWFuZEV4
ZWN1dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvcigpIHsgcmV0dXJuIG1fYWxsb2NhdG9yLmdldCgp
OyB9CiAjZW5kaWYKKyNlbmRpZgorCiB9OwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkgJiYgRU5B
QkxFKEFTU0VNQkxFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWV0
YUFsbG9jYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NZXRhQWxsb2NhdG9yLmgK
aW5kZXggY2M1Mzg2Ni4uOGE3M2EzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9NZXRhQWxsb2NhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NZXRh
QWxsb2NhdG9yLmgKQEAgLTIwNCw2ICsyMDQsNyBAQCBpbmxpbmUgTWV0YUFsbG9jYXRvcjo6fk1l
dGFBbGxvY2F0b3IoKQogICAgICAgICBmcmVlRnJlZVNwYWNlTm9kZShub2RlKTsKICAgICAgICAg
bm9kZSA9IG5leHQ7CiAgICAgfQorICAgIG1fbG9jay5GaW5hbGl6ZSgpOwogI2lmbmRlZiBOREVC
VUcKICAgICBBU1NFUlQoIW1fbWFsbG9jQmFsYW5jZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVENTcGluTG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9UQ1NwaW5Mb2NrLmgKaW5kZXggODFiN2QwYy4uN2YxOWI2YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UQ1NwaW5Mb2NrLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9UQ1NwaW5Mb2NrLmgKQEAgLTEyOCw2ICsxMjgsNyBAQCBzdHJ1Y3QgVENN
YWxsb2NfU3BpbkxvY2sgewogICAgIH0KIAogICAgIGlubGluZSB2b2lkIEluaXQoKSB7IGxvY2t3
b3JkXyA9IDA7IH0KKyAgICBpbmxpbmUgdm9pZCBGaW5hbGl6ZSgpIHsgfQogCiAgICAgdm9sYXRp
bGUgdW5zaWduZWQgaW50IGxvY2t3b3JkXzsKIH07CkBAIC0yMjEsNiArMjIyLDcgQEAgc3RydWN0
IFRDTWFsbG9jX1NwaW5Mb2NrIHsKICAgICB9CiAKICAgICBpbmxpbmUgdm9pZCBJbml0KCkgeyBt
X2xvY2t3b3JkID0gMDsgfQorICAgIGlubGluZSB2b2lkIEZpbmFsaXplKCkgeyB9CiAKICAgICBM
T05HIG1fbG9ja3dvcmQ7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131074</attachid>
            <date>2012-03-09 12:38:43 -0800</date>
            <delta_ts>2012-03-09 12:47:14 -0800</delta_ts>
            <desc>One MetaAllocator per JS global object (only for WX_EXCLUSIVE)</desc>
            <filename>80532.patch</filename>
            <type>text/plain</type>
            <size>9834</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDMxMjYwNjQuLmRmMmEyZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTAzLTA5ICBZb25nIExpICA8eW9s
aUByaW0uY29tPgorCisgICAgICAgIFdlYiBXb3JrZXIgY3Jhc2hlcyB3aXRoIFdYX0VYQ0xVU0lW
RQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA1MzIK
KworICAgICAgICBMZXQgZWFjaCBKUyBnbG9iYWwgb2JqZWN0IG93biBhIG1ldGEgYWxsb2NhdG9y
CisgICAgICAgIGZvciBXWF9FWENMVVNJVkUgdG8gYXZvaWQgY29uZmxpY3RzIGZyb20gV2ViIFdv
cmtlci4KKyAgICAgICAgQWxzbyBmaXggYSBtdXRleCBsZWFrIGluIE1ldGFBbGxvY2F0b3IncyBk
dG9yLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDOjpEZW1hbmRFeGVjdXRh
YmxlQWxsb2NhdG9yOjpEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6
RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjo6fkRlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IpOgor
ICAgICAgICAoSlNDOjpEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yOjpieXRlc0FsbG9jYXRlZEJ5
QWxsQWxsb2NhdG9ycyk6CisgICAgICAgIChEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKToKKyAg
ICAgICAgKEpTQzo6RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjo6Ynl0ZXNDb21taXR0ZWRCeUFs
bG9jYWN0b3JzKToKKyAgICAgICAgKEpTQzo6RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjo6ZHVt
cFByb2ZpbGVGcm9tQWxsQWxsb2NhdG9ycyk6CisgICAgICAgIChKU0M6OkRlbWFuZEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OmFsbG9jYXRlTmV3U3BhY2UpOgorICAgICAgICAoSlNDOjpEZW1hbmRFeGVj
dXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0b3JzKToKKyAgICAgICAgKEpTQzo6RGVtYW5kRXhlY3V0
YWJsZUFsbG9jYXRvcjo6YWxsb2NhdG9yc011dGV4KToKKyAgICAgICAgKEpTQyk6CisgICAgICAg
IChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmluaXRpYWxpemVBbGxvY2F0b3IpOgorICAgICAg
ICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpFeGVjdXRhYmxlQWxsb2NhdG9yKToKKyAgICAg
ICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6dW5kZXJNZW1vcnlQcmVzc3VyZSk6CisgICAg
ICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeVByZXNzdXJlTXVsdGlwbGllcik6
CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKToKKyAgICAgICAg
KEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6Y29tbWl0dGVkQnl0ZUNvdW50KToKKyAgICAgICAg
KEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6ZHVtcFByb2ZpbGUpOgorICAgICAgICAqIGppdC9F
eGVjdXRhYmxlQWxsb2NhdG9yLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAoRXhlY3V0YWJs
ZUFsbG9jYXRvcik6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRv
cik6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuaDoKKyAgICAgICAgKFdURjo6TWV0YUFs
bG9jYXRvcjo6fk1ldGFBbGxvY2F0b3IpOiBGaW5hbGl6ZSB0aGUgc3BpbiBsb2NrLgorICAgICAg
ICAqIHd0Zi9UQ1NwaW5Mb2NrLmg6CisgICAgICAgIChUQ01hbGxvY19TcGluTG9jazo6RmluYWxp
emUpOiBBZGQgZW1wdHkgRmluYWxpemUoKSB0byBzb21lIGltcGxlbWVudGF0aW9ucy4KKwogMjAx
Mi0wMy0wOSAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdp
bmRvd3MgZGVidWcgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKaW5kZXggMWFmMWY0Mi4uY2E3MWQzNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCkBAIC0z
MCw4ICszMCwxMyBAQAogI2lmIEVOQUJMRShFWEVDVVRBQkxFX0FMTE9DQVRPUl9ERU1BTkQpCiAj
aW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYWdlUmVzZXJ2YXRpb24uaD4KKyNpZiBFTkFCTEUoQVNTRU1CTEVSX1dYX0VY
Q0xVU0lWRSkKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2VuZGlmCisjaW5jbHVkZSA8
d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVk1UYWdzLmg+CiAjZW5k
aWYKIApAQCAtNTMsMTUgKzU4LDQ2IEBAIHB1YmxpYzoKICAgICBEZW1hbmRFeGVjdXRhYmxlQWxs
b2NhdG9yKCkKICAgICAgICAgOiBNZXRhQWxsb2NhdG9yKDMyKSAvLyByb3VuZCB1cCBhbGwgYWxs
b2NhdGlvbnMgdG8gMzIgYnl0ZXMKICAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2soYWxs
b2NhdG9yc011dGV4KCkpOworICAgICAgICBhbGxvY2F0b3JzKCkuYWRkKHRoaXMpOwogICAgICAg
ICAvLyBEb24ndCBwcmVhbGxvY2F0ZSBhbnkgbWVtb3J5IGhlcmUuCiAgICAgfQogICAgIAogICAg
IHZpcnR1YWwgfkRlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IoKQogICAgIHsKKyAgICAgICAgewor
ICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhhbGxvY2F0b3JzTXV0ZXgoKSk7CisgICAgICAg
ICAgICBhbGxvY2F0b3JzKCkucmVtb3ZlKHRoaXMpOworICAgICAgICB9CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCByZXNlcnZhdGlvbnMuc2l6ZSgpOyArK2kpCiAgICAgICAgICAg
ICByZXNlcnZhdGlvbnMuYXQoaSkuZGVhbGxvY2F0ZSgpOwogICAgIH0KIAorICAgIHN0YXRpYyBz
aXplX3QgYnl0ZXNBbGxvY2F0ZWRCeUFsbEFsbG9jYXRvcnMoKQorICAgIHsKKyAgICAgICAgc2l6
ZV90IHRvdGFsID0gMDsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhhbGxvY2F0b3JzTXV0ZXgo
KSk7CisgICAgICAgIGZvciAoSGFzaFNldDxEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKj46OmNv
bnN0X2l0ZXJhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvcnMoKS5iZWdpbigpOyBhbGxvY2F0b3Ig
IT0gYWxsb2NhdG9ycygpLmVuZCgpOyArK2FsbG9jYXRvcikKKyAgICAgICAgICAgIHRvdGFsICs9
ICgqYWxsb2NhdG9yKS0+Ynl0ZXNBbGxvY2F0ZWQoKTsKKyAgICAgICAgcmV0dXJuIHRvdGFsOwor
ICAgIH0KKworICAgIHN0YXRpYyBzaXplX3QgYnl0ZXNDb21taXR0ZWRCeUFsbG9jYWN0b3JzKCkK
KyAgICB7CisgICAgICAgIHNpemVfdCB0b3RhbCA9IDA7CisgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2soYWxsb2NhdG9yc011dGV4KCkpOworICAgICAgICBmb3IgKEhhc2hTZXQ8RGVtYW5kRXhlY3V0
YWJsZUFsbG9jYXRvcio+Ojpjb25zdF9pdGVyYXRvciBhbGxvY2F0b3IgPSBhbGxvY2F0b3JzKCku
YmVnaW4oKTsgYWxsb2NhdG9yICE9IGFsbG9jYXRvcnMoKS5lbmQoKTsgKythbGxvY2F0b3IpCisg
ICAgICAgICAgICB0b3RhbCArPSAoKmFsbG9jYXRvciktPmJ5dGVzQ29tbWl0dGVkKCk7CisgICAg
ICAgIHJldHVybiB0b3RhbDsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBkdW1wUHJvZmlsZUZy
b21BbGxBbGxvY2F0b3JzKCkKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2soYWxsb2Nh
dG9yc011dGV4KCkpOworICAgICAgICBmb3IgKEhhc2hTZXQ8RGVtYW5kRXhlY3V0YWJsZUFsbG9j
YXRvcio+Ojpjb25zdF9pdGVyYXRvciBhbGxvY2F0b3IgPSBhbGxvY2F0b3JzKCkuYmVnaW4oKTsg
YWxsb2NhdG9yICE9IGFsbG9jYXRvcnMoKS5lbmQoKTsgKythbGxvY2F0b3IpCisgICAgICAgICAg
ICAoKmFsbG9jYXRvciktPmR1bXBQcm9maWxlKCk7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCB2b2lkKiBhbGxvY2F0ZU5ld1NwYWNlKHNpemVfdCYgbnVtUGFnZXMpCiAgICAgewpA
QCAtNzIsNyArMTA4LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBudW1QYWdlcyA9IG5ld051bVBh
Z2VzOwogICAgICAgICAKICNpZmRlZiBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVAotICAgICAgICBp
ZiAoYnl0ZXNBbGxvY2F0ZWQoKSA+PSBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVCkKKyAgICAgICAg
aWYgKGJ5dGVzQWxsb2NhdGVkQnlBbGxBbGxvY2F0b3JzKCkgPj0gRVhFQ1VUQUJMRV9NRU1PUllf
TElNSVQpCiAgICAgICAgICAgICByZXR1cm4gMDsKICNlbmRpZgogICAgICAgICAKQEAgLTk3LDIw
ICsxMzMsNTAgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIFZlY3RvcjxQYWdlUmVzZXJ2
YXRpb24sIDE2PiByZXNlcnZhdGlvbnM7CisgICAgc3RhdGljIEhhc2hTZXQ8RGVtYW5kRXhlY3V0
YWJsZUFsbG9jYXRvcio+JiBhbGxvY2F0b3JzKCkKKyAgICB7CisgICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKj4sIHNBbGxvY2F0b3Jz
LCAoKSk7CisgICAgICAgIHJldHVybiBzQWxsb2NhdG9yczsKKyAgICB9CisgICAgc3RhdGljIE11
dGV4JiBhbGxvY2F0b3JzTXV0ZXgoKQorICAgIHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICAgICAgcmV0dXJuIG11dGV4OworICAgIH0KIH07CiAK
LXN0YXRpYyBEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKiBhbGxvY2F0b3I7CisjaWYgRU5BQkxF
KEFTU0VNQkxFUl9XWF9FWENMVVNJVkUpCit2b2lkIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmluaXRp
YWxpemVBbGxvY2F0b3IoKQoreworfQorI2Vsc2UKK3N0YXRpYyBEZW1hbmRFeGVjdXRhYmxlQWxs
b2NhdG9yKiBnQWxsb2NhdG9yOworCituYW1lc3BhY2Ugeworc3RhdGljIGlubGluZSBEZW1hbmRF
eGVjdXRhYmxlQWxsb2NhdG9yKiBhbGxvY2F0b3IoKQoreworICAgIHJldHVybiBnQWxsb2NhdG9y
OworfQorfQogCiB2b2lkIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmluaXRpYWxpemVBbGxvY2F0b3Io
KQogewotICAgIEFTU0VSVCghYWxsb2NhdG9yKTsKLSAgICBhbGxvY2F0b3IgPSBuZXcgRGVtYW5k
RXhlY3V0YWJsZUFsbG9jYXRvcigpOwotICAgIENvZGVQcm9maWxpbmc6Om5vdGlmeUFsbG9jYXRv
cihhbGxvY2F0b3IpOworICAgIEFTU0VSVCghZ0FsbG9jYXRvcik7CisgICAgZ0FsbG9jYXRvciA9
IG5ldyBEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKCk7CisgICAgQ29kZVByb2ZpbGluZzo6bm90
aWZ5QWxsb2NhdG9yKGdBbGxvY2F0b3IpOwogfQorI2VuZGlmCiAKIEV4ZWN1dGFibGVBbGxvY2F0
b3I6OkV4ZWN1dGFibGVBbGxvY2F0b3IoSlNHbG9iYWxEYXRhJikKKyNpZiBFTkFCTEUoQVNTRU1C
TEVSX1dYX0VYQ0xVU0lWRSkKKyAgICA6IG1fYWxsb2NhdG9yKGFkb3B0UHRyKG5ldyAgRGVtYW5k
RXhlY3V0YWJsZUFsbG9jYXRvcigpKSkKKyNlbmRpZgoreworICAgIEFTU0VSVChhbGxvY2F0b3Io
KSk7Cit9CisKK0V4ZWN1dGFibGVBbGxvY2F0b3I6On5FeGVjdXRhYmxlQWxsb2NhdG9yKCkKIHsK
LSAgICBBU1NFUlQoYWxsb2NhdG9yKTsKIH0KIAogYm9vbCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpp
c1ZhbGlkKCkgY29uc3QKQEAgLTEyMSw3ICsxODcsNyBAQCBib29sIEV4ZWN1dGFibGVBbGxvY2F0
b3I6OmlzVmFsaWQoKSBjb25zdAogYm9vbCBFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9y
eVByZXNzdXJlKCkKIHsKICNpZmRlZiBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVAotICAgIHJldHVy
biBhbGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgPiBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVCAv
IDI7CisgICAgcmV0dXJuIERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3I6OmJ5dGVzQWxsb2NhdGVk
QnlBbGxBbGxvY2F0b3JzKCkgPiBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVCAvIDI7CiAjZWxzZQog
ICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpAQCAtMTMwLDcgKzE5Niw3IEBAIGJvb2wgRXhlY3V0
YWJsZUFsbG9jYXRvcjo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpCiBkb3VibGUgRXhlY3V0YWJsZUFs
bG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKHNpemVfdCBhZGRlZE1lbW9yeVVzYWdl
KQogewogI2lmZGVmIEVYRUNVVEFCTEVfTUVNT1JZX0xJTUlUCi0gICAgc2l6ZV90IGJ5dGVzQWxs
b2NhdGVkID0gYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpICsgYWRkZWRNZW1vcnlVc2FnZTsK
KyAgICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yOjpi
eXRlc0FsbG9jYXRlZEJ5QWxsQWxsb2NhdG9ycygpICsgYWRkZWRNZW1vcnlVc2FnZTsKICAgICBp
ZiAoYnl0ZXNBbGxvY2F0ZWQgPj0gRVhFQ1VUQUJMRV9NRU1PUllfTElNSVQpCiAgICAgICAgIGJ5
dGVzQWxsb2NhdGVkID0gRVhFQ1VUQUJMRV9NRU1PUllfTElNSVQ7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGRvdWJsZT4oRVhFQ1VUQUJMRV9NRU1PUllfTElNSVQpIC8KQEAgLTE0Myw3ICsyMDks
NyBAQCBkb3VibGUgRXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVy
KHNpemVfdCBhZGRlZE1lbW9yeVVzYWdlKQogCiBQYXNzUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlI
YW5kbGU+IEV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKEpTR2xvYmFsRGF0YSYsIHNpemVf
dCBzaXplSW5CeXRlcywgdm9pZCogb3duZXJVSUQsIEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9y
dCkKIHsKLSAgICBSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gcmVzdWx0ID0gYWxsb2Nh
dG9yLT5hbGxvY2F0ZShzaXplSW5CeXRlcywgb3duZXJVSUQpOworICAgIFJlZlB0cjxFeGVjdXRh
YmxlTWVtb3J5SGFuZGxlPiByZXN1bHQgPSBhbGxvY2F0b3IoKS0+YWxsb2NhdGUoc2l6ZUluQnl0
ZXMsIG93bmVyVUlEKTsKICAgICBpZiAoIXJlc3VsdCAmJiBlZmZvcnQgPT0gSklUQ29tcGlsYXRp
b25NdXN0U3VjY2VlZCkKICAgICAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2UoKTsKQEAgLTE1MSwxMyArMjE3LDEzIEBAIFBhc3NSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhh
bmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoSlNHbG9iYWxEYXRhJiwKIAogc2l6
ZV90IEV4ZWN1dGFibGVBbGxvY2F0b3I6OmNvbW1pdHRlZEJ5dGVDb3VudCgpCiB7Ci0gICAgcmV0
dXJuIGFsbG9jYXRvci0+Ynl0ZXNDb21taXR0ZWQoKTsKKyAgICByZXR1cm4gRGVtYW5kRXhlY3V0
YWJsZUFsbG9jYXRvcjo6Ynl0ZXNDb21taXR0ZWRCeUFsbG9jYWN0b3JzKCk7CiB9CiAKICNpZiBF
TkFCTEUoTUVUQV9BTExPQ0FUT1JfUFJPRklMRSkKIHZvaWQgRXhlY3V0YWJsZUFsbG9jYXRvcjo6
ZHVtcFByb2ZpbGUoKQogewotICAgIGFsbG9jYXRvci0+ZHVtcFByb2ZpbGUoKTsKKyAgICBEZW1h
bmRFeGVjdXRhYmxlQWxsb2NhdG9yOjpkdW1wUHJvZmlsZUZyb21BbGxBbGxvY2F0b3JzKCk7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxv
Y2F0b3IuaAppbmRleCAwYTA1ODMwLi44YTE0YWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaApAQCAtOTYsMTEgKzk2LDE2IEBAIHR5cGVk
ZWYgV1RGOjpNZXRhQWxsb2NhdG9ySGFuZGxlIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU7CiAKICNp
ZiBFTkFCTEUoSklUKSAmJiBFTkFCTEUoQVNTRU1CTEVSKQogCisjaWYgRU5BQkxFKEVYRUNVVEFC
TEVfQUxMT0NBVE9SX0RFTUFORCkKK2NsYXNzIERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3I7Cisj
ZW5kaWYKKwogY2xhc3MgRXhlY3V0YWJsZUFsbG9jYXRvciB7CiAgICAgZW51bSBQcm90ZWN0aW9u
U2V0dGluZyB7IFdyaXRhYmxlLCBFeGVjdXRhYmxlIH07CiAKIHB1YmxpYzoKICAgICBFeGVjdXRh
YmxlQWxsb2NhdG9yKEpTR2xvYmFsRGF0YSYpOworICAgIH5FeGVjdXRhYmxlQWxsb2NhdG9yKCk7
CiAgICAgCiAgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUFsbG9jYXRvcigpOwogCkBAIC0yMzUs
NyArMjQwLDEzIEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoQVNTRU1CTEVSX1dYX0VYQ0xVU0lW
RSkKICAgICBzdGF0aWMgdm9pZCByZXByb3RlY3RSZWdpb24odm9pZCosIHNpemVfdCwgUHJvdGVj
dGlvblNldHRpbmcpOworI2lmIEVOQUJMRShFWEVDVVRBQkxFX0FMTE9DQVRPUl9ERU1BTkQpCisg
ICAgLy8gV2UgY3JlYXRlIGEgTWV0YUFsbG9jYXRvciBmb3IgZWFjaCBKUyBnbG9iYWwgb2JqZWN0
LgorICAgIE93blB0cjxEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yPiBtX2FsbG9jYXRvcjsKKyAg
ICBEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKiBhbGxvY2F0b3IoKSB7IHJldHVybiBtX2FsbG9j
YXRvci5nZXQoKTsgfQogI2VuZGlmCisjZW5kaWYKKwogfTsKIAogI2VuZGlmIC8vIEVOQUJMRShK
SVQpICYmIEVOQUJMRShBU1NFTUJMRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL01ldGFBbGxvY2F0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWV0YUFs
bG9jYXRvci5oCmluZGV4IGNjNTM4NjYuLjhhNzNhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvTWV0YUFsbG9jYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTWV0YUFsbG9jYXRvci5oCkBAIC0yMDQsNiArMjA0LDcgQEAgaW5saW5lIE1ldGFBbGxv
Y2F0b3I6On5NZXRhQWxsb2NhdG9yKCkKICAgICAgICAgZnJlZUZyZWVTcGFjZU5vZGUobm9kZSk7
CiAgICAgICAgIG5vZGUgPSBuZXh0OwogICAgIH0KKyAgICBtX2xvY2suRmluYWxpemUoKTsKICNp
Zm5kZWYgTkRFQlVHCiAgICAgQVNTRVJUKCFtX21hbGxvY0JhbGFuY2UpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RDU3BpbkxvY2suaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvVENTcGluTG9jay5oCmluZGV4IDgxYjdkMGMuLjdmMTliNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVENTcGluTG9jay5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVENTcGluTG9jay5oCkBAIC0xMjgsNiArMTI4LDcgQEAg
c3RydWN0IFRDTWFsbG9jX1NwaW5Mb2NrIHsKICAgICB9CiAKICAgICBpbmxpbmUgdm9pZCBJbml0
KCkgeyBsb2Nrd29yZF8gPSAwOyB9CisgICAgaW5saW5lIHZvaWQgRmluYWxpemUoKSB7IH0KIAog
ICAgIHZvbGF0aWxlIHVuc2lnbmVkIGludCBsb2Nrd29yZF87CiB9OwpAQCAtMjIxLDYgKzIyMiw3
IEBAIHN0cnVjdCBUQ01hbGxvY19TcGluTG9jayB7CiAgICAgfQogCiAgICAgaW5saW5lIHZvaWQg
SW5pdCgpIHsgbV9sb2Nrd29yZCA9IDA7IH0KKyAgICBpbmxpbmUgdm9pZCBGaW5hbGl6ZSgpIHsg
fQogCiAgICAgTE9ORyBtX2xvY2t3b3JkOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131080</attachid>
            <date>2012-03-09 12:52:50 -0800</date>
            <delta_ts>2012-03-10 09:38:58 -0800</delta_ts>
            <desc>fix build error for ExecutableAllocatorFixedVMPool</desc>
            <filename>80532.patch</filename>
            <type>text/plain</type>
            <size>10426</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDMxMjYwNjQuLmRmMmEyZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTAzLTA5ICBZb25nIExpICA8eW9s
aUByaW0uY29tPgorCisgICAgICAgIFdlYiBXb3JrZXIgY3Jhc2hlcyB3aXRoIFdYX0VYQ0xVU0lW
RQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA1MzIK
KworICAgICAgICBMZXQgZWFjaCBKUyBnbG9iYWwgb2JqZWN0IG93biBhIG1ldGEgYWxsb2NhdG9y
CisgICAgICAgIGZvciBXWF9FWENMVVNJVkUgdG8gYXZvaWQgY29uZmxpY3RzIGZyb20gV2ViIFdv
cmtlci4KKyAgICAgICAgQWxzbyBmaXggYSBtdXRleCBsZWFrIGluIE1ldGFBbGxvY2F0b3IncyBk
dG9yLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDOjpEZW1hbmRFeGVjdXRh
YmxlQWxsb2NhdG9yOjpEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6
RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjo6fkRlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IpOgor
ICAgICAgICAoSlNDOjpEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yOjpieXRlc0FsbG9jYXRlZEJ5
QWxsQWxsb2NhdG9ycyk6CisgICAgICAgIChEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKToKKyAg
ICAgICAgKEpTQzo6RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjo6Ynl0ZXNDb21taXR0ZWRCeUFs
bG9jYWN0b3JzKToKKyAgICAgICAgKEpTQzo6RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjo6ZHVt
cFByb2ZpbGVGcm9tQWxsQWxsb2NhdG9ycyk6CisgICAgICAgIChKU0M6OkRlbWFuZEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OmFsbG9jYXRlTmV3U3BhY2UpOgorICAgICAgICAoSlNDOjpEZW1hbmRFeGVj
dXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0b3JzKToKKyAgICAgICAgKEpTQzo6RGVtYW5kRXhlY3V0
YWJsZUFsbG9jYXRvcjo6YWxsb2NhdG9yc011dGV4KToKKyAgICAgICAgKEpTQyk6CisgICAgICAg
IChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmluaXRpYWxpemVBbGxvY2F0b3IpOgorICAgICAg
ICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjpFeGVjdXRhYmxlQWxsb2NhdG9yKToKKyAgICAg
ICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6dW5kZXJNZW1vcnlQcmVzc3VyZSk6CisgICAg
ICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeVByZXNzdXJlTXVsdGlwbGllcik6
CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKToKKyAgICAgICAg
KEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6Y29tbWl0dGVkQnl0ZUNvdW50KToKKyAgICAgICAg
KEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6ZHVtcFByb2ZpbGUpOgorICAgICAgICAqIGppdC9F
eGVjdXRhYmxlQWxsb2NhdG9yLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAoRXhlY3V0YWJs
ZUFsbG9jYXRvcik6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRv
cik6CisgICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuaDoKKyAgICAgICAgKFdURjo6TWV0YUFs
bG9jYXRvcjo6fk1ldGFBbGxvY2F0b3IpOiBGaW5hbGl6ZSB0aGUgc3BpbiBsb2NrLgorICAgICAg
ICAqIHd0Zi9UQ1NwaW5Mb2NrLmg6CisgICAgICAgIChUQ01hbGxvY19TcGluTG9jazo6RmluYWxp
emUpOiBBZGQgZW1wdHkgRmluYWxpemUoKSB0byBzb21lIGltcGxlbWVudGF0aW9ucy4KKwogMjAx
Mi0wMy0wOSAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdp
bmRvd3MgZGVidWcgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKaW5kZXggMWFmMWY0Mi4uNTkxMmY4NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCkBAIC0z
MCw4ICszMCwxMyBAQAogI2lmIEVOQUJMRShFWEVDVVRBQkxFX0FMTE9DQVRPUl9ERU1BTkQpCiAj
aW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYWdlUmVzZXJ2YXRpb24uaD4KKyNpZiBFTkFCTEUoQVNTRU1CTEVSX1dYX0VY
Q0xVU0lWRSkKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2VuZGlmCisjaW5jbHVkZSA8
d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVk1UYWdzLmg+CiAjZW5k
aWYKIApAQCAtNTMsMTUgKzU4LDQ4IEBAIHB1YmxpYzoKICAgICBEZW1hbmRFeGVjdXRhYmxlQWxs
b2NhdG9yKCkKICAgICAgICAgOiBNZXRhQWxsb2NhdG9yKDMyKSAvLyByb3VuZCB1cCBhbGwgYWxs
b2NhdGlvbnMgdG8gMzIgYnl0ZXMKICAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2soYWxs
b2NhdG9yc011dGV4KCkpOworICAgICAgICBhbGxvY2F0b3JzKCkuYWRkKHRoaXMpOwogICAgICAg
ICAvLyBEb24ndCBwcmVhbGxvY2F0ZSBhbnkgbWVtb3J5IGhlcmUuCiAgICAgfQogICAgIAogICAg
IHZpcnR1YWwgfkRlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IoKQogICAgIHsKKyAgICAgICAgewor
ICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhhbGxvY2F0b3JzTXV0ZXgoKSk7CisgICAgICAg
ICAgICBhbGxvY2F0b3JzKCkucmVtb3ZlKHRoaXMpOworICAgICAgICB9CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCByZXNlcnZhdGlvbnMuc2l6ZSgpOyArK2kpCiAgICAgICAgICAg
ICByZXNlcnZhdGlvbnMuYXQoaSkuZGVhbGxvY2F0ZSgpOwogICAgIH0KIAorICAgIHN0YXRpYyBz
aXplX3QgYnl0ZXNBbGxvY2F0ZWRCeUFsbEFsbG9jYXRvcnMoKQorICAgIHsKKyAgICAgICAgc2l6
ZV90IHRvdGFsID0gMDsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhhbGxvY2F0b3JzTXV0ZXgo
KSk7CisgICAgICAgIGZvciAoSGFzaFNldDxEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKj46OmNv
bnN0X2l0ZXJhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvcnMoKS5iZWdpbigpOyBhbGxvY2F0b3Ig
IT0gYWxsb2NhdG9ycygpLmVuZCgpOyArK2FsbG9jYXRvcikKKyAgICAgICAgICAgIHRvdGFsICs9
ICgqYWxsb2NhdG9yKS0+Ynl0ZXNBbGxvY2F0ZWQoKTsKKyAgICAgICAgcmV0dXJuIHRvdGFsOwor
ICAgIH0KKworICAgIHN0YXRpYyBzaXplX3QgYnl0ZXNDb21taXR0ZWRCeUFsbG9jYWN0b3JzKCkK
KyAgICB7CisgICAgICAgIHNpemVfdCB0b3RhbCA9IDA7CisgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2soYWxsb2NhdG9yc011dGV4KCkpOworICAgICAgICBmb3IgKEhhc2hTZXQ8RGVtYW5kRXhlY3V0
YWJsZUFsbG9jYXRvcio+Ojpjb25zdF9pdGVyYXRvciBhbGxvY2F0b3IgPSBhbGxvY2F0b3JzKCku
YmVnaW4oKTsgYWxsb2NhdG9yICE9IGFsbG9jYXRvcnMoKS5lbmQoKTsgKythbGxvY2F0b3IpCisg
ICAgICAgICAgICB0b3RhbCArPSAoKmFsbG9jYXRvciktPmJ5dGVzQ29tbWl0dGVkKCk7CisgICAg
ICAgIHJldHVybiB0b3RhbDsKKyAgICB9CisKKyNpZiBFTkFCTEUoTUVUQV9BTExPQ0FUT1JfUFJP
RklMRSkKKyAgICBzdGF0aWMgdm9pZCBkdW1wUHJvZmlsZUZyb21BbGxBbGxvY2F0b3JzKCkKKyAg
ICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2soYWxsb2NhdG9yc011dGV4KCkpOworICAgICAg
ICBmb3IgKEhhc2hTZXQ8RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcio+Ojpjb25zdF9pdGVyYXRv
ciBhbGxvY2F0b3IgPSBhbGxvY2F0b3JzKCkuYmVnaW4oKTsgYWxsb2NhdG9yICE9IGFsbG9jYXRv
cnMoKS5lbmQoKTsgKythbGxvY2F0b3IpCisgICAgICAgICAgICAoKmFsbG9jYXRvciktPmR1bXBQ
cm9maWxlKCk7CisgICAgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQq
IGFsbG9jYXRlTmV3U3BhY2Uoc2l6ZV90JiBudW1QYWdlcykKICAgICB7CkBAIC03Miw3ICsxMTAs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG51bVBhZ2VzID0gbmV3TnVtUGFnZXM7CiAgICAgICAg
IAogI2lmZGVmIEVYRUNVVEFCTEVfTUVNT1JZX0xJTUlUCi0gICAgICAgIGlmIChieXRlc0FsbG9j
YXRlZCgpID49IEVYRUNVVEFCTEVfTUVNT1JZX0xJTUlUKQorICAgICAgICBpZiAoYnl0ZXNBbGxv
Y2F0ZWRCeUFsbEFsbG9jYXRvcnMoKSA+PSBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVCkKICAgICAg
ICAgICAgIHJldHVybiAwOwogI2VuZGlmCiAgICAgICAgIApAQCAtOTcsMjAgKzEzNSw1MCBAQCBw
cm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgVmVjdG9yPFBhZ2VSZXNlcnZhdGlvbiwgMTY+IHJl
c2VydmF0aW9uczsKKyAgICBzdGF0aWMgSGFzaFNldDxEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9y
Kj4mIGFsbG9jYXRvcnMoKQorICAgIHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNo
U2V0PERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IqPiwgc0FsbG9jYXRvcnMsICgpKTsKKyAgICAg
ICAgcmV0dXJuIHNBbGxvY2F0b3JzOworICAgIH0KKyAgICBzdGF0aWMgTXV0ZXgmIGFsbG9jYXRv
cnNNdXRleCgpCisgICAgeworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRl
eCwgKCkpOworICAgICAgICByZXR1cm4gbXV0ZXg7CisgICAgfQogfTsKIAotc3RhdGljIERlbWFu
ZEV4ZWN1dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvcjsKKyNpZiBFTkFCTEUoQVNTRU1CTEVSX1dY
X0VYQ0xVU0lWRSkKK3ZvaWQgRXhlY3V0YWJsZUFsbG9jYXRvcjo6aW5pdGlhbGl6ZUFsbG9jYXRv
cigpCit7Cit9CisjZWxzZQorc3RhdGljIERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IqIGdBbGxv
Y2F0b3I7CisKK25hbWVzcGFjZSB7CitzdGF0aWMgaW5saW5lIERlbWFuZEV4ZWN1dGFibGVBbGxv
Y2F0b3IqIGFsbG9jYXRvcigpCit7CisgICAgcmV0dXJuIGdBbGxvY2F0b3I7Cit9Cit9CiAKIHZv
aWQgRXhlY3V0YWJsZUFsbG9jYXRvcjo6aW5pdGlhbGl6ZUFsbG9jYXRvcigpCiB7Ci0gICAgQVNT
RVJUKCFhbGxvY2F0b3IpOwotICAgIGFsbG9jYXRvciA9IG5ldyBEZW1hbmRFeGVjdXRhYmxlQWxs
b2NhdG9yKCk7Ci0gICAgQ29kZVByb2ZpbGluZzo6bm90aWZ5QWxsb2NhdG9yKGFsbG9jYXRvcik7
CisgICAgQVNTRVJUKCFnQWxsb2NhdG9yKTsKKyAgICBnQWxsb2NhdG9yID0gbmV3IERlbWFuZEV4
ZWN1dGFibGVBbGxvY2F0b3IoKTsKKyAgICBDb2RlUHJvZmlsaW5nOjpub3RpZnlBbGxvY2F0b3Io
Z0FsbG9jYXRvcik7CiB9CisjZW5kaWYKIAogRXhlY3V0YWJsZUFsbG9jYXRvcjo6RXhlY3V0YWJs
ZUFsbG9jYXRvcihKU0dsb2JhbERhdGEmKQorI2lmIEVOQUJMRShBU1NFTUJMRVJfV1hfRVhDTFVT
SVZFKQorICAgIDogbV9hbGxvY2F0b3IoYWRvcHRQdHIobmV3ICBEZW1hbmRFeGVjdXRhYmxlQWxs
b2NhdG9yKCkpKQorI2VuZGlmCit7CisgICAgQVNTRVJUKGFsbG9jYXRvcigpKTsKK30KKworRXhl
Y3V0YWJsZUFsbG9jYXRvcjo6fkV4ZWN1dGFibGVBbGxvY2F0b3IoKQogewotICAgIEFTU0VSVChh
bGxvY2F0b3IpOwogfQogCiBib29sIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmlzVmFsaWQoKSBjb25z
dApAQCAtMTIxLDcgKzE4OSw3IEBAIGJvb2wgRXhlY3V0YWJsZUFsbG9jYXRvcjo6aXNWYWxpZCgp
IGNvbnN0CiBib29sIEV4ZWN1dGFibGVBbGxvY2F0b3I6OnVuZGVyTWVtb3J5UHJlc3N1cmUoKQog
ewogI2lmZGVmIEVYRUNVVEFCTEVfTUVNT1JZX0xJTUlUCi0gICAgcmV0dXJuIGFsbG9jYXRvci0+
Ynl0ZXNBbGxvY2F0ZWQoKSA+IEVYRUNVVEFCTEVfTUVNT1JZX0xJTUlUIC8gMjsKKyAgICByZXR1
cm4gRGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjo6Ynl0ZXNBbGxvY2F0ZWRCeUFsbEFsbG9jYXRv
cnMoKSA+IEVYRUNVVEFCTEVfTUVNT1JZX0xJTUlUIC8gMjsKICNlbHNlCiAgICAgcmV0dXJuIGZh
bHNlOwogI2VuZGlmCkBAIC0xMzAsNyArMTk4LDcgQEAgYm9vbCBFeGVjdXRhYmxlQWxsb2NhdG9y
Ojp1bmRlck1lbW9yeVByZXNzdXJlKCkKIGRvdWJsZSBFeGVjdXRhYmxlQWxsb2NhdG9yOjptZW1v
cnlQcmVzc3VyZU11bHRpcGxpZXIoc2l6ZV90IGFkZGVkTWVtb3J5VXNhZ2UpCiB7CiAjaWZkZWYg
RVhFQ1VUQUJMRV9NRU1PUllfTElNSVQKLSAgICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBhbGxv
Y2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgKyBhZGRlZE1lbW9yeVVzYWdlOworICAgIHNpemVfdCBi
eXRlc0FsbG9jYXRlZCA9IERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3I6OmJ5dGVzQWxsb2NhdGVk
QnlBbGxBbGxvY2F0b3JzKCkgKyBhZGRlZE1lbW9yeVVzYWdlOwogICAgIGlmIChieXRlc0FsbG9j
YXRlZCA+PSBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVCkKICAgICAgICAgYnl0ZXNBbGxvY2F0ZWQg
PSBFWEVDVVRBQkxFX01FTU9SWV9MSU1JVDsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91Ymxl
PihFWEVDVVRBQkxFX01FTU9SWV9MSU1JVCkgLwpAQCAtMTQzLDcgKzIxMSw3IEBAIGRvdWJsZSBF
eGVjdXRhYmxlQWxsb2NhdG9yOjptZW1vcnlQcmVzc3VyZU11bHRpcGxpZXIoc2l6ZV90IGFkZGVk
TWVtb3J5VXNhZ2UpCiAKIFBhc3NSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0
YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoSlNHbG9iYWxEYXRhJiwgc2l6ZV90IHNpemVJbkJ5dGVz
LCB2b2lkKiBvd25lclVJRCwgSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQogewotICAgIFJl
ZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiByZXN1bHQgPSBhbGxvY2F0b3ItPmFsbG9jYXRl
KHNpemVJbkJ5dGVzLCBvd25lclVJRCk7CisgICAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5k
bGU+IHJlc3VsdCA9IGFsbG9jYXRvcigpLT5hbGxvY2F0ZShzaXplSW5CeXRlcywgb3duZXJVSUQp
OwogICAgIGlmICghcmVzdWx0ICYmIGVmZm9ydCA9PSBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVk
KQogICAgICAgICBDUkFTSCgpOwogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwpAQCAtMTUx
LDEzICsyMTksMTMgQEAgUGFzc1JlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBFeGVjdXRh
YmxlQWxsb2NhdG9yOjphbGxvY2F0ZShKU0dsb2JhbERhdGEmLAogCiBzaXplX3QgRXhlY3V0YWJs
ZUFsbG9jYXRvcjo6Y29tbWl0dGVkQnl0ZUNvdW50KCkKIHsKLSAgICByZXR1cm4gYWxsb2NhdG9y
LT5ieXRlc0NvbW1pdHRlZCgpOworICAgIHJldHVybiBEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9y
OjpieXRlc0NvbW1pdHRlZEJ5QWxsb2NhY3RvcnMoKTsKIH0KIAogI2lmIEVOQUJMRShNRVRBX0FM
TE9DQVRPUl9QUk9GSUxFKQogdm9pZCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpkdW1wUHJvZmlsZSgp
CiB7Ci0gICAgYWxsb2NhdG9yLT5kdW1wUHJvZmlsZSgpOworICAgIERlbWFuZEV4ZWN1dGFibGVB
bGxvY2F0b3I6OmR1bXBQcm9maWxlRnJvbUFsbEFsbG9jYXRvcnMoKTsKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCmluZGV4
IDBhMDU4MzAuLjhhMTRhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhl
Y3V0YWJsZUFsbG9jYXRvci5oCkBAIC05NiwxMSArOTYsMTYgQEAgdHlwZWRlZiBXVEY6Ok1ldGFB
bGxvY2F0b3JIYW5kbGUgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZTsKIAogI2lmIEVOQUJMRShKSVQp
ICYmIEVOQUJMRShBU1NFTUJMRVIpCiAKKyNpZiBFTkFCTEUoRVhFQ1VUQUJMRV9BTExPQ0FUT1Jf
REVNQU5EKQorY2xhc3MgRGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcjsKKyNlbmRpZgorCiBjbGFz
cyBFeGVjdXRhYmxlQWxsb2NhdG9yIHsKICAgICBlbnVtIFByb3RlY3Rpb25TZXR0aW5nIHsgV3Jp
dGFibGUsIEV4ZWN1dGFibGUgfTsKIAogcHVibGljOgogICAgIEV4ZWN1dGFibGVBbGxvY2F0b3Io
SlNHbG9iYWxEYXRhJik7CisgICAgfkV4ZWN1dGFibGVBbGxvY2F0b3IoKTsKICAgICAKICAgICBz
dGF0aWMgdm9pZCBpbml0aWFsaXplQWxsb2NhdG9yKCk7CiAKQEAgLTIzNSw3ICsyNDAsMTMgQEAg
cHJpdmF0ZToKIAogI2lmIEVOQUJMRShBU1NFTUJMRVJfV1hfRVhDTFVTSVZFKQogICAgIHN0YXRp
YyB2b2lkIHJlcHJvdGVjdFJlZ2lvbih2b2lkKiwgc2l6ZV90LCBQcm90ZWN0aW9uU2V0dGluZyk7
CisjaWYgRU5BQkxFKEVYRUNVVEFCTEVfQUxMT0NBVE9SX0RFTUFORCkKKyAgICAvLyBXZSBjcmVh
dGUgYSBNZXRhQWxsb2NhdG9yIGZvciBlYWNoIEpTIGdsb2JhbCBvYmplY3QuCisgICAgT3duUHRy
PERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3I+IG1fYWxsb2NhdG9yOworICAgIERlbWFuZEV4ZWN1
dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvcigpIHsgcmV0dXJuIG1fYWxsb2NhdG9yLmdldCgpOyB9
CiAjZW5kaWYKKyNlbmRpZgorCiB9OwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkgJiYgRU5BQkxF
KEFTU0VNQkxFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0
YWJsZUFsbG9jYXRvckZpeGVkVk1Qb29sLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZUFsbG9jYXRvckZpeGVkVk1Qb29sLmNwcAppbmRleCBmMDkzMDEwLi45NTllYTc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0
b3JGaXhlZFZNUG9vbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCkBAIC0xMDQsNiArMTA0LDEwIEBAIEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OkV4ZWN1dGFibGVBbGxvY2F0b3IoSlNHbG9iYWxEYXRhJikKICAgICBBU1NF
UlQoYWxsb2NhdG9yKTsKIH0KIAorRXhlY3V0YWJsZUFsbG9jYXRvcjo6fkV4ZWN1dGFibGVBbGxv
Y2F0b3IoKQoreworfQorCiBib29sIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmlzVmFsaWQoKSBjb25z
dAogewogICAgIHJldHVybiAhIWFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NZXRhQWxsb2NhdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL01ldGFBbGxvY2F0b3IuaAppbmRleCBjYzUzODY2Li44YTczYTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01ldGFBbGxvY2F0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01ldGFBbGxvY2F0b3IuaApAQCAtMjA0LDYgKzIw
NCw3IEBAIGlubGluZSBNZXRhQWxsb2NhdG9yOjp+TWV0YUFsbG9jYXRvcigpCiAgICAgICAgIGZy
ZWVGcmVlU3BhY2VOb2RlKG5vZGUpOwogICAgICAgICBub2RlID0gbmV4dDsKICAgICB9CisgICAg
bV9sb2NrLkZpbmFsaXplKCk7CiAjaWZuZGVmIE5ERUJVRwogICAgIEFTU0VSVCghbV9tYWxsb2NC
YWxhbmNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9U
Q1NwaW5Mb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RDU3BpbkxvY2suaAppbmRl
eCA4MWI3ZDBjLi43ZjE5YjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L1RDU3BpbkxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RDU3BpbkxvY2su
aApAQCAtMTI4LDYgKzEyOCw3IEBAIHN0cnVjdCBUQ01hbGxvY19TcGluTG9jayB7CiAgICAgfQog
CiAgICAgaW5saW5lIHZvaWQgSW5pdCgpIHsgbG9ja3dvcmRfID0gMDsgfQorICAgIGlubGluZSB2
b2lkIEZpbmFsaXplKCkgeyB9CiAKICAgICB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgbG9ja3dvcmRf
OwogfTsKQEAgLTIyMSw2ICsyMjIsNyBAQCBzdHJ1Y3QgVENNYWxsb2NfU3BpbkxvY2sgewogICAg
IH0KIAogICAgIGlubGluZSB2b2lkIEluaXQoKSB7IG1fbG9ja3dvcmQgPSAwOyB9CisgICAgaW5s
aW5lIHZvaWQgRmluYWxpemUoKSB7IH0KIAogICAgIExPTkcgbV9sb2Nrd29yZDsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>