<?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>102828</bug_id>
          
          <creation_ts>2012-11-20 11:58:28 -0800</creation_ts>
          <short_desc>r134080 causes heap problem on linux systems where PAGESIZE != 4096</short_desc>
          <delta_ts>2013-01-18 12:51:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</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>0</everconfirmed>
          <reporter name="Balazs Kilvady">kilvadyb</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>buildbot</cc>
    
    <cc>fpizlo</cc>
    
    <cc>fu</cc>
    
    <cc>gergely</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>palfia</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>772058</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-20 11:58:28 -0800</bug_when>
    <thetext>On linux systems where PAGESIZE == 16k we could use webkit/jsc with USE_SYSTEM_MALLOC=1 until r134080 caused memory handling problems like FastMalloc. With modifying 2 constant values it can be fixed. Still a question if static const size_t s_regionSize = 64 * KB; in class Region; of BlockAllocator.h should also be modified ( a higher value would be more efficient for bigger PAGESIZE?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772069</commentid>
    <comment_count>1</comment_count>
      <attachid>175259</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-20 12:05:40 -0800</bug_when>
    <thetext>Created attachment 175259
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775799</commentid>
    <comment_count>2</comment_count>
      <attachid>175259</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-11-26 13:00:43 -0800</bug_when>
    <thetext>Comment on attachment 175259
proposed patch

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

I&apos;m somewhat confused as to why a different page size makes things segfault. Where exactly did it segfault? I wouldn&apos;t be opposed to making the Region size variable, e.g. 16 * WTF::pageSize() or something like that.

&gt; Source/JavaScriptCore/heap/MarkStack.cpp:48
&gt; +#if OS(LINUX) &amp;&amp; COMPILER(GCC)

Instead of putting a bunch of nasty ifdefs everywhere, maybe you could use WTF::pageSize()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776480</commentid>
    <comment_count>3</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-27 01:40:12 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 175259 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175259&amp;action=review
&gt; 
&gt; I&apos;m somewhat confused as to why a different page size makes things segfault. Where exactly did it segfault? I wouldn&apos;t be opposed to making the Region size variable, e.g. 16 * WTF::pageSize() or something like that.
I don&apos;t know where exactly the error comes from (it varies by tests, debug/release) but it always happens in a heap operation since r134080. This patch fixed the problem.

&gt; &gt; Source/JavaScriptCore/heap/MarkStack.cpp:48
&gt; &gt; +#if OS(LINUX) &amp;&amp; COMPILER(GCC)
&gt; 
&gt; Instead of putting a bunch of nasty ifdefs everywhere, maybe you could use WTF::pageSize()?
Would be better but I cannot test in on windows and a WTF::pageSize() should be multi platform I guess. I will try to add a WTF::pageSize() implementation for Linux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776525</commentid>
    <comment_count>4</comment_count>
      <attachid>176210</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-27 02:25:01 -0800</bug_when>
    <thetext>Created attachment 176210
proposed patch (fixed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776532</commentid>
    <comment_count>5</comment_count>
      <attachid>176210</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-27 02:30:44 -0800</bug_when>
    <thetext>Comment on attachment 176210
proposed patch (fixed)

I have found the WTF::pageSize() implementation so I made a new patch using it. Also interested in why different pagesize causes a heap problem. Also would be fine to find out how to make FastMalloc to work with not 4k pagesize. I hope some heap/alloc specialist can find it out :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776535</commentid>
    <comment_count>6</comment_count>
      <attachid>176212</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-27 02:36:40 -0800</bug_when>
    <thetext>Created attachment 176212
proposed patch (fixed)

ChangeLog text changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776584</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-27 03:49:44 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 175259 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175259&amp;action=review
&gt; &gt; 
&gt; &gt; I&apos;m somewhat confused as to why a different page size makes things segfault. Where exactly did it segfault? I wouldn&apos;t be opposed to making the Region size variable, e.g. 16 * WTF::pageSize() or something like that.
&gt; I don&apos;t know where exactly the error comes from (it varies by tests, debug/release) but it always happens in a heap operation since r134080. This patch fixed the problem.

I don&apos;t like the idea of doing a blind fix.  Can you try to do more investigation into where in our memory management logic things go wrong?

It would be good to understand this.  It may even be that you&apos;ve found a more fundamental bug that happens to only show up with larger page sizes, but is just harder to spot with the usual page sizes that most WebKit clients use.

&gt; 
&gt; &gt; &gt; Source/JavaScriptCore/heap/MarkStack.cpp:48
&gt; &gt; &gt; +#if OS(LINUX) &amp;&amp; COMPILER(GCC)
&gt; &gt; 
&gt; &gt; Instead of putting a bunch of nasty ifdefs everywhere, maybe you could use WTF::pageSize()?
&gt; Would be better but I cannot test in on windows and a WTF::pageSize() should be multi platform I guess. I will try to add a WTF::pageSize() implementation for Linux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776974</commentid>
    <comment_count>8</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-11-27 10:51:12 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (From update of attachment 175259 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175259&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;m somewhat confused as to why a different page size makes things segfault. Where exactly did it segfault? I wouldn&apos;t be opposed to making the Region size variable, e.g. 16 * WTF::pageSize() or something like that.
&gt; &gt; I don&apos;t know where exactly the error comes from (it varies by tests, debug/release) but it always happens in a heap operation since r134080. This patch fixed the problem.
&gt; 
&gt; I don&apos;t like the idea of doing a blind fix.  Can you try to do more investigation into where in our memory management logic things go wrong?
&gt; 
&gt; It would be good to understand this.  It may even be that you&apos;ve found a more fundamental bug that happens to only show up with larger page sizes, but is just harder to spot with the usual page sizes that most WebKit clients use.
I will try to find it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777145</commentid>
    <comment_count>9</comment_count>
      <attachid>176212</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-27 12:57:06 -0800</bug_when>
    <thetext>Comment on attachment 176212
proposed patch (fixed)

Attachment 176212 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15025099</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792143</commentid>
    <comment_count>10</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2012-12-15 11:16:50 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (From update of attachment 175259 [details] [details] [details])
happens in a heap operation since r134080. This patch fixed the problem.
&gt; 
&gt; I don&apos;t like the idea of doing a blind fix.  Can you try to do more investigation into where in our memory management logic things go wrong?
&gt; 
&gt; It would be good to understand this.  It may even be that you&apos;ve found a more fundamental bug that happens to only show up with larger page sizes, but is just harder to spot with the usual page sizes that most WebKit clients use.

The bug comes up at GC visiting when regexp of v8 performance test executed on a MIPS board where the (linux) kernel’s pagesize is 16KB and WeakBLock::blockSize == MarkStackSegment::blockSize == 4KB. In each tests I modified only WeakBLock::blockSize and MarkStackSegment::blockSize in the current master branch.

When a particular MarkedBlock is allocated from WeakSet::addAllocator() the weakSet looks like:

this WeakSet: 0x2e010224
(gdb) p this-&gt;m_blocks
$2 = {m_head = 0x2db93000, m_tail = 0x2db96000}
(gdb) p this-&gt;m_blocks.m_head.m_next
$3 = (class JSC::WeakBlock *) 0x2db96000

After allocating some longer (&gt; 3000 bytes) strings the GarbageCollector starts to visit MarkedBlocks and jsc crashes on an invalid block:
(gdb) p &amp;this-&gt;m_weakSet
$5 = (JSC::WeakSet *) 0x2e010224
(gdb) p this-&gt;m_weakSet.m_blocks
$7 = {m_head = 0x2db93000, m_tail = 0x2db96000}
(gdb) p *this-&gt;m_weakSet.m_blocks.m_head
$9 = {&lt;JSC::HeapBlock&lt;JSC::WeakBlock&gt;&gt; = {&lt;WTF::DoublyLinkedListNode&lt;JSC::WeakBlock&gt;&gt; = {&lt;No data fields&gt;}, 
   m_region = 0x2e1a6800, m_prev = 0x2e1a67e0, m_next = 0x2e1a67a0}, static blockSize = 4096, m_sweepResult = {
   blockIsFree = 96, freeList = 0x2e1a6720}}

So the block in the head of the weakSet’s m_blocks was overwritten while m_blocks.m_tail.m_prev == 0x2db93000 == m_blocks.m_head. It seems like a WeakImpl (WeakBlock::FreeCell?) list node would be written to the address of a WeakBlock node.

The ASSERT failure with backtrace:
ASSERTION FAILED: isCell()
/data/kilvadyb/webkit-mips/webkit/Source/JavaScriptCore/runtime/JSValueInlines.h(295) : JSC::JSCell* JSC::JSValue::asCell() const

Program received signal SIGBUS, Bus error.
0x2ad71ec8 in JSC::JSValue::asCell (this=0x2e2367c0)
    at /data/kilvadyb/webkit-mips/webkit/Source/JavaScriptCore/runtime/JSValueInlines.h:295
295	        ASSERT(isCell());
(gdb) bt
#0  0x2ad71ec8 in JSC::JSValue::asCell (this=0x2e2367c0)
    at /data/kilvadyb/webkit-mips/webkit/Source/JavaScriptCore/runtime/JSValueInlines.h:295
#1  0x2aef3170 in JSC::WeakBlock::visit (this=0x2e2367a0, heapRootVisitor=...)
    at /data/kilvadyb/webkit-mips/webkit/Source/JavaScriptCore/heap/WeakBlock.cpp:103
#2  0x2af29000 in JSC::WeakSet::visit (this=0x2e090224, visitor=...)
    at /data/kilvadyb/webkit-mips/webkit/Source/JavaScriptCore/heap/WeakSet.h:104
#3  0x2af29364 in JSC::MarkedBlock::visitWeakSet (this=0x2e090000, heapRootVisitor=...)
    at /data/kilvadyb/webkit-mips/webkit/Source/JavaScriptCore/heap/MarkedBlock.h:300
#4  0x2af29cc4 in JSC::VisitWeakSet::operator() (this=0x7fff1f78, block=0x2e090000)
    at /data/kilvadyb/webkit-mips/webkit/Source/JavaScriptCore/heap/MarkedSpace.cpp:71
#5  0x2af2b790 in JSC::MarkedAllocator::forEachBlock&lt;JSC::VisitWeakSet&gt; (this=0x46a3f0, functor=...)
    at /data/kilvadyb/webkit-mips/webkit/Source/JavaScriptCore/heap/MarkedAllocator.h:116

I have made some testing on mac and ARMv7 linux qt environments with WeakBLock::blockSize == MarkStackSegment::blockSize == 1KB. In this case these blockSizes are one fourth of the WTF::pageSize() like 4KB on MIPS 16KB pagesize. On both arches the same ASSERT failure comes up (but different from the MIPS failure):

ASSERTION FAILED: node != m_head
/Users/bali/Work/MattaKis/webkit/WebKitBuild/Debug/usr/local/include/wtf/DoublyLinkedList.h(165) : void WTF::DoublyLinkedList&lt;JSC::DeadBlock&gt;::remove(JSC::DeadBlock *)
1   0x1000af862 WTF::DoublyLinkedList&lt;JSC::DeadBlock&gt;::remove(JSC::DeadBlock*)
2   0x1000af7c8 WTF::DoublyLinkedList&lt;JSC::DeadBlock&gt;::removeHead()
3   0x1000af787 JSC::Region::allocate()DoublyLinkedList&lt;T&gt;::remove(T* node)
…
at DoublyLinkedList.h:165
   162 	template&lt;typename T&gt; inline void DoublyLinkedList&lt;T&gt;::remove(T* node)
   163 	{
   164 	    if (node-&gt;prev()) {
-&gt; 165 	        ASSERT(node != m_head);
   166 	        node-&gt;prev()-&gt;setNext(node-&gt;next());
   167 	    } else {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803415</commentid>
    <comment_count>11</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-09 09:48:56 -0800</bug_when>
    <thetext>&gt; I don&apos;t like the idea of doing a blind fix.  Can you try to do more investigation into where in our memory management logic things go wrong?
&gt; 
&gt; It would be good to understand this.  It may even be that you&apos;ve found a more fundamental bug that happens to only show up with larger page sizes, but is just harder to spot with the usual page sizes that most WebKit clients use.

The problem is caused by the default value of the gcMarkStackSegmentSize JSC VM option. This default value is (WTF::)pageSize() which is 16KB on our MIPS target device. In heap/MarkStack.cpp the constructor of MarkStackArray initializes its segment&apos;s capacity with this value:
MarkStackArray::MarkStackArray(BlockAllocator&amp; blockAllocator)
   : m_blockAllocator(blockAllocator)
   , m_segmentCapacity(MarkStackSegment::capacityFromSize(Options::gcMarkStackSegmentSize()))
   , m_top(0)
   , m_numberOfSegments(0)
{
   ASSERT(MarkStackSegment::blockSize == WeakBlock::blockSize);

So in the MarkStackArray::append function the overwriting might happen as it believes from a 4KB block that that has a 16KB capacity:
inline void MarkStackArray::append(const JSCell* cell)
{
   if (m_top == m_segmentCapacity)
       expand();
   m_segments.head()-&gt;data()[postIncTop()] = cell;
}

If I run a problematic test with a right option then it works fine and passes:
/data/kilvadyb/webkit-mips/webkit/WebKitBuild/Debug/bin/jsc --gcMarkStackSegmentSize=4096 -s js1_5/shell.js js1_5/Regress/regress-159334.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803446</commentid>
    <comment_count>12</comment_count>
      <attachid>181941</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-09 10:16:09 -0800</bug_when>
    <thetext>Created attachment 181941
proposed patch.

We are not satisfied with this patch, but would like to start a discussion. One possible solution is what we did in the patch: to introduce a new base class which defines the block size for the HeapBlocks in question (forcing a common value). Another possible solution would be to just introduce a new constant for this purpose and use it as the default value for both the blockSize in the heap blocks and the  gcMarkStackSegmentSize option.

An other option is to fix MarkStackArray to use block size of heap blocks. We aren&apos;t sure if gcMarkStackSegmentSize is good to use in MarkStackArray implementation as it depends on MarkStackSegment::blockSize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803495</commentid>
    <comment_count>13</comment_count>
      <attachid>181941</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-09 10:55:02 -0800</bug_when>
    <thetext>Comment on attachment 181941
proposed patch.

Attachment 181941 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15763610</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803530</commentid>
    <comment_count>14</comment_count>
      <attachid>181941</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-01-09 11:34:43 -0800</bug_when>
    <thetext>Comment on attachment 181941
proposed patch.

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

&gt; Source/JavaScriptCore/heap/BaseBlock.h:33
&gt; +class BaseBlock {

It seems like major overkill to define an entirely new class whose sole purpose is to make sure a static constant is the same between two classes. Why not just use a COMPILE_ASSERT? And why not just change the value in Options.cpp to be 4 KB rather than pageSize()?

&gt; Source/JavaScriptCore/heap/MarkStack.cpp:-54
&gt; -    ASSERT(MarkStackSegment::blockSize == WeakBlock::blockSize);

Why wasn&apos;t this ASSERT firing before if the MarkStackSegment blockSize was not equal to the WeakBlock blockSize?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803569</commentid>
    <comment_count>15</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-09 12:14:46 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 181941 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181941&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/BaseBlock.h:33
&gt; &gt; +class BaseBlock {
&gt; 
&gt; It seems like major overkill to define an entirely new class whose sole purpose is to make sure a static constant is the same between two classes. Why not just use a COMPILE_ASSERT? And why not just change the value in Options.cpp to be 4 KB rather than pageSize()?

That also works and we said in the comment that we can provide such a patch also if you like. In that case the 4 KB is a &quot;magic value&quot; and must be matching at 3 different places. With this common base class the same value is guaranteed/forced at all the 3 places. But of course we will create an other patch with a static constant.

&gt; 
&gt; &gt; Source/JavaScriptCore/heap/MarkStack.cpp:-54
&gt; &gt; -    ASSERT(MarkStackSegment::blockSize == WeakBlock::blockSize);
&gt; 
&gt; Why wasn&apos;t this ASSERT firing before if the MarkStackSegment blockSize was not equal to the WeakBlock blockSize?
Because both MarkStackSegment::blockSize and WeakBlock::blockSize  are 4 KB so the ASSERT condition is matching but MarkStackArray::m_segmentCapacity == MarkStackSegment::capacityFromSize(Options::gcMarkStackSegmentSize()))
and Options::gcMarkStackSegmentSize() == WTF::pageSize() by default. So MarkStackArray believes that a MarkStackSegment block has a pageSize capacity (16 KB) while it has only a MarkStackSegment::blockSize (4 KB). And in MarkStackArray::append function it expands the segments when the currently used block&apos;s capacity is exhausted but the array objects believes that a segment block has 4 times bigger capacity then in reality:
inline void MarkStackArray::append(const JSCell* cell)
{
   if (m_top == m_segmentCapacity)
       expand();
   m_segments.head()-&gt;data()[postIncTop()] = cell;
}

when m_top reaches 102x then the m_segments.head()-&gt;data()[postIncTop()] points to m_segments.m_head + sizeof(MarkStackSegment) + 102x * sizeof(JSCell*) which is over the 4 KB size of the MarkStackSegment block. So it overwrites the next block&apos;s data even its link node part and corrupts the block list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803572</commentid>
    <comment_count>16</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-09 12:17:00 -0800</bug_when>
    <thetext>(In reply to comment #14)

And thank you very much for the quick review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803630</commentid>
    <comment_count>17</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-01-09 12:55:54 -0800</bug_when>
    <thetext>&gt; That also works and we said in the comment that we can provide such a patch also if you like. In that case the 4 KB is a &quot;magic value&quot; and must be matching at 3 different places. With this common base class the same value is guaranteed/forced at all the 3 places. But of course we will create an other patch with a static constant.

In this case it&apos;s not a magic value since we&apos;re giving it a meaningful name. Classes are more for encapsulating a particular functionality behind a coherent interface. They&apos;re not really for enforcing runtime/compile-time constraints; that&apos;s what assertions are for!

&gt; Because both MarkStackSegment::blockSize and WeakBlock::blockSize  are 4 KB so the ASSERT condition is matching but MarkStackArray::m_segmentCapacity == MarkStackSegment::capacityFromSize(Options::gcMarkStackSegmentSize()))

That makes sense, I overlooked the m_segmentCapacity field. Maybe it would make sense to remove Options::gcMarkStackSegmentSize since MarkStackSegments define their own size/capacity now? Along with some COMPILE_ASSERTs to make sure we don&apos;t get out of sync in the future, I think that would fix this bug entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804227</commentid>
    <comment_count>18</comment_count>
      <attachid>182107</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-10 03:45:37 -0800</bug_when>
    <thetext>Created attachment 182107
proposed patch.

Removes gcMarkStackSegmentSize option and fixes MarkStackArray&apos;s capacity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804233</commentid>
    <comment_count>19</comment_count>
      <attachid>182109</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-10 04:00:37 -0800</bug_when>
    <thetext>Created attachment 182109
Make capacity field static.

Like the previous patch but also makes the capacity field static.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804248</commentid>
    <comment_count>20</comment_count>
      <attachid>182109</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-10 04:31:00 -0800</bug_when>
    <thetext>Comment on attachment 182109
Make capacity field static.

Attachment 182109 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15760858</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804259</commentid>
    <comment_count>21</comment_count>
      <attachid>182109</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-10 04:42:05 -0800</bug_when>
    <thetext>Comment on attachment 182109
Make capacity field static.

Attachment 182109 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15760857</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804742</commentid>
    <comment_count>22</comment_count>
      <attachid>182109</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-10 14:40:30 -0800</bug_when>
    <thetext>Comment on attachment 182109
Make capacity field static.

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

&gt; Source/JavaScriptCore/ChangeLog:6
&gt; +        Reviewed by Mark Hahnenberg.

I don&apos;t see this in the history. Why do you say it is reviewed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804747</commentid>
    <comment_count>23</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-01-10 14:42:46 -0800</bug_when>
    <thetext>Also, don&apos;t forget to add the COMPILE_ASSERTs to make sure that WeakBlock and MarkStackSegments have the same blockSize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810385</commentid>
    <comment_count>24</comment_count>
      <attachid>183406</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-18 02:00:03 -0800</bug_when>
    <thetext>Created attachment 183406
Make capacity field static.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810412</commentid>
    <comment_count>25</comment_count>
      <attachid>183406</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-18 02:43:14 -0800</bug_when>
    <thetext>Comment on attachment 183406
Make capacity field static.

Attachment 183406 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/15955133</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810416</commentid>
    <comment_count>26</comment_count>
      <attachid>183406</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-18 02:53:34 -0800</bug_when>
    <thetext>Comment on attachment 183406
Make capacity field static.

Attachment 183406 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15937633</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810432</commentid>
    <comment_count>27</comment_count>
      <attachid>183406</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-18 03:21:53 -0800</bug_when>
    <thetext>Comment on attachment 183406
Make capacity field static.

Attachment 183406 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15938590</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810467</commentid>
    <comment_count>28</comment_count>
      <attachid>183406</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-18 04:26:48 -0800</bug_when>
    <thetext>Comment on attachment 183406
Make capacity field static.

Attachment 183406 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15944486</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810646</commentid>
    <comment_count>29</comment_count>
      <attachid>183468</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-18 08:45:31 -0800</bug_when>
    <thetext>Created attachment 183468
Make capacity field static.

JS_EXPORT_PRIVATE added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810649</commentid>
    <comment_count>30</comment_count>
      <attachid>183468</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-18 08:48:14 -0800</bug_when>
    <thetext>Comment on attachment 183468
Make capacity field static.

Rebased on r140150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810738</commentid>
    <comment_count>31</comment_count>
      <attachid>183468</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-18 09:48:02 -0800</bug_when>
    <thetext>Comment on attachment 183468
Make capacity field static.

Attachment 183468 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15944623</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810777</commentid>
    <comment_count>32</comment_count>
      <attachid>183468</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-01-18 10:21:28 -0800</bug_when>
    <thetext>Comment on attachment 183468
Make capacity field static.

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

Additionally, there&apos;s a function named &quot;sizeFromCapacity&quot; in MarkStackSegment. That doesn&apos;t appear to be called from anywhere, so let&apos;s remove it while we&apos;re here.

&gt; Source/JavaScriptCore/heap/MarkStack.cpp:47
&gt; +#if COMPILER(CLANG)

Let&apos;s not ignore the warnings.

&gt; Source/JavaScriptCore/heap/MarkStack.cpp:52
&gt; +const size_t MarkStackArray::s_segmentCapacity = MarkStackSegment::capacityFromSize(MarkStackSegment::blockSize);

If we could use C++11, we could just add constexpr to capacityFromSize and call it a day. Unfortunately we can&apos;t, so we have to use some template magic.

Instead of using the old capacityFromSize static function, let&apos;s rework the code a little bit. From some brief grepping, it appears that this is the only client of the capacityFromSize function. So in order to get a compile-time constant value, we can instead use a template. Something along the lines of:

template &lt;size_t size&gt; struct CapacityFromSize {
    static const size_t value = // body of current capacityFromSize
};

Stick that somewhere private in MarkStackArray and grab the ::value when defining s_segmentCapacity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810810</commentid>
    <comment_count>33</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-18 10:39:32 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; (From update of attachment 183468 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=183468&amp;action=review
&gt; 
&gt; Additionally, there&apos;s a function named &quot;sizeFromCapacity&quot; in MarkStackSegment. That doesn&apos;t appear to be called from anywhere, so let&apos;s remove it while we&apos;re here.
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/MarkStack.cpp:47
&gt; &gt; +#if COMPILER(CLANG)
&gt; 
&gt; Let&apos;s not ignore the warnings.
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/MarkStack.cpp:52
&gt; &gt; +const size_t MarkStackArray::s_segmentCapacity = MarkStackSegment::capacityFromSize(MarkStackSegment::blockSize);
&gt; 
&gt; If we could use C++11, we could just add constexpr to capacityFromSize and call it a day. Unfortunately we can&apos;t, so we have to use some template magic.
&gt; 
&gt; Instead of using the old capacityFromSize static function, let&apos;s rework the code a little bit. From some brief grepping, it appears that this is the only client of the capacityFromSize function. So in order to get a compile-time constant value, we can instead use a template. Something along the lines of:
&gt; 
&gt; template &lt;size_t size&gt; struct CapacityFromSize {
&gt;     static const size_t value = // body of current capacityFromSize
&gt; };
&gt; 
&gt; Stick that somewhere private in MarkStackArray and grab the ::value when defining s_segmentCapacity.

Thank you for reviewing. I also see a windows specific problem. A static member should be used only in it&apos;s dll |(otherwise there are memory address problems in dllexport - JavaScriptCore and dllimport - WebCore modules) so the inline functions which are using it should be moved to the .cpp file. Is the template trick solves this problem also or should I return to the non-static member solution?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810817</commentid>
    <comment_count>34</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-01-18 10:44:03 -0800</bug_when>
    <thetext>&gt; Thank you for reviewing. I also see a windows specific problem. A static member should be used only in it&apos;s dll |(otherwise there are memory address problems in dllexport - JavaScriptCore and dllimport - WebCore modules) so the inline functions which are using it should be moved to the .cpp file. Is the template trick solves this problem also or should I return to the non-static member solution?

The template solution won&apos;t solve that particular linking issue, but I believe you just need to add the symbol it references in the build log to the JavaScriptCoreExports.def file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810821</commentid>
    <comment_count>35</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-18 10:46:15 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; &gt; Thank you for reviewing. I also see a windows specific problem. A static member should be used only in it&apos;s dll |(otherwise there are memory address problems in dllexport - JavaScriptCore and dllimport - WebCore modules) so the inline functions which are using it should be moved to the .cpp file. Is the template trick solves this problem also or should I return to the non-static member solution?
&gt; 
&gt; The template solution won&apos;t solve that particular linking issue, but I believe you just need to add the symbol it references in the build log to the JavaScriptCoreExports.def file.

Thank you for the info. I hope it helps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810867</commentid>
    <comment_count>36</comment_count>
      <attachid>183513</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-18 11:18:25 -0800</bug_when>
    <thetext>Created attachment 183513
Make capacity field static.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810878</commentid>
    <comment_count>37</comment_count>
      <attachid>183513</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-01-18 11:30:05 -0800</bug_when>
    <thetext>Comment on attachment 183513
Make capacity field static.

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

r=me with small edit and no EWS issues.

&gt; Source/JavaScriptCore/heap/MarkStack.h:79
&gt;      static size_t sizeFromCapacity(size_t capacity)

One more change. Remove this function, since nobody calls it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810903</commentid>
    <comment_count>38</comment_count>
      <attachid>183522</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-18 11:57:52 -0800</bug_when>
    <thetext>Created attachment 183522
Make capacity field static.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810951</commentid>
    <comment_count>39</comment_count>
      <attachid>183522</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-18 12:51:25 -0800</bug_when>
    <thetext>Comment on attachment 183522
Make capacity field static.

Clearing flags on attachment: 183522

Committed r140195: &lt;http://trac.webkit.org/changeset/140195&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810952</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-18 12:51:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175259</attachid>
            <date>2012-11-20 12:05:40 -0800</date>
            <delta_ts>2012-11-27 02:25:01 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>heap.diff</filename>
            <type>text/plain</type>
            <size>2987</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDY5YjhiZjUuLjE1ZDc0NTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTExLTIwICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgcjEzNDA4MCBjYXVzZXMgaGVh
cCBwcm9ibGVtIG9uIGxpbnV4IHN5c3RlbXMgd2hlcmUgUEFHRVNJWkUgIT0gNDA5NgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyODI4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGJsb2NrU2l6ZSB0
byBQQUdFU0laRSBvbiBMaW51eCBmb3IgaGVhcCBibG9ja3MgdG8gYXZvaWQgc2VnZmF1bHRzCisg
ICAgICAgIG9uIHN5c3RlbXMgd2hlcmUgUEFHRVNJWkUgIT0gNCAqIDEwMjQuCisKKyAgICAgICAg
KiBoZWFwL01hcmtTdGFjay5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGhlYXAvTWFy
a1N0YWNrLmg6CisgICAgICAgIChNYXJrU3RhY2tTZWdtZW50KToKKyAgICAgICAgKiBoZWFwL1dl
YWtCbG9jay5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGhlYXAvV2Vha0Jsb2NrLmg6
CisgICAgICAgIChXZWFrQmxvY2spOgorCiAyMDEyLTExLTIwICBZb25nIExpICA8eW9saUByaW0u
Y29tPgogCiAgICAgICAgIFtBUk12N10gTmVpdGhlciBsaW5rQ2FsbCgpIG5vciBsaW5rUG9pbnRl
cigpIHNob3VsZCBmbHVzaCBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvTWFya1N0YWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFj
ay5jcHAKaW5kZXggNzU1YTBhZC4uZWU4OGQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYXJrU3RhY2suY3BwCkBAIC00NSw2ICs0NSwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAor
I2lmIE9TKExJTlVYKSAmJiBDT01QSUxFUihHQ0MpCitjb25zdCBzaXplX3QgTWFya1N0YWNrU2Vn
bWVudDo6YmxvY2tTaXplID0gc2l6ZV90KHN5c2NvbmYoX1NDX1BBR0VTSVpFKSk7CisjZW5kaWYK
KwogTWFya1N0YWNrQXJyYXk6Ok1hcmtTdGFja0FycmF5KEJsb2NrQWxsb2NhdG9yJiBibG9ja0Fs
bG9jYXRvcikKICAgICA6IG1fYmxvY2tBbGxvY2F0b3IoYmxvY2tBbGxvY2F0b3IpCiAgICAgLCBt
X3NlZ21lbnRDYXBhY2l0eShNYXJrU3RhY2tTZWdtZW50OjpjYXBhY2l0eUZyb21TaXplKE9wdGlv
bnM6OmdjTWFya1N0YWNrU2VnbWVudFNpemUoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtTdGFjay5oCmluZGV4IDM1ODQ1ZWQuLjM3MTY2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL01hcmtTdGFjay5oCkBAIC04Niw3ICs4NiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBzaXplb2YoTWFya1N0YWNrU2VnbWVudCkgKyBjYXBhY2l0eSAqIHNpemVvZihjb25zdCBKU0Nl
bGwqKTsKICAgICB9CiAKKyNpZiBPUyhMSU5VWCkgJiYgQ09NUElMRVIoR0NDKQorICAgIHN0YXRp
YyBjb25zdCBzaXplX3QgYmxvY2tTaXplOworI2Vsc2UKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90
IGJsb2NrU2l6ZSA9IDQgKiBLQjsKKyNlbmRpZgogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAg
IHNpemVfdCBtX3RvcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dl
YWtCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCmlu
ZGV4IDVmMDFmMzQuLjM5OGI1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1dlYWtCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Js
b2NrLmNwcApAQCAtMzQsNiArMzQsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBPUyhM
SU5VWCkgJiYgQ09NUElMRVIoR0NDKQorY29uc3Qgc2l6ZV90IFdlYWtCbG9jazo6YmxvY2tTaXpl
ID0gc2l6ZV90KHN5c2NvbmYoX1NDX1BBR0VTSVpFKSk7CisjZW5kaWYKKwogV2Vha0Jsb2NrKiBX
ZWFrQmxvY2s6OmNyZWF0ZShEZWFkQmxvY2sqIGJsb2NrKQogewogICAgIFJlZ2lvbiogcmVnaW9u
ID0gYmxvY2stPnJlZ2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvV2Vha0Jsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suaApp
bmRleCBmZDI4MTAxLi42MzI2MmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9XZWFrQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxv
Y2suaApAQCAtNDIsNyArNDIsMTEgQEAgY2xhc3MgV2Vha0hhbmRsZU93bmVyOwogY2xhc3MgV2Vh
a0Jsb2NrIDogcHVibGljIEhlYXBCbG9jazxXZWFrQmxvY2s+IHsKIHB1YmxpYzoKICAgICBmcmll
bmQgY2xhc3MgV1RGOjpEb3VibHlMaW5rZWRMaXN0Tm9kZTxXZWFrQmxvY2s+OworI2lmIE9TKExJ
TlVYKSAmJiBDT01QSUxFUihHQ0MpCisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBibG9ja1NpemU7
CisjZWxzZQogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYmxvY2tTaXplID0gNCAqIEtCOyAvLyA1
JSBvZiBNYXJrZWRCbG9jayBzaXplCisjZW5kaWYKIAogICAgIHN0cnVjdCBGcmVlQ2VsbCB7CiAg
ICAgICAgIEZyZWVDZWxsKiBuZXh0Owo=
</data>
<flag name="review"
          id="190651"
          type_id="1"
          status="-"
          setter="mhahnenberg"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176210</attachid>
            <date>2012-11-27 02:25:01 -0800</date>
            <delta_ts>2012-11-27 02:36:40 -0800</delta_ts>
            <desc>proposed patch (fixed)</desc>
            <filename>heap.diff</filename>
            <type>text/plain</type>
            <size>2877</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGVlNmQzYjUuLjc2ZDg2ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTExLTI3ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUzogaGVhcCBmaXgKKwor
ICAgICAgICByMTM0MDgwIGNhdXNlcyBoZWFwIHByb2JsZW0gb24gbGludXggc3lzdGVtcyB3aGVy
ZSBQQUdFU0laRSAhPSA0MDk2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDI4MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggYmxvY2tTaXplIHRvIFBBR0VTSVpFIG9uIExpbnV4IGZvciBoZWFwIGJs
b2NrcyB0byBhdm9pZCBzZWdmYXVsdHMKKyAgICAgICAgb24gc3lzdGVtcyB3aGVyZSBQQUdFU0la
RSAhPSA0ICogMTAyNC4KKworICAgICAgICAqIGhlYXAvTWFya1N0YWNrLmNwcDoKKyAgICAgICAg
KEpTQyk6CisgICAgICAgICogaGVhcC9NYXJrU3RhY2suaDoKKyAgICAgICAgKE1hcmtTdGFja1Nl
Z21lbnQpOgorICAgICAgICAqIGhlYXAvV2Vha0Jsb2NrLmNwcDoKKyAgICAgICAgKEpTQyk6Cisg
ICAgICAgICogaGVhcC9XZWFrQmxvY2suaDoKKyAgICAgICAgKFdlYWtCbG9jayk6CisKIDIwMTIt
MTEtMjYgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFN1YnN0
aXR1dGUgImFsbFNlcGFyYXRvcnM4Qml0IiBmb3IgImFsbFNlcGVyYXRvcnM4Qml0IiBpbiBKU0M6
OmpzU3BsaWNlU3Vic3RyaW5nc1dpdGhTZXBhcmF0b3JzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrU3RhY2suY3BwCmluZGV4IDc1NWEwYWQuLjhlNTFmOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcApAQCAtNDUsNiArNDUsOCBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAorY29uc3Qgc2l6ZV90IE1hcmtTdGFja1NlZ21lbnQ6OmJsb2NrU2l6ZSA9IFdU
Rjo6cGFnZVNpemUoKTsKKwogTWFya1N0YWNrQXJyYXk6Ok1hcmtTdGFja0FycmF5KEJsb2NrQWxs
b2NhdG9yJiBibG9ja0FsbG9jYXRvcikKICAgICA6IG1fYmxvY2tBbGxvY2F0b3IoYmxvY2tBbGxv
Y2F0b3IpCiAgICAgLCBtX3NlZ21lbnRDYXBhY2l0eShNYXJrU3RhY2tTZWdtZW50OjpjYXBhY2l0
eUZyb21TaXplKE9wdGlvbnM6OmdjTWFya1N0YWNrU2VnbWVudFNpemUoKSkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCmluZGV4IDJhN2YwNDQuLjAzMjhkYjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIHNpemVvZihNYXJrU3RhY2tTZWdtZW50KSArIGNhcGFjaXR5ICogc2l6
ZW9mKGNvbnN0IEpTQ2VsbCopOwogICAgIH0KIAotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYmxv
Y2tTaXplID0gNCAqIEtCOworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYmxvY2tTaXplOwogCiAj
aWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIHNpemVfdCBtX3RvcDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9XZWFrQmxvY2suY3BwCmluZGV4IDVmMDFmMzQuLjZkOGFlODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmNwcApAQCAtMzQsNiArMzQsOCBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAorY29uc3Qgc2l6ZV90IFdlYWtCbG9jazo6YmxvY2tTaXplID0gV1RGOjpw
YWdlU2l6ZSgpOworCiBXZWFrQmxvY2sqIFdlYWtCbG9jazo6Y3JlYXRlKERlYWRCbG9jayogYmxv
Y2spCiB7CiAgICAgUmVnaW9uKiByZWdpb24gPSBibG9jay0+cmVnaW9uKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1dlYWtCbG9jay5oCmluZGV4IGZkMjgxMDEuLjA0ZjRmNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFdl
YWtIYW5kbGVPd25lcjsKIGNsYXNzIFdlYWtCbG9jayA6IHB1YmxpYyBIZWFwQmxvY2s8V2Vha0Js
b2NrPiB7CiBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNzIFdURjo6RG91Ymx5TGlua2VkTGlzdE5v
ZGU8V2Vha0Jsb2NrPjsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGJsb2NrU2l6ZSA9IDQgKiBL
QjsgLy8gNSUgb2YgTWFya2VkQmxvY2sgc2l6ZQorICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYmxv
Y2tTaXplOyAvLyA1JSBvZiBNYXJrZWRCbG9jayBzaXplCiAKICAgICBzdHJ1Y3QgRnJlZUNlbGwg
ewogICAgICAgICBGcmVlQ2VsbCogbmV4dDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176212</attachid>
            <date>2012-11-27 02:36:40 -0800</date>
            <delta_ts>2013-01-09 10:16:09 -0800</delta_ts>
            <desc>proposed patch (fixed)</desc>
            <filename>heap.diff</filename>
            <type>text/plain</type>
            <size>2875</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGVlNmQzYjUuLjc2ZDg2ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTExLTI3ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgTUlQUzogaGVhcCBmaXgKKwor
ICAgICAgICByMTM0MDgwIGNhdXNlcyBoZWFwIHByb2JsZW0gb24gbGludXggc3lzdGVtcyB3aGVy
ZSBQQUdFU0laRSAhPSA0MDk2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDI4MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggYmxvY2tTaXplIHRvIFdURjo6cGFnZVNpemUoKSBmb3IgaGVhcCBibG9j
a3MgdG8gYXZvaWQgc2VnZmF1bHRzCisgICAgICAgIG9uIHN5c3RlbXMgd2hlcmUgUEFHRVNJWkUg
IT0gNCAqIDEwMjQuCisKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5jcHA6CisgICAgICAgIChK
U0MpOgorICAgICAgICAqIGhlYXAvTWFya1N0YWNrLmg6CisgICAgICAgIChNYXJrU3RhY2tTZWdt
ZW50KToKKyAgICAgICAgKiBoZWFwL1dlYWtCbG9jay5jcHA6CisgICAgICAgIChKU0MpOgorICAg
ICAgICAqIGhlYXAvV2Vha0Jsb2NrLmg6CisgICAgICAgIChXZWFrQmxvY2spOgorCiAyMDEyLTEx
LTI2ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBTdWJzdGl0
dXRlICJhbGxTZXBhcmF0b3JzOEJpdCIgZm9yICJhbGxTZXBlcmF0b3JzOEJpdCIgaW4gSlNDOjpq
c1NwbGljZVN1YnN0cmluZ3NXaXRoU2VwYXJhdG9ycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFya1N0YWNrLmNwcAppbmRleCA3NTVhMGFkLi44ZTUxZjk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAKQEAgLTQ1LDYgKzQ1LDggQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKK2NvbnN0IHNpemVfdCBNYXJrU3RhY2tTZWdtZW50OjpibG9ja1NpemUgPSBXVEY6
OnBhZ2VTaXplKCk7CisKIE1hcmtTdGFja0FycmF5OjpNYXJrU3RhY2tBcnJheShCbG9ja0FsbG9j
YXRvciYgYmxvY2tBbGxvY2F0b3IpCiAgICAgOiBtX2Jsb2NrQWxsb2NhdG9yKGJsb2NrQWxsb2Nh
dG9yKQogICAgICwgbV9zZWdtZW50Q2FwYWNpdHkoTWFya1N0YWNrU2VnbWVudDo6Y2FwYWNpdHlG
cm9tU2l6ZShPcHRpb25zOjpnY01hcmtTdGFja1NlZ21lbnRTaXplKCkpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJrU3RhY2suaAppbmRleCAyYTdmMDQ0Li4wMzI4ZGI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaApAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBzaXplb2YoTWFya1N0YWNrU2VnbWVudCkgKyBjYXBhY2l0eSAqIHNpemVv
Zihjb25zdCBKU0NlbGwqKTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGJsb2Nr
U2l6ZSA9IDQgKiBLQjsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGJsb2NrU2l6ZTsKIAogI2lm
ICFBU1NFUlRfRElTQUJMRUQKICAgICBzaXplX3QgbV90b3A7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvV2Vha0Jsb2NrLmNwcAppbmRleCA1ZjAxZjM0Li42ZDhhZTg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAKQEAgLTM0LDYgKzM0LDggQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKK2NvbnN0IHNpemVfdCBXZWFrQmxvY2s6OmJsb2NrU2l6ZSA9IFdURjo6cGFn
ZVNpemUoKTsKKwogV2Vha0Jsb2NrKiBXZWFrQmxvY2s6OmNyZWF0ZShEZWFkQmxvY2sqIGJsb2Nr
KQogewogICAgIFJlZ2lvbiogcmVnaW9uID0gYmxvY2stPnJlZ2lvbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9XZWFrQmxvY2suaAppbmRleCBmZDI4MTAxLi4wNGY0ZjU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBXZWFr
SGFuZGxlT3duZXI7CiBjbGFzcyBXZWFrQmxvY2sgOiBwdWJsaWMgSGVhcEJsb2NrPFdlYWtCbG9j
az4gewogcHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBXVEY6OkRvdWJseUxpbmtlZExpc3ROb2Rl
PFdlYWtCbG9jaz47Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBibG9ja1NpemUgPSA0ICogS0I7
IC8vIDUlIG9mIE1hcmtlZEJsb2NrIHNpemUKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGJsb2Nr
U2l6ZTsgLy8gNSUgb2YgTWFya2VkQmxvY2sgc2l6ZQogCiAgICAgc3RydWN0IEZyZWVDZWxsIHsK
ICAgICAgICAgRnJlZUNlbGwqIG5leHQ7Cg==
</data>
<flag name="commit-queue"
          id="192072"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181941</attachid>
            <date>2013-01-09 10:16:09 -0800</date>
            <delta_ts>2013-01-10 03:45:37 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>mips-heap.diff</filename>
            <type>text/plain</type>
            <size>6024</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGU4Y2M2OWYuLmVlZThmODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAxLTA5ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgcjEzNDA4MCBjYXVzZXMgaGVh
cCBwcm9ibGVtIG9uIGxpbnV4IHN5c3RlbXMgd2hlcmUgUEFHRVNJWkUgIT0gNDA5NgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyODI4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBXZWFrQmxvY2s6
OmJsb2NrU2l6ZSBhcyB0aGUgZGVmYXVsdCBjYXBhY2l0eSBvZiBNYXJrU3RhY2tBcnJheQorICAg
ICAgICBzZWdtZW50cyB0byBhdm9pZCBjcmFzaCBvbiBzeXN0ZW1zIHdoZXJlIFBBR0VTSVpFICE9
IDQgKiBLQi4KKworICAgICAgICAqIGhlYXAvQmFzZUJsb2NrLmg6IEFkZGVkLgorICAgICAgICAo
SlNDKToKKyAgICAgICAgKEJhc2VCbG9jayk6CisgICAgICAgICogaGVhcC9NYXJrU3RhY2suY3Bw
OgorICAgICAgICAoSlNDOjpNYXJrU3RhY2tBcnJheTo6TWFya1N0YWNrQXJyYXkpOgorICAgICAg
ICAqIGhlYXAvTWFya1N0YWNrLmg6CisgICAgICAgICogaGVhcC9XZWFrQmxvY2suaDoKKyAgICAg
ICAgKFdlYWtCbG9jayk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisgICAgICAgIChK
U0MpOgorCiAyMDEzLTAxLTA5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggbWFrZSBkaXN0Y2hlY2suCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CYXNlQmxvY2suaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0Jhc2VCbG9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjQ1NDFhM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9CYXNlQmxvY2suaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBC
YXNlQmxvY2tfaAorI2RlZmluZSBCYXNlQmxvY2tfaAorCisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPiAvLyBpbmNsdWRlY2QgZm9yIEtCIGNvbnN0CisKK25hbWVzcGFjZSBKU0MgeworCitj
bGFzcyBCYXNlQmxvY2sgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYmxvY2tT
aXplID0gNCAqIEtCOyAvLyA1JSBvZiBNYXJrZWRCbG9jayBzaXplCit9OworCit9IC8vIG5hbWVz
cGFjZSBKU0MKKworI2VuZGlmIC8vIEJhc2VCbG9ja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFya1N0YWNrLmNwcAppbmRleCA3NTVhMGFkLi5lM2NkNTczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTWFya1N0YWNrQXJy
YXk6Ok1hcmtTdGFja0FycmF5KEJsb2NrQWxsb2NhdG9yJiBibG9ja0FsbG9jYXRvcikKICAgICAs
IG1fdG9wKDApCiAgICAgLCBtX251bWJlck9mU2VnbWVudHMoMCkKIHsKLSAgICBBU1NFUlQoTWFy
a1N0YWNrU2VnbWVudDo6YmxvY2tTaXplID09IFdlYWtCbG9jazo6YmxvY2tTaXplKTsKKyAgICBB
U1NFUlQoQmFzZUJsb2NrOjpibG9ja1NpemUgPj0gT3B0aW9uczo6Z2NNYXJrU3RhY2tTZWdtZW50
U2l6ZSgpKTsKICAgICBtX3NlZ21lbnRzLnB1c2goTWFya1N0YWNrU2VnbWVudDo6Y3JlYXRlKG1f
YmxvY2tBbGxvY2F0b3IuYWxsb2NhdGU8TWFya1N0YWNrU2VnbWVudD4oKSkpOwogICAgIG1fbnVt
YmVyT2ZTZWdtZW50cysrOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFya1N0YWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaApp
bmRleCAyYTdmMDQ0Li4xOTI2YmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrU3RhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3Rh
Y2suaApAQCAtNTAsOCArNTAsOCBAQAogI2RlZmluZSBNQVJLX0xPR19DSElMRCh2aXNpdG9yLCBj
aGlsZCkgZG8geyB9IHdoaWxlIChmYWxzZSkKICNlbmRpZgogCisjaW5jbHVkZSAiQmFzZUJsb2Nr
LmgiCiAjaW5jbHVkZSAiSGVhcEJsb2NrLmgiCi0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNTksNyArNTksNyBAQCBjbGFzcyBCbG9ja0FsbG9j
YXRvcjsKIGNsYXNzIERlYWRCbG9jazsKIGNsYXNzIEpTQ2VsbDsKIAotY2xhc3MgTWFya1N0YWNr
U2VnbWVudCA6IHB1YmxpYyBIZWFwQmxvY2s8TWFya1N0YWNrU2VnbWVudD4geworY2xhc3MgTWFy
a1N0YWNrU2VnbWVudCA6IHB1YmxpYyBIZWFwQmxvY2s8TWFya1N0YWNrU2VnbWVudD4sIHB1Ymxp
YyBCYXNlQmxvY2sgewogcHVibGljOgogICAgIE1hcmtTdGFja1NlZ21lbnQoUmVnaW9uKiByZWdp
b24pCiAgICAgICAgIDogSGVhcEJsb2NrPE1hcmtTdGFja1NlZ21lbnQ+KHJlZ2lvbikKQEAgLTg2
LDggKzg2LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc2l6ZW9mKE1hcmtTdGFja1NlZ21l
bnQpICsgY2FwYWNpdHkgKiBzaXplb2YoY29uc3QgSlNDZWxsKik7CiAgICAgfQogCi0gICAgc3Rh
dGljIGNvbnN0IHNpemVfdCBibG9ja1NpemUgPSA0ICogS0I7Ci0KICNpZiAhQVNTRVJUX0RJU0FC
TEVECiAgICAgc2l6ZV90IG1fdG9wOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9XZWFrQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dl
YWtCbG9jay5oCmluZGV4IGZkMjgxMDEuLjg4MmQxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1dlYWtCbG9jay5oCkBAIC0yNiwxMSArMjYsMTEgQEAKICNpZm5kZWYgV2Vha0Jsb2NrX2gK
ICNkZWZpbmUgV2Vha0Jsb2NrX2gKIAorI2luY2x1ZGUgIkJhc2VCbG9jay5oIgogI2luY2x1ZGUg
IkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIldlYWtIYW5kbGVPd25lci5oIgogI2luY2x1ZGUgIldl
YWtJbXBsLmgiCiAjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KLSNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC0zOSwxMCArMzksOSBA
QCBjbGFzcyBIZWFwUm9vdFZpc2l0b3I7CiBjbGFzcyBKU1ZhbHVlOwogY2xhc3MgV2Vha0hhbmRs
ZU93bmVyOwogCi1jbGFzcyBXZWFrQmxvY2sgOiBwdWJsaWMgSGVhcEJsb2NrPFdlYWtCbG9jaz4g
eworY2xhc3MgV2Vha0Jsb2NrIDogcHVibGljIEhlYXBCbG9jazxXZWFrQmxvY2s+LCBwdWJsaWMg
QmFzZUJsb2NrIHsKIHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgV1RGOjpEb3VibHlMaW5rZWRM
aXN0Tm9kZTxXZWFrQmxvY2s+OwotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYmxvY2tTaXplID0g
NCAqIEtCOyAvLyA1JSBvZiBNYXJrZWRCbG9jayBzaXplCiAKICAgICBzdHJ1Y3QgRnJlZUNlbGwg
ewogICAgICAgICBGcmVlQ2VsbCogbmV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuaAppbmRleCAzYmNlNTQ1Li5jMWIxMGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIE9wdGlvbnNfaAogI2Rl
ZmluZSBPcHRpb25zX2gKIAorI2luY2x1ZGUgIkJhc2VCbG9jay5oIgogI2luY2x1ZGUgIkpTRXhw
b3J0TWFjcm9zLmgiCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAg
LTEyMCw3ICsxMjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB2KGRvdWJsZSwgc3RydWN0dXJl
Q2hlY2tWb3RlUmF0aW9Gb3JIb2lzdGluZywgMSkgXAogICAgIFwKICAgICB2KHVuc2lnbmVkLCBt
aW5pbXVtTnVtYmVyT2ZTY2Fuc0JldHdlZW5SZWJhbGFuY2UsIDEwMCkgXAotICAgIHYodW5zaWdu
ZWQsIGdjTWFya1N0YWNrU2VnbWVudFNpemUsIHBhZ2VTaXplKCkpIFwKKyAgICB2KHVuc2lnbmVk
LCBnY01hcmtTdGFja1NlZ21lbnRTaXplLCBCYXNlQmxvY2s6OmJsb2NrU2l6ZSkgXAogICAgIHYo
dW5zaWduZWQsIG51bWJlck9mR0NNYXJrZXJzLCBjb21wdXRlTnVtYmVyT2ZHQ01hcmtlcnMoNykp
IFwKICAgICB2KHVuc2lnbmVkLCBvcGFxdWVSb290TWVyZ2VUaHJlc2hvbGQsIDEwMDApIFwKICAg
ICB2KGRvdWJsZSwgbWluSGVhcFV0aWxpemF0aW9uLCAwLjgpIFwK
</data>
<flag name="review"
          id="199754"
          type_id="1"
          status="-"
          setter="mhahnenberg"
    />
    <flag name="commit-queue"
          id="199767"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182107</attachid>
            <date>2013-01-10 03:45:37 -0800</date>
            <delta_ts>2013-01-10 14:39:33 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>heap1.diff</filename>
            <type>text/plain</type>
            <size>2184</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDgzZGU2MTMuLjRjNzk4OWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAxLTEwICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgcjEzNDA4MCBjYXVzZXMgaGVh
cCBwcm9ibGVtIG9uIGxpbnV4IHN5c3RlbXMgd2hlcmUgUEFHRVNJWkUgIT0gNDA5NgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyODI4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFyayBIYWhuZW5iZXJnLgorCisgICAgICAgIE1ha2UgTWFya1N0YWNr
U2VnbWVudDo6YmxvY2tTaXplIGFzIHRoZSBjYXBhY2l0eSBvZiBzZWdtZW50cyBvZiBhIE1hcmtT
dGFja0FycmF5LgorCisgICAgICAgICogaGVhcC9NYXJrU3RhY2suY3BwOgorICAgICAgICAoSlND
OjpNYXJrU3RhY2tBcnJheTo6TWFya1N0YWNrQXJyYXkpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0
aW9ucy5oOgorICAgICAgICAoSlNDKToKKwogMjAxMy0wMS0wOSAgUm9nZXIgRm9uZyAgPHJvZ2Vy
X2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEp1c3QgbW92ZSB0aGUgSmF2
YVNjcmlwdENvcmUgZXhwb3J0cyBmaWxlIGFyb3VuZCBpbiB0aGUgdmNwcm9qIHRvIG1ha2UgdGhp
bmdzIGNsZWFyZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJr
U3RhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcAppbmRl
eCA3NTVhMGFkLi5mZDM3MmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYXJrU3RhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFj
ay5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJDb3BpZWRTcGFjZS5oIgogI2luY2x1
ZGUgIkNvcGllZFNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIkhlYXAuaCIKLSNpbmNsdWRlICJP
cHRpb25zLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQ2VsbC5oIgogI2lu
Y2x1ZGUgIkpTT2JqZWN0LmgiCkBAIC00Nyw3ICs0Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBN
YXJrU3RhY2tBcnJheTo6TWFya1N0YWNrQXJyYXkoQmxvY2tBbGxvY2F0b3ImIGJsb2NrQWxsb2Nh
dG9yKQogICAgIDogbV9ibG9ja0FsbG9jYXRvcihibG9ja0FsbG9jYXRvcikKLSAgICAsIG1fc2Vn
bWVudENhcGFjaXR5KE1hcmtTdGFja1NlZ21lbnQ6OmNhcGFjaXR5RnJvbVNpemUoT3B0aW9uczo6
Z2NNYXJrU3RhY2tTZWdtZW50U2l6ZSgpKSkKKyAgICAsIG1fc2VnbWVudENhcGFjaXR5KE1hcmtT
dGFja1NlZ21lbnQ6OmNhcGFjaXR5RnJvbVNpemUoTWFya1N0YWNrU2VnbWVudDo6YmxvY2tTaXpl
KSkKICAgICAsIG1fdG9wKDApCiAgICAgLCBtX251bWJlck9mU2VnbWVudHMoMCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCAzYmNlNTQ1Li5mYTZmMjBlYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMTIwLDcgKzEyMCw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHYoZG91YmxlLCBzdHJ1Y3R1cmVDaGVja1ZvdGVSYXRp
b0ZvckhvaXN0aW5nLCAxKSBcCiAgICAgXAogICAgIHYodW5zaWduZWQsIG1pbmltdW1OdW1iZXJP
ZlNjYW5zQmV0d2VlblJlYmFsYW5jZSwgMTAwKSBcCi0gICAgdih1bnNpZ25lZCwgZ2NNYXJrU3Rh
Y2tTZWdtZW50U2l6ZSwgcGFnZVNpemUoKSkgXAogICAgIHYodW5zaWduZWQsIG51bWJlck9mR0NN
YXJrZXJzLCBjb21wdXRlTnVtYmVyT2ZHQ01hcmtlcnMoNykpIFwKICAgICB2KHVuc2lnbmVkLCBv
cGFxdWVSb290TWVyZ2VUaHJlc2hvbGQsIDEwMDApIFwKICAgICB2KGRvdWJsZSwgbWluSGVhcFV0
aWxpemF0aW9uLCAwLjgpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182109</attachid>
            <date>2013-01-10 04:00:37 -0800</date>
            <delta_ts>2013-01-18 02:00:03 -0800</delta_ts>
            <desc>Make capacity field static.</desc>
            <filename>heap2.diff</filename>
            <type>text/plain</type>
            <size>6165</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDgzZGU2MTMuLjk2ODY5YTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAxLTEwICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgcjEzNDA4MCBjYXVzZXMgaGVh
cCBwcm9ibGVtIG9uIGxpbnV4IHN5c3RlbXMgd2hlcmUgUEFHRVNJWkUgIT0gNDA5NgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyODI4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFyayBIYWhuZW5iZXJnLgorCisgICAgICAgIE1ha2UgTWFya1N0YWNr
U2VnbWVudDo6YmxvY2tTaXplIGFzIHRoZSBjYXBhY2l0eSBvZiBzZWdtZW50cyBvZiBhIE1hcmtT
dGFja0FycmF5LgorCisgICAgICAgICogaGVhcC9NYXJrU3RhY2suY3BwOgorICAgICAgICAoSlND
KToKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6Ok1hcmtTdGFja0FycmF5KToKKyAgICAg
ICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6OmV4cGFuZCk6CisgICAgICAgIChKU0M6Ok1hcmtTdGFj
a0FycmF5Ojpkb25hdGVTb21lQ2VsbHNUbyk6CisgICAgICAgIChKU0M6Ok1hcmtTdGFja0FycmF5
OjpzdGVhbFNvbWVDZWxsc0Zyb20pOgorICAgICAgICAqIGhlYXAvTWFya1N0YWNrLmg6CisgICAg
ICAgIChNYXJrU3RhY2tBcnJheSk6CisgICAgICAgICogaGVhcC9NYXJrU3RhY2tJbmxpbmVzLmg6
CisgICAgICAgIChKU0M6Ok1hcmtTdGFja0FycmF5OjpzZXRUb3BGb3JGdWxsU2VnbWVudCk6Cisg
ICAgICAgIChKU0M6Ok1hcmtTdGFja0FycmF5OjphcHBlbmQpOgorICAgICAgICAoSlNDOjpNYXJr
U3RhY2tBcnJheTo6aXNFbXB0eSk6CisgICAgICAgIChKU0M6Ok1hcmtTdGFja0FycmF5OjpzaXpl
KToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKEpTQyk6CisKIDIwMTMt
MDEtMDkgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLiBKdXN0IG1vdmUgdGhlIEphdmFTY3JpcHRDb3JlIGV4cG9ydHMgZmlsZSBhcm91bmQg
aW4gdGhlIHZjcHJvaiB0byBtYWtlIHRoaW5ncyBjbGVhcmVyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtTdGFjay5jcHAKaW5kZXggNzU1YTBhZC4uNzgzZTk3MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVk
ZSAiQ29waWVkU3BhY2UuaCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNs
dWRlICJIZWFwLmgiCi0jaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIK
ICNpbmNsdWRlICJKU0NlbGwuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgpAQCAtNDUsOSArNDQs
MTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NvbnN0IHNpemVfdCBNYXJrU3RhY2tBcnJheTo6
c19zZWdtZW50Q2FwYWNpdHkgPSBNYXJrU3RhY2tTZWdtZW50OjpjYXBhY2l0eUZyb21TaXplKE1h
cmtTdGFja1NlZ21lbnQ6OmJsb2NrU2l6ZSk7CisKIE1hcmtTdGFja0FycmF5OjpNYXJrU3RhY2tB
cnJheShCbG9ja0FsbG9jYXRvciYgYmxvY2tBbGxvY2F0b3IpCiAgICAgOiBtX2Jsb2NrQWxsb2Nh
dG9yKGJsb2NrQWxsb2NhdG9yKQotICAgICwgbV9zZWdtZW50Q2FwYWNpdHkoTWFya1N0YWNrU2Vn
bWVudDo6Y2FwYWNpdHlGcm9tU2l6ZShPcHRpb25zOjpnY01hcmtTdGFja1NlZ21lbnRTaXplKCkp
KQogICAgICwgbV90b3AoMCkKICAgICAsIG1fbnVtYmVyT2ZTZWdtZW50cygwKQogewpAQCAtNjQs
NyArNjQsNyBAQCBNYXJrU3RhY2tBcnJheTo6fk1hcmtTdGFja0FycmF5KCkKIAogdm9pZCBNYXJr
U3RhY2tBcnJheTo6ZXhwYW5kKCkKIHsKLSAgICBBU1NFUlQobV9zZWdtZW50cy5oZWFkKCktPm1f
dG9wID09IG1fc2VnbWVudENhcGFjaXR5KTsKKyAgICBBU1NFUlQobV9zZWdtZW50cy5oZWFkKCkt
Pm1fdG9wID09IHNfc2VnbWVudENhcGFjaXR5KTsKICAgICAKICAgICBNYXJrU3RhY2tTZWdtZW50
KiBuZXh0U2VnbWVudCA9IE1hcmtTdGFja1NlZ21lbnQ6OmNyZWF0ZShtX2Jsb2NrQWxsb2NhdG9y
LmFsbG9jYXRlPE1hcmtTdGFja1NlZ21lbnQ+KCkpOwogICAgIG1fbnVtYmVyT2ZTZWdtZW50cysr
OwpAQCAtOTcsOCArOTcsNiBAQCB2b2lkIE1hcmtTdGFja0FycmF5Ojpkb25hdGVTb21lQ2VsbHNU
byhNYXJrU3RhY2tBcnJheSYgb3RoZXIpCiAgICAgLy8gd2UgcHJlZmVyIGRvbmF0aW5nIHdob2xl
IHNlZ21lbnRzIG92ZXIgZG9uYXRpbmcgaW5kaXZpZHVhbCBjZWxscywKICAgICAvLyBldmVuIGlm
IHRoaXMgc2tld3MgYXdheSBmcm9tIG91ciAxIC8gMiB0YXJnZXQuCiAKLSAgICBBU1NFUlQobV9z
ZWdtZW50Q2FwYWNpdHkgPT0gb3RoZXIubV9zZWdtZW50Q2FwYWNpdHkpOwotCiAgICAgc2l6ZV90
IHNlZ21lbnRzVG9Eb25hdGUgPSBtX251bWJlck9mU2VnbWVudHMgLyAyOyAvLyBJZiB3ZSBvbmx5
IGhhdmUgb25lIHNlZ21lbnQgKG91ciBoZWFkKSB3ZSBkb24ndCBkb25hdGUgYW55IHNlZ21lbnRz
LgogCiAgICAgaWYgKCFzZWdtZW50c1RvRG9uYXRlKSB7CkBAIC0xNDEsNyArMTM5LDYgQEAgdm9p
ZCBNYXJrU3RhY2tBcnJheTo6c3RlYWxTb21lQ2VsbHNGcm9tKE1hcmtTdGFja0FycmF5JiBvdGhl
ciwgc2l6ZV90IGlkbGVUaHJlYWQKICAgICAvLyBUbyByZWR1Y2UgY29weWluZyBjb3N0cywgd2Ug
cHJlZmVyIHN0ZWFsaW5nIGEgd2hvbGUgc2VnbWVudCBvdmVyIHN0ZWFsaW5nCiAgICAgLy8gaW5k
aXZpZHVhbCBjZWxscywgZXZlbiBpZiB0aGlzIHNrZXdzIGF3YXkgZnJvbSBvdXIgMSAvIE4gdGFy
Z2V0LgogCi0gICAgQVNTRVJUKG1fc2VnbWVudENhcGFjaXR5ID09IG90aGVyLm1fc2VnbWVudENh
cGFjaXR5KTsKICAgICB2YWxpZGF0ZVByZXZpb3VzKCk7CiAgICAgb3RoZXIudmFsaWRhdGVQcmV2
aW91cygpOwogICAgICAgICAKQEAgLTE1MSw3ICsxNDgsNyBAQCB2b2lkIE1hcmtTdGFja0FycmF5
OjpzdGVhbFNvbWVDZWxsc0Zyb20oTWFya1N0YWNrQXJyYXkmIG90aGVyLCBzaXplX3QgaWRsZVRo
cmVhZAogICAgICAgICBNYXJrU3RhY2tTZWdtZW50KiBvdGhlckhlYWQgPSBvdGhlci5tX3NlZ21l
bnRzLnJlbW92ZUhlYWQoKTsKICAgICAgICAgTWFya1N0YWNrU2VnbWVudCogbXlIZWFkID0gbV9z
ZWdtZW50cy5yZW1vdmVIZWFkKCk7CiAKLSAgICAgICAgQVNTRVJUKG90aGVyLm1fc2VnbWVudHMu
aGVhZCgpLT5tX3RvcCA9PSBtX3NlZ21lbnRDYXBhY2l0eSk7CisgICAgICAgIEFTU0VSVChvdGhl
ci5tX3NlZ21lbnRzLmhlYWQoKS0+bV90b3AgPT0gc19zZWdtZW50Q2FwYWNpdHkpOwogCiAgICAg
ICAgIG1fc2VnbWVudHMucHVzaChvdGhlci5tX3NlZ21lbnRzLnJlbW92ZUhlYWQoKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmgKaW5kZXggMmE3ZjA0NC4uZjMzOTM4MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmgKQEAgLTEyNCw3ICsxMjQsNyBA
QCBwcml2YXRlOgogICAgIERvdWJseUxpbmtlZExpc3Q8TWFya1N0YWNrU2VnbWVudD4gbV9zZWdt
ZW50czsKICAgICBCbG9ja0FsbG9jYXRvciYgbV9ibG9ja0FsbG9jYXRvcjsKIAotICAgIHNpemVf
dCBtX3NlZ21lbnRDYXBhY2l0eTsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNfc2VnbWVudENh
cGFjaXR5OwogICAgIHNpemVfdCBtX3RvcDsKICAgICBzaXplX3QgbV9udW1iZXJPZlNlZ21lbnRz
OwogICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2tJ
bmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2tJbmxpbmVzLmgK
aW5kZXggMTU5NWU4NC4uYzU3N2RlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvTWFya1N0YWNrSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L01hcmtTdGFja0lubGluZXMuaApAQCAtNTIsOCArNTIsOCBAQCBpbmxpbmUgc2l6ZV90IE1hcmtT
dGFja0FycmF5OjpwcmVEZWNUb3AoKQogCiBpbmxpbmUgdm9pZCBNYXJrU3RhY2tBcnJheTo6c2V0
VG9wRm9yRnVsbFNlZ21lbnQoKQogewotICAgIEFTU0VSVChtX3NlZ21lbnRzLmhlYWQoKS0+bV90
b3AgPT0gbV9zZWdtZW50Q2FwYWNpdHkpOwotICAgIG1fdG9wID0gbV9zZWdtZW50Q2FwYWNpdHk7
CisgICAgQVNTRVJUKG1fc2VnbWVudHMuaGVhZCgpLT5tX3RvcCA9PSBzX3NlZ21lbnRDYXBhY2l0
eSk7CisgICAgbV90b3AgPSBzX3NlZ21lbnRDYXBhY2l0eTsKIH0KIAogaW5saW5lIHZvaWQgTWFy
a1N0YWNrQXJyYXk6OnNldFRvcEZvckVtcHR5U2VnbWVudCgpCkBAIC04Miw3ICs4Miw3IEBAIGlu
bGluZSB2b2lkIE1hcmtTdGFja0FycmF5Ojp2YWxpZGF0ZVByZXZpb3VzKCkKIAogaW5saW5lIHZv
aWQgTWFya1N0YWNrQXJyYXk6OmFwcGVuZChjb25zdCBKU0NlbGwqIGNlbGwpCiB7Ci0gICAgaWYg
KG1fdG9wID09IG1fc2VnbWVudENhcGFjaXR5KQorICAgIGlmIChtX3RvcCA9PSBzX3NlZ21lbnRD
YXBhY2l0eSkKICAgICAgICAgZXhwYW5kKCk7CiAgICAgbV9zZWdtZW50cy5oZWFkKCktPmRhdGEo
KVtwb3N0SW5jVG9wKCldID0gY2VsbDsKIH0KQEAgLTEwMiw3ICsxMDIsNyBAQCBpbmxpbmUgYm9v
bCBNYXJrU3RhY2tBcnJheTo6aXNFbXB0eSgpCiAgICAgaWYgKG1fdG9wKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKG1fc2VnbWVudHMuaGVhZCgpLT5uZXh0KCkpIHsKLSAgICAgICAg
QVNTRVJUKG1fc2VnbWVudHMuaGVhZCgpLT5uZXh0KCktPm1fdG9wID09IG1fc2VnbWVudENhcGFj
aXR5KTsKKyAgICAgICAgQVNTRVJUKG1fc2VnbWVudHMuaGVhZCgpLT5uZXh0KCktPm1fdG9wID09
IHNfc2VnbWVudENhcGFjaXR5KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTExMCw3ICsxMTAsNyBAQCBpbmxpbmUgYm9vbCBNYXJrU3RhY2tBcnJh
eTo6aXNFbXB0eSgpCiAKIGlubGluZSBzaXplX3QgTWFya1N0YWNrQXJyYXk6OnNpemUoKQogewot
ICAgIHJldHVybiBtX3RvcCArIG1fc2VnbWVudENhcGFjaXR5ICogKG1fbnVtYmVyT2ZTZWdtZW50
cyAtIDEpOworICAgIHJldHVybiBtX3RvcCArIHNfc2VnbWVudENhcGFjaXR5ICogKG1fbnVtYmVy
T2ZTZWdtZW50cyAtIDEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCAzYmNlNTQ1Li5mYTZmMjBlYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMTIwLDcgKzEyMCw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHYoZG91YmxlLCBzdHJ1Y3R1cmVDaGVja1ZvdGVSYXRpb0ZvckhvaXN0
aW5nLCAxKSBcCiAgICAgXAogICAgIHYodW5zaWduZWQsIG1pbmltdW1OdW1iZXJPZlNjYW5zQmV0
d2VlblJlYmFsYW5jZSwgMTAwKSBcCi0gICAgdih1bnNpZ25lZCwgZ2NNYXJrU3RhY2tTZWdtZW50
U2l6ZSwgcGFnZVNpemUoKSkgXAogICAgIHYodW5zaWduZWQsIG51bWJlck9mR0NNYXJrZXJzLCBj
b21wdXRlTnVtYmVyT2ZHQ01hcmtlcnMoNykpIFwKICAgICB2KHVuc2lnbmVkLCBvcGFxdWVSb290
TWVyZ2VUaHJlc2hvbGQsIDEwMDApIFwKICAgICB2KGRvdWJsZSwgbWluSGVhcFV0aWxpemF0aW9u
LCAwLjgpIFwK
</data>
<flag name="review"
          id="200000"
          type_id="1"
          status="-"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="200004"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183406</attachid>
            <date>2013-01-18 02:00:03 -0800</date>
            <delta_ts>2013-01-18 08:45:31 -0800</delta_ts>
            <desc>Make capacity field static.</desc>
            <filename>heap2.diff</filename>
            <type>text/plain</type>
            <size>6606</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDcwMTMzNmMuLjIzM2NkYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAxLTE4ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgcjEzNDA4MCBjYXVzZXMgaGVh
cCBwcm9ibGVtIG9uIGxpbnV4IHN5c3RlbXMgd2hlcmUgUEFHRVNJWkUgIT0gNDA5NgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyODI4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBNYXJrU3RhY2tT
ZWdtZW50OjpibG9ja1NpemUgYXMgdGhlIGNhcGFjaXR5IG9mIHNlZ21lbnRzIG9mIGEgTWFya1N0
YWNrQXJyYXkuCisKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5jcHA6CisgICAgICAgIChKU0Mp
OgorICAgICAgICAoSlNDOjpNYXJrU3RhY2tBcnJheTo6TWFya1N0YWNrQXJyYXkpOgorICAgICAg
ICAoSlNDOjpNYXJrU3RhY2tBcnJheTo6ZXhwYW5kKToKKyAgICAgICAgKEpTQzo6TWFya1N0YWNr
QXJyYXk6OmRvbmF0ZVNvbWVDZWxsc1RvKToKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6
OnN0ZWFsU29tZUNlbGxzRnJvbSk6CisgICAgICAgICogaGVhcC9NYXJrU3RhY2suaDoKKyAgICAg
ICAgKE1hcmtTdGFja0FycmF5KToKKyAgICAgICAgKiBoZWFwL01hcmtTdGFja0lubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6OnNldFRvcEZvckZ1bGxTZWdtZW50KToKKyAg
ICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6OmFwcGVuZCk6CisgICAgICAgIChKU0M6Ok1hcmtT
dGFja0FycmF5Ojppc0VtcHR5KToKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6OnNpemUp
OgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAoSlNDKToKKwogMjAxMy0w
MS0xNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRl
ZCBzdm46aWdub3JlPSoucHljLCBzbyB0aGF0IHVkX29wY29kZS5weWMgYW5kIHVkX29wdGFibGUu
cHljIGRvbid0IHNob3cgdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L01hcmtTdGFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3Bw
CmluZGV4IDc1NWEwYWQuLjMyODViYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtTdGFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFy
a1N0YWNrLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkNvcGllZFNwYWNlLmgiCiAj
aW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSGVhcC5oIgotI2luY2x1
ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAiSlNDZWxsLmgi
CiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKQEAgLTQ1LDEzICs0NCwyNCBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAorI2lmIENPTVBJTEVSKENMQU5HKQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2dsb2JhbC1jb25zdHJ1Y3Rv
cnMiCisjZW5kaWYKKworY29uc3Qgc2l6ZV90IE1hcmtTdGFja0FycmF5OjpzX3NlZ21lbnRDYXBh
Y2l0eSA9IE1hcmtTdGFja1NlZ21lbnQ6OmNhcGFjaXR5RnJvbVNpemUoTWFya1N0YWNrU2VnbWVu
dDo6YmxvY2tTaXplKTsKKworI2lmIENPTVBJTEVSKENMQU5HKQorI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorI2VuZGlmCisKK0NPTVBJTEVfQVNTRVJUKE1hcmtTdGFja1NlZ21lbnQ6OmJs
b2NrU2l6ZSA9PSBXZWFrQmxvY2s6OmJsb2NrU2l6ZSwgYmxvY2tTaXplTWF0Y2gpOworCiBNYXJr
U3RhY2tBcnJheTo6TWFya1N0YWNrQXJyYXkoQmxvY2tBbGxvY2F0b3ImIGJsb2NrQWxsb2NhdG9y
KQogICAgIDogbV9ibG9ja0FsbG9jYXRvcihibG9ja0FsbG9jYXRvcikKLSAgICAsIG1fc2VnbWVu
dENhcGFjaXR5KE1hcmtTdGFja1NlZ21lbnQ6OmNhcGFjaXR5RnJvbVNpemUoT3B0aW9uczo6Z2NN
YXJrU3RhY2tTZWdtZW50U2l6ZSgpKSkKICAgICAsIG1fdG9wKDApCiAgICAgLCBtX251bWJlck9m
U2VnbWVudHMoMCkKIHsKLSAgICBBU1NFUlQoTWFya1N0YWNrU2VnbWVudDo6YmxvY2tTaXplID09
IFdlYWtCbG9jazo6YmxvY2tTaXplKTsKICAgICBtX3NlZ21lbnRzLnB1c2goTWFya1N0YWNrU2Vn
bWVudDo6Y3JlYXRlKG1fYmxvY2tBbGxvY2F0b3IuYWxsb2NhdGU8TWFya1N0YWNrU2VnbWVudD4o
KSkpOwogICAgIG1fbnVtYmVyT2ZTZWdtZW50cysrOwogfQpAQCAtNjQsNyArNzQsNyBAQCBNYXJr
U3RhY2tBcnJheTo6fk1hcmtTdGFja0FycmF5KCkKIAogdm9pZCBNYXJrU3RhY2tBcnJheTo6ZXhw
YW5kKCkKIHsKLSAgICBBU1NFUlQobV9zZWdtZW50cy5oZWFkKCktPm1fdG9wID09IG1fc2VnbWVu
dENhcGFjaXR5KTsKKyAgICBBU1NFUlQobV9zZWdtZW50cy5oZWFkKCktPm1fdG9wID09IHNfc2Vn
bWVudENhcGFjaXR5KTsKICAgICAKICAgICBNYXJrU3RhY2tTZWdtZW50KiBuZXh0U2VnbWVudCA9
IE1hcmtTdGFja1NlZ21lbnQ6OmNyZWF0ZShtX2Jsb2NrQWxsb2NhdG9yLmFsbG9jYXRlPE1hcmtT
dGFja1NlZ21lbnQ+KCkpOwogICAgIG1fbnVtYmVyT2ZTZWdtZW50cysrOwpAQCAtOTcsOCArMTA3
LDYgQEAgdm9pZCBNYXJrU3RhY2tBcnJheTo6ZG9uYXRlU29tZUNlbGxzVG8oTWFya1N0YWNrQXJy
YXkmIG90aGVyKQogICAgIC8vIHdlIHByZWZlciBkb25hdGluZyB3aG9sZSBzZWdtZW50cyBvdmVy
IGRvbmF0aW5nIGluZGl2aWR1YWwgY2VsbHMsCiAgICAgLy8gZXZlbiBpZiB0aGlzIHNrZXdzIGF3
YXkgZnJvbSBvdXIgMSAvIDIgdGFyZ2V0LgogCi0gICAgQVNTRVJUKG1fc2VnbWVudENhcGFjaXR5
ID09IG90aGVyLm1fc2VnbWVudENhcGFjaXR5KTsKLQogICAgIHNpemVfdCBzZWdtZW50c1RvRG9u
YXRlID0gbV9udW1iZXJPZlNlZ21lbnRzIC8gMjsgLy8gSWYgd2Ugb25seSBoYXZlIG9uZSBzZWdt
ZW50IChvdXIgaGVhZCkgd2UgZG9uJ3QgZG9uYXRlIGFueSBzZWdtZW50cy4KIAogICAgIGlmICgh
c2VnbWVudHNUb0RvbmF0ZSkgewpAQCAtMTQxLDcgKzE0OSw2IEBAIHZvaWQgTWFya1N0YWNrQXJy
YXk6OnN0ZWFsU29tZUNlbGxzRnJvbShNYXJrU3RhY2tBcnJheSYgb3RoZXIsIHNpemVfdCBpZGxl
VGhyZWFkCiAgICAgLy8gVG8gcmVkdWNlIGNvcHlpbmcgY29zdHMsIHdlIHByZWZlciBzdGVhbGlu
ZyBhIHdob2xlIHNlZ21lbnQgb3ZlciBzdGVhbGluZwogICAgIC8vIGluZGl2aWR1YWwgY2VsbHMs
IGV2ZW4gaWYgdGhpcyBza2V3cyBhd2F5IGZyb20gb3VyIDEgLyBOIHRhcmdldC4KIAotICAgIEFT
U0VSVChtX3NlZ21lbnRDYXBhY2l0eSA9PSBvdGhlci5tX3NlZ21lbnRDYXBhY2l0eSk7CiAgICAg
dmFsaWRhdGVQcmV2aW91cygpOwogICAgIG90aGVyLnZhbGlkYXRlUHJldmlvdXMoKTsKICAgICAg
ICAgCkBAIC0xNTEsNyArMTU4LDcgQEAgdm9pZCBNYXJrU3RhY2tBcnJheTo6c3RlYWxTb21lQ2Vs
bHNGcm9tKE1hcmtTdGFja0FycmF5JiBvdGhlciwgc2l6ZV90IGlkbGVUaHJlYWQKICAgICAgICAg
TWFya1N0YWNrU2VnbWVudCogb3RoZXJIZWFkID0gb3RoZXIubV9zZWdtZW50cy5yZW1vdmVIZWFk
KCk7CiAgICAgICAgIE1hcmtTdGFja1NlZ21lbnQqIG15SGVhZCA9IG1fc2VnbWVudHMucmVtb3Zl
SGVhZCgpOwogCi0gICAgICAgIEFTU0VSVChvdGhlci5tX3NlZ21lbnRzLmhlYWQoKS0+bV90b3Ag
PT0gbV9zZWdtZW50Q2FwYWNpdHkpOworICAgICAgICBBU1NFUlQob3RoZXIubV9zZWdtZW50cy5o
ZWFkKCktPm1fdG9wID09IHNfc2VnbWVudENhcGFjaXR5KTsKIAogICAgICAgICBtX3NlZ21lbnRz
LnB1c2gob3RoZXIubV9zZWdtZW50cy5yZW1vdmVIZWFkKCkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtTdGFjay5oCmluZGV4IDJhN2YwNDQuLmYzMzkzODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtTdGFjay5oCkBAIC0xMjQsNyArMTI0LDcgQEAgcHJpdmF0ZToKICAg
ICBEb3VibHlMaW5rZWRMaXN0PE1hcmtTdGFja1NlZ21lbnQ+IG1fc2VnbWVudHM7CiAgICAgQmxv
Y2tBbGxvY2F0b3ImIG1fYmxvY2tBbGxvY2F0b3I7CiAKLSAgICBzaXplX3QgbV9zZWdtZW50Q2Fw
YWNpdHk7CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzX3NlZ21lbnRDYXBhY2l0eTsKICAgICBz
aXplX3QgbV90b3A7CiAgICAgc2l6ZV90IG1fbnVtYmVyT2ZTZWdtZW50czsKICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrSW5saW5lcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrSW5saW5lcy5oCmluZGV4IDE1OTVlODQu
LmM1NzdkZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFj
a0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2tJbmxp
bmVzLmgKQEAgLTUyLDggKzUyLDggQEAgaW5saW5lIHNpemVfdCBNYXJrU3RhY2tBcnJheTo6cHJl
RGVjVG9wKCkKIAogaW5saW5lIHZvaWQgTWFya1N0YWNrQXJyYXk6OnNldFRvcEZvckZ1bGxTZWdt
ZW50KCkKIHsKLSAgICBBU1NFUlQobV9zZWdtZW50cy5oZWFkKCktPm1fdG9wID09IG1fc2VnbWVu
dENhcGFjaXR5KTsKLSAgICBtX3RvcCA9IG1fc2VnbWVudENhcGFjaXR5OworICAgIEFTU0VSVCht
X3NlZ21lbnRzLmhlYWQoKS0+bV90b3AgPT0gc19zZWdtZW50Q2FwYWNpdHkpOworICAgIG1fdG9w
ID0gc19zZWdtZW50Q2FwYWNpdHk7CiB9CiAKIGlubGluZSB2b2lkIE1hcmtTdGFja0FycmF5Ojpz
ZXRUb3BGb3JFbXB0eVNlZ21lbnQoKQpAQCAtODIsNyArODIsNyBAQCBpbmxpbmUgdm9pZCBNYXJr
U3RhY2tBcnJheTo6dmFsaWRhdGVQcmV2aW91cygpCiAKIGlubGluZSB2b2lkIE1hcmtTdGFja0Fy
cmF5OjphcHBlbmQoY29uc3QgSlNDZWxsKiBjZWxsKQogewotICAgIGlmIChtX3RvcCA9PSBtX3Nl
Z21lbnRDYXBhY2l0eSkKKyAgICBpZiAobV90b3AgPT0gc19zZWdtZW50Q2FwYWNpdHkpCiAgICAg
ICAgIGV4cGFuZCgpOwogICAgIG1fc2VnbWVudHMuaGVhZCgpLT5kYXRhKClbcG9zdEluY1RvcCgp
XSA9IGNlbGw7CiB9CkBAIC0xMDIsNyArMTAyLDcgQEAgaW5saW5lIGJvb2wgTWFya1N0YWNrQXJy
YXk6OmlzRW1wdHkoKQogICAgIGlmIChtX3RvcCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmIChtX3NlZ21lbnRzLmhlYWQoKS0+bmV4dCgpKSB7Ci0gICAgICAgIEFTU0VSVChtX3NlZ21l
bnRzLmhlYWQoKS0+bmV4dCgpLT5tX3RvcCA9PSBtX3NlZ21lbnRDYXBhY2l0eSk7CisgICAgICAg
IEFTU0VSVChtX3NlZ21lbnRzLmhlYWQoKS0+bmV4dCgpLT5tX3RvcCA9PSBzX3NlZ21lbnRDYXBh
Y2l0eSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBA
IC0xMTAsNyArMTEwLDcgQEAgaW5saW5lIGJvb2wgTWFya1N0YWNrQXJyYXk6OmlzRW1wdHkoKQog
CiBpbmxpbmUgc2l6ZV90IE1hcmtTdGFja0FycmF5OjpzaXplKCkKIHsKLSAgICByZXR1cm4gbV90
b3AgKyBtX3NlZ21lbnRDYXBhY2l0eSAqIChtX251bWJlck9mU2VnbWVudHMgLSAxKTsKKyAgICBy
ZXR1cm4gbV90b3AgKyBzX3NlZ21lbnRDYXBhY2l0eSAqIChtX251bWJlck9mU2VnbWVudHMgLSAx
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zLmgKaW5kZXggZTRiMDAwMS4uYzM1OGZhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuaApAQCAtMTIyLDcgKzEyMiw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IHYoZG91YmxlLCBzdHJ1Y3R1cmVDaGVja1ZvdGVSYXRpb0ZvckhvaXN0aW5nLCAxKSBcCiAgICAg
XAogICAgIHYodW5zaWduZWQsIG1pbmltdW1OdW1iZXJPZlNjYW5zQmV0d2VlblJlYmFsYW5jZSwg
MTAwKSBcCi0gICAgdih1bnNpZ25lZCwgZ2NNYXJrU3RhY2tTZWdtZW50U2l6ZSwgcGFnZVNpemUo
KSkgXAogICAgIHYodW5zaWduZWQsIG51bWJlck9mR0NNYXJrZXJzLCBjb21wdXRlTnVtYmVyT2ZH
Q01hcmtlcnMoNykpIFwKICAgICB2KHVuc2lnbmVkLCBvcGFxdWVSb290TWVyZ2VUaHJlc2hvbGQs
IDEwMDApIFwKICAgICB2KGRvdWJsZSwgbWluSGVhcFV0aWxpemF0aW9uLCAwLjgpIFwK
</data>
<flag name="commit-queue"
          id="201784"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183468</attachid>
            <date>2013-01-18 08:45:31 -0800</date>
            <delta_ts>2013-01-18 11:18:25 -0800</delta_ts>
            <desc>Make capacity field static.</desc>
            <filename>heap2.diff</filename>
            <type>text/plain</type>
            <size>6587</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDU0YTkwYjYuLmY4ODcxYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAxLTE4ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgcjEzNDA4MCBjYXVzZXMgaGVh
cCBwcm9ibGVtIG9uIGxpbnV4IHN5c3RlbXMgd2hlcmUgUEFHRVNJWkUgIT0gNDA5NgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyODI4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBNYXJrU3RhY2tT
ZWdtZW50OjpibG9ja1NpemUgYXMgdGhlIGNhcGFjaXR5IG9mIHNlZ21lbnRzIG9mIGEgTWFya1N0
YWNrQXJyYXkuCisKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5jcHA6CisgICAgICAgIChKU0Mp
OgorICAgICAgICAoSlNDOjpNYXJrU3RhY2tBcnJheTo6TWFya1N0YWNrQXJyYXkpOgorICAgICAg
ICAoSlNDOjpNYXJrU3RhY2tBcnJheTo6ZXhwYW5kKToKKyAgICAgICAgKEpTQzo6TWFya1N0YWNr
QXJyYXk6OmRvbmF0ZVNvbWVDZWxsc1RvKToKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6
OnN0ZWFsU29tZUNlbGxzRnJvbSk6CisgICAgICAgICogaGVhcC9NYXJrU3RhY2suaDoKKyAgICAg
ICAgKE1hcmtTdGFja0FycmF5KToKKyAgICAgICAgKiBoZWFwL01hcmtTdGFja0lubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6OnNldFRvcEZvckZ1bGxTZWdtZW50KToKKyAg
ICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6OmFwcGVuZCk6CisgICAgICAgIChKU0M6Ok1hcmtT
dGFja0FycmF5Ojppc0VtcHR5KToKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6OnNpemUp
OgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAoSlNDKToKKwogMjAxMy0w
MS0xNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAg
IE9iamVjdGl2ZS1DIEFQSTogQ2xlYW4gdXAgSlNWYWx1ZS5tbQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtTdGFjay5jcHAKaW5kZXggNzU1YTBhZC4uMzI4NWJjNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVk
ZSAiQ29waWVkU3BhY2UuaCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNs
dWRlICJIZWFwLmgiCi0jaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIK
ICNpbmNsdWRlICJKU0NlbGwuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgpAQCAtNDUsMTMgKzQ0
LDI0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCisjaWYgQ09NUElMRVIoQ0xBTkcpCisjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIKKyNlbmRpZgorCitjb25zdCBzaXplX3QgTWFya1N0YWNr
QXJyYXk6OnNfc2VnbWVudENhcGFjaXR5ID0gTWFya1N0YWNrU2VnbWVudDo6Y2FwYWNpdHlGcm9t
U2l6ZShNYXJrU3RhY2tTZWdtZW50OjpibG9ja1NpemUpOworCisjaWYgQ09NUElMRVIoQ0xBTkcp
CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKKworQ09NUElMRV9BU1NFUlQo
TWFya1N0YWNrU2VnbWVudDo6YmxvY2tTaXplID09IFdlYWtCbG9jazo6YmxvY2tTaXplLCBibG9j
a1NpemVNYXRjaCk7CisKIE1hcmtTdGFja0FycmF5OjpNYXJrU3RhY2tBcnJheShCbG9ja0FsbG9j
YXRvciYgYmxvY2tBbGxvY2F0b3IpCiAgICAgOiBtX2Jsb2NrQWxsb2NhdG9yKGJsb2NrQWxsb2Nh
dG9yKQotICAgICwgbV9zZWdtZW50Q2FwYWNpdHkoTWFya1N0YWNrU2VnbWVudDo6Y2FwYWNpdHlG
cm9tU2l6ZShPcHRpb25zOjpnY01hcmtTdGFja1NlZ21lbnRTaXplKCkpKQogICAgICwgbV90b3Ao
MCkKICAgICAsIG1fbnVtYmVyT2ZTZWdtZW50cygwKQogewotICAgIEFTU0VSVChNYXJrU3RhY2tT
ZWdtZW50OjpibG9ja1NpemUgPT0gV2Vha0Jsb2NrOjpibG9ja1NpemUpOwogICAgIG1fc2VnbWVu
dHMucHVzaChNYXJrU3RhY2tTZWdtZW50OjpjcmVhdGUobV9ibG9ja0FsbG9jYXRvci5hbGxvY2F0
ZTxNYXJrU3RhY2tTZWdtZW50PigpKSk7CiAgICAgbV9udW1iZXJPZlNlZ21lbnRzKys7CiB9CkBA
IC02NCw3ICs3NCw3IEBAIE1hcmtTdGFja0FycmF5Ojp+TWFya1N0YWNrQXJyYXkoKQogCiB2b2lk
IE1hcmtTdGFja0FycmF5OjpleHBhbmQoKQogewotICAgIEFTU0VSVChtX3NlZ21lbnRzLmhlYWQo
KS0+bV90b3AgPT0gbV9zZWdtZW50Q2FwYWNpdHkpOworICAgIEFTU0VSVChtX3NlZ21lbnRzLmhl
YWQoKS0+bV90b3AgPT0gc19zZWdtZW50Q2FwYWNpdHkpOwogICAgIAogICAgIE1hcmtTdGFja1Nl
Z21lbnQqIG5leHRTZWdtZW50ID0gTWFya1N0YWNrU2VnbWVudDo6Y3JlYXRlKG1fYmxvY2tBbGxv
Y2F0b3IuYWxsb2NhdGU8TWFya1N0YWNrU2VnbWVudD4oKSk7CiAgICAgbV9udW1iZXJPZlNlZ21l
bnRzKys7CkBAIC05Nyw4ICsxMDcsNiBAQCB2b2lkIE1hcmtTdGFja0FycmF5Ojpkb25hdGVTb21l
Q2VsbHNUbyhNYXJrU3RhY2tBcnJheSYgb3RoZXIpCiAgICAgLy8gd2UgcHJlZmVyIGRvbmF0aW5n
IHdob2xlIHNlZ21lbnRzIG92ZXIgZG9uYXRpbmcgaW5kaXZpZHVhbCBjZWxscywKICAgICAvLyBl
dmVuIGlmIHRoaXMgc2tld3MgYXdheSBmcm9tIG91ciAxIC8gMiB0YXJnZXQuCiAKLSAgICBBU1NF
UlQobV9zZWdtZW50Q2FwYWNpdHkgPT0gb3RoZXIubV9zZWdtZW50Q2FwYWNpdHkpOwotCiAgICAg
c2l6ZV90IHNlZ21lbnRzVG9Eb25hdGUgPSBtX251bWJlck9mU2VnbWVudHMgLyAyOyAvLyBJZiB3
ZSBvbmx5IGhhdmUgb25lIHNlZ21lbnQgKG91ciBoZWFkKSB3ZSBkb24ndCBkb25hdGUgYW55IHNl
Z21lbnRzLgogCiAgICAgaWYgKCFzZWdtZW50c1RvRG9uYXRlKSB7CkBAIC0xNDEsNyArMTQ5LDYg
QEAgdm9pZCBNYXJrU3RhY2tBcnJheTo6c3RlYWxTb21lQ2VsbHNGcm9tKE1hcmtTdGFja0FycmF5
JiBvdGhlciwgc2l6ZV90IGlkbGVUaHJlYWQKICAgICAvLyBUbyByZWR1Y2UgY29weWluZyBjb3N0
cywgd2UgcHJlZmVyIHN0ZWFsaW5nIGEgd2hvbGUgc2VnbWVudCBvdmVyIHN0ZWFsaW5nCiAgICAg
Ly8gaW5kaXZpZHVhbCBjZWxscywgZXZlbiBpZiB0aGlzIHNrZXdzIGF3YXkgZnJvbSBvdXIgMSAv
IE4gdGFyZ2V0LgogCi0gICAgQVNTRVJUKG1fc2VnbWVudENhcGFjaXR5ID09IG90aGVyLm1fc2Vn
bWVudENhcGFjaXR5KTsKICAgICB2YWxpZGF0ZVByZXZpb3VzKCk7CiAgICAgb3RoZXIudmFsaWRh
dGVQcmV2aW91cygpOwogICAgICAgICAKQEAgLTE1MSw3ICsxNTgsNyBAQCB2b2lkIE1hcmtTdGFj
a0FycmF5OjpzdGVhbFNvbWVDZWxsc0Zyb20oTWFya1N0YWNrQXJyYXkmIG90aGVyLCBzaXplX3Qg
aWRsZVRocmVhZAogICAgICAgICBNYXJrU3RhY2tTZWdtZW50KiBvdGhlckhlYWQgPSBvdGhlci5t
X3NlZ21lbnRzLnJlbW92ZUhlYWQoKTsKICAgICAgICAgTWFya1N0YWNrU2VnbWVudCogbXlIZWFk
ID0gbV9zZWdtZW50cy5yZW1vdmVIZWFkKCk7CiAKLSAgICAgICAgQVNTRVJUKG90aGVyLm1fc2Vn
bWVudHMuaGVhZCgpLT5tX3RvcCA9PSBtX3NlZ21lbnRDYXBhY2l0eSk7CisgICAgICAgIEFTU0VS
VChvdGhlci5tX3NlZ21lbnRzLmhlYWQoKS0+bV90b3AgPT0gc19zZWdtZW50Q2FwYWNpdHkpOwog
CiAgICAgICAgIG1fc2VnbWVudHMucHVzaChvdGhlci5tX3NlZ21lbnRzLnJlbW92ZUhlYWQoKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmgKaW5kZXggMmE3ZjA0NC4uMjUx
Y2IxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmgKQEAgLTEyNCw3ICsx
MjQsNyBAQCBwcml2YXRlOgogICAgIERvdWJseUxpbmtlZExpc3Q8TWFya1N0YWNrU2VnbWVudD4g
bV9zZWdtZW50czsKICAgICBCbG9ja0FsbG9jYXRvciYgbV9ibG9ja0FsbG9jYXRvcjsKIAotICAg
IHNpemVfdCBtX3NlZ21lbnRDYXBhY2l0eTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMg
Y29uc3Qgc2l6ZV90IHNfc2VnbWVudENhcGFjaXR5OwogICAgIHNpemVfdCBtX3RvcDsKICAgICBz
aXplX3QgbV9udW1iZXJPZlNlZ21lbnRzOwogICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrU3RhY2tJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrU3RhY2tJbmxpbmVzLmgKaW5kZXggMTU5NWU4NC4uYzU3N2RlNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrSW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFja0lubGluZXMuaApAQCAtNTIsOCArNTIs
OCBAQCBpbmxpbmUgc2l6ZV90IE1hcmtTdGFja0FycmF5OjpwcmVEZWNUb3AoKQogCiBpbmxpbmUg
dm9pZCBNYXJrU3RhY2tBcnJheTo6c2V0VG9wRm9yRnVsbFNlZ21lbnQoKQogewotICAgIEFTU0VS
VChtX3NlZ21lbnRzLmhlYWQoKS0+bV90b3AgPT0gbV9zZWdtZW50Q2FwYWNpdHkpOwotICAgIG1f
dG9wID0gbV9zZWdtZW50Q2FwYWNpdHk7CisgICAgQVNTRVJUKG1fc2VnbWVudHMuaGVhZCgpLT5t
X3RvcCA9PSBzX3NlZ21lbnRDYXBhY2l0eSk7CisgICAgbV90b3AgPSBzX3NlZ21lbnRDYXBhY2l0
eTsKIH0KIAogaW5saW5lIHZvaWQgTWFya1N0YWNrQXJyYXk6OnNldFRvcEZvckVtcHR5U2VnbWVu
dCgpCkBAIC04Miw3ICs4Miw3IEBAIGlubGluZSB2b2lkIE1hcmtTdGFja0FycmF5Ojp2YWxpZGF0
ZVByZXZpb3VzKCkKIAogaW5saW5lIHZvaWQgTWFya1N0YWNrQXJyYXk6OmFwcGVuZChjb25zdCBK
U0NlbGwqIGNlbGwpCiB7Ci0gICAgaWYgKG1fdG9wID09IG1fc2VnbWVudENhcGFjaXR5KQorICAg
IGlmIChtX3RvcCA9PSBzX3NlZ21lbnRDYXBhY2l0eSkKICAgICAgICAgZXhwYW5kKCk7CiAgICAg
bV9zZWdtZW50cy5oZWFkKCktPmRhdGEoKVtwb3N0SW5jVG9wKCldID0gY2VsbDsKIH0KQEAgLTEw
Miw3ICsxMDIsNyBAQCBpbmxpbmUgYm9vbCBNYXJrU3RhY2tBcnJheTo6aXNFbXB0eSgpCiAgICAg
aWYgKG1fdG9wKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKG1fc2VnbWVudHMuaGVh
ZCgpLT5uZXh0KCkpIHsKLSAgICAgICAgQVNTRVJUKG1fc2VnbWVudHMuaGVhZCgpLT5uZXh0KCkt
Pm1fdG9wID09IG1fc2VnbWVudENhcGFjaXR5KTsKKyAgICAgICAgQVNTRVJUKG1fc2VnbWVudHMu
aGVhZCgpLT5uZXh0KCktPm1fdG9wID09IHNfc2VnbWVudENhcGFjaXR5KTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExMCw3ICsxMTAsNyBAQCBp
bmxpbmUgYm9vbCBNYXJrU3RhY2tBcnJheTo6aXNFbXB0eSgpCiAKIGlubGluZSBzaXplX3QgTWFy
a1N0YWNrQXJyYXk6OnNpemUoKQogewotICAgIHJldHVybiBtX3RvcCArIG1fc2VnbWVudENhcGFj
aXR5ICogKG1fbnVtYmVyT2ZTZWdtZW50cyAtIDEpOworICAgIHJldHVybiBtX3RvcCArIHNfc2Vn
bWVudENhcGFjaXR5ICogKG1fbnVtYmVyT2ZTZWdtZW50cyAtIDEpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCBlNGIw
MDAxLi5jMzU4ZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCkBA
IC0xMjIsNyArMTIyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgdihkb3VibGUsIHN0cnVjdHVy
ZUNoZWNrVm90ZVJhdGlvRm9ySG9pc3RpbmcsIDEpIFwKICAgICBcCiAgICAgdih1bnNpZ25lZCwg
bWluaW11bU51bWJlck9mU2NhbnNCZXR3ZWVuUmViYWxhbmNlLCAxMDApIFwKLSAgICB2KHVuc2ln
bmVkLCBnY01hcmtTdGFja1NlZ21lbnRTaXplLCBwYWdlU2l6ZSgpKSBcCiAgICAgdih1bnNpZ25l
ZCwgbnVtYmVyT2ZHQ01hcmtlcnMsIGNvbXB1dGVOdW1iZXJPZkdDTWFya2Vycyg3KSkgXAogICAg
IHYodW5zaWduZWQsIG9wYXF1ZVJvb3RNZXJnZVRocmVzaG9sZCwgMTAwMCkgXAogICAgIHYoZG91
YmxlLCBtaW5IZWFwVXRpbGl6YXRpb24sIDAuOCkgXAo=
</data>
<flag name="review"
          id="201857"
          type_id="1"
          status="-"
          setter="mhahnenberg"
    />
    <flag name="commit-queue"
          id="201883"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183513</attachid>
            <date>2013-01-18 11:18:25 -0800</date>
            <delta_ts>2013-01-18 11:57:52 -0800</delta_ts>
            <desc>Make capacity field static.</desc>
            <filename>heap.diff</filename>
            <type>text/plain</type>
            <size>7976</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDU0YTkwYjYuLmU5YTlmZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAxLTE4ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgcjEzNDA4MCBjYXVzZXMgaGVh
cCBwcm9ibGVtIG9uIGxpbnV4IHN5c3RlbXMgd2hlcmUgUEFHRVNJWkUgIT0gNDA5NgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyODI4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBNYXJrU3RhY2tT
ZWdtZW50OjpibG9ja1NpemUgYXMgdGhlIGNhcGFjaXR5IG9mIHNlZ21lbnRzIG9mIGEgTWFya1N0
YWNrQXJyYXkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmVFeHBvcnRzLmRlZjoKKyAgICAgICAgKiBoZWFwL01hcmtTdGFjay5j
cHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpNYXJrU3RhY2tBcnJheTo6TWFya1N0
YWNrQXJyYXkpOgorICAgICAgICAoSlNDOjpNYXJrU3RhY2tBcnJheTo6ZXhwYW5kKToKKyAgICAg
ICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6OmRvbmF0ZVNvbWVDZWxsc1RvKToKKyAgICAgICAgKEpT
Qzo6TWFya1N0YWNrQXJyYXk6OnN0ZWFsU29tZUNlbGxzRnJvbSk6CisgICAgICAgICogaGVhcC9N
YXJrU3RhY2suaDoKKyAgICAgICAgKENhcGFjaXR5RnJvbVNpemUpOgorICAgICAgICAoTWFya1N0
YWNrQXJyYXkpOgorICAgICAgICAqIGhlYXAvTWFya1N0YWNrSW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpNYXJrU3RhY2tBcnJheTo6c2V0VG9wRm9yRnVsbFNlZ21lbnQpOgorICAgICAgICAoSlND
OjpNYXJrU3RhY2tBcnJheTo6YXBwZW5kKToKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6
OmlzRW1wdHkpOgorICAgICAgICAoSlNDOjpNYXJrU3RhY2tBcnJheTo6c2l6ZSk6CisgICAgICAg
ICogcnVudGltZS9PcHRpb25zLmg6CisgICAgICAgIChKU0MpOgorCiAyMDEzLTAxLTE3ICBNYXJr
IEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgT2JqZWN0aXZl
LUMgQVBJOiBDbGVhbiB1cCBKU1ZhbHVlLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
RXhwb3J0cy5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9q
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlRXhwb3J0cy5kZWYKaW5kZXggNTQwZjYzNy4u
NTZjMjQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZUV4cG9ydHMuZGVmCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmVFeHBvcnRzLmRlZgpAQCAtMzQ2LDYgKzM0Niw3IEBAIEVYUE9SVFMKICAg
ICA/cmVzdG9yZUFsbEBQcm9maWxlQEpTQ0BAUUFFWFhaCiAgICAgP3JldHJpZXZlQ2FsbGVyRnJv
bVZNQ29kZUBJbnRlcnByZXRlckBKU0NAQFFCRT9BVkpTVmFsdWVAMkBQQVZFeGVjU3RhdGVAMkBQ
QVZKU0Z1bmN0aW9uQDJAQFoKICAgICA/cmV0cmlldmVMYXN0Q2FsbGVyQEludGVycHJldGVyQEpT
Q0BAUUJFWFBBVkV4ZWNTdGF0ZUAyQEFBSDFBQVZTdHJpbmdAV1RGQEBBQVZKU1ZhbHVlQDJAQFoK
KyAgICA/c19zZWdtZW50Q2FwYWNpdHlATWFya1N0YWNrQXJyYXlASlNDQEAwSUIKICAgICA/c2F2
ZUBEYXRhYmFzZUBQcm9maWxlckBKU0NAQFFCRV9OUEJEQFoKICAgICA/c2V0Q29uZmlndXJhYmxl
QFByb3BlcnR5RGVzY3JpcHRvckBKU0NAQFFBRVhfTkBaCiAgICAgP3NldEN1c3RvbUFsbG9jYXRp
b25ATWVtb3J5Q2xhc3NJbmZvQFdURkBAUUFFWF9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYXJrU3RhY2suY3BwCmluZGV4IDc1NWEwYWQuLjM5OTA3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkNv
cGllZFNwYWNlLmgiCiAjaW5jbHVkZSAiQ29waWVkU3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
SGVhcC5oIgotI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5j
bHVkZSAiSlNDZWxsLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKQEAgLTQ1LDEzICs0NCwxMyBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAorQ09NUElMRV9BU1NFUlQoTWFya1N0YWNrU2VnbWVudDo6
YmxvY2tTaXplID09IFdlYWtCbG9jazo6YmxvY2tTaXplLCBibG9ja1NpemVNYXRjaCk7CisKIE1h
cmtTdGFja0FycmF5OjpNYXJrU3RhY2tBcnJheShCbG9ja0FsbG9jYXRvciYgYmxvY2tBbGxvY2F0
b3IpCiAgICAgOiBtX2Jsb2NrQWxsb2NhdG9yKGJsb2NrQWxsb2NhdG9yKQotICAgICwgbV9zZWdt
ZW50Q2FwYWNpdHkoTWFya1N0YWNrU2VnbWVudDo6Y2FwYWNpdHlGcm9tU2l6ZShPcHRpb25zOjpn
Y01hcmtTdGFja1NlZ21lbnRTaXplKCkpKQogICAgICwgbV90b3AoMCkKICAgICAsIG1fbnVtYmVy
T2ZTZWdtZW50cygwKQogewotICAgIEFTU0VSVChNYXJrU3RhY2tTZWdtZW50OjpibG9ja1NpemUg
PT0gV2Vha0Jsb2NrOjpibG9ja1NpemUpOwogICAgIG1fc2VnbWVudHMucHVzaChNYXJrU3RhY2tT
ZWdtZW50OjpjcmVhdGUobV9ibG9ja0FsbG9jYXRvci5hbGxvY2F0ZTxNYXJrU3RhY2tTZWdtZW50
PigpKSk7CiAgICAgbV9udW1iZXJPZlNlZ21lbnRzKys7CiB9CkBAIC02NCw3ICs2Myw3IEBAIE1h
cmtTdGFja0FycmF5Ojp+TWFya1N0YWNrQXJyYXkoKQogCiB2b2lkIE1hcmtTdGFja0FycmF5Ojpl
eHBhbmQoKQogewotICAgIEFTU0VSVChtX3NlZ21lbnRzLmhlYWQoKS0+bV90b3AgPT0gbV9zZWdt
ZW50Q2FwYWNpdHkpOworICAgIEFTU0VSVChtX3NlZ21lbnRzLmhlYWQoKS0+bV90b3AgPT0gc19z
ZWdtZW50Q2FwYWNpdHkpOwogICAgIAogICAgIE1hcmtTdGFja1NlZ21lbnQqIG5leHRTZWdtZW50
ID0gTWFya1N0YWNrU2VnbWVudDo6Y3JlYXRlKG1fYmxvY2tBbGxvY2F0b3IuYWxsb2NhdGU8TWFy
a1N0YWNrU2VnbWVudD4oKSk7CiAgICAgbV9udW1iZXJPZlNlZ21lbnRzKys7CkBAIC05Nyw4ICs5
Niw2IEBAIHZvaWQgTWFya1N0YWNrQXJyYXk6OmRvbmF0ZVNvbWVDZWxsc1RvKE1hcmtTdGFja0Fy
cmF5JiBvdGhlcikKICAgICAvLyB3ZSBwcmVmZXIgZG9uYXRpbmcgd2hvbGUgc2VnbWVudHMgb3Zl
ciBkb25hdGluZyBpbmRpdmlkdWFsIGNlbGxzLAogICAgIC8vIGV2ZW4gaWYgdGhpcyBza2V3cyBh
d2F5IGZyb20gb3VyIDEgLyAyIHRhcmdldC4KIAotICAgIEFTU0VSVChtX3NlZ21lbnRDYXBhY2l0
eSA9PSBvdGhlci5tX3NlZ21lbnRDYXBhY2l0eSk7Ci0KICAgICBzaXplX3Qgc2VnbWVudHNUb0Rv
bmF0ZSA9IG1fbnVtYmVyT2ZTZWdtZW50cyAvIDI7IC8vIElmIHdlIG9ubHkgaGF2ZSBvbmUgc2Vn
bWVudCAob3VyIGhlYWQpIHdlIGRvbid0IGRvbmF0ZSBhbnkgc2VnbWVudHMuCiAKICAgICBpZiAo
IXNlZ21lbnRzVG9Eb25hdGUpIHsKQEAgLTE0MSw3ICsxMzgsNiBAQCB2b2lkIE1hcmtTdGFja0Fy
cmF5OjpzdGVhbFNvbWVDZWxsc0Zyb20oTWFya1N0YWNrQXJyYXkmIG90aGVyLCBzaXplX3QgaWRs
ZVRocmVhZAogICAgIC8vIFRvIHJlZHVjZSBjb3B5aW5nIGNvc3RzLCB3ZSBwcmVmZXIgc3RlYWxp
bmcgYSB3aG9sZSBzZWdtZW50IG92ZXIgc3RlYWxpbmcKICAgICAvLyBpbmRpdmlkdWFsIGNlbGxz
LCBldmVuIGlmIHRoaXMgc2tld3MgYXdheSBmcm9tIG91ciAxIC8gTiB0YXJnZXQuCiAKLSAgICBB
U1NFUlQobV9zZWdtZW50Q2FwYWNpdHkgPT0gb3RoZXIubV9zZWdtZW50Q2FwYWNpdHkpOwogICAg
IHZhbGlkYXRlUHJldmlvdXMoKTsKICAgICBvdGhlci52YWxpZGF0ZVByZXZpb3VzKCk7CiAgICAg
ICAgIApAQCAtMTUxLDcgKzE0Nyw3IEBAIHZvaWQgTWFya1N0YWNrQXJyYXk6OnN0ZWFsU29tZUNl
bGxzRnJvbShNYXJrU3RhY2tBcnJheSYgb3RoZXIsIHNpemVfdCBpZGxlVGhyZWFkCiAgICAgICAg
IE1hcmtTdGFja1NlZ21lbnQqIG90aGVySGVhZCA9IG90aGVyLm1fc2VnbWVudHMucmVtb3ZlSGVh
ZCgpOwogICAgICAgICBNYXJrU3RhY2tTZWdtZW50KiBteUhlYWQgPSBtX3NlZ21lbnRzLnJlbW92
ZUhlYWQoKTsKIAotICAgICAgICBBU1NFUlQob3RoZXIubV9zZWdtZW50cy5oZWFkKCktPm1fdG9w
ID09IG1fc2VnbWVudENhcGFjaXR5KTsKKyAgICAgICAgQVNTRVJUKG90aGVyLm1fc2VnbWVudHMu
aGVhZCgpLT5tX3RvcCA9PSBzX3NlZ21lbnRDYXBhY2l0eSk7CiAKICAgICAgICAgbV9zZWdtZW50
cy5wdXNoKG90aGVyLm1fc2VnbWVudHMucmVtb3ZlSGVhZCgpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9NYXJrU3RhY2suaAppbmRleCAyYTdmMDQ0Li42OWJiMDI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrU3RhY2suaApAQCAtNzYsMTEgKzc2LDYgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGNvbnN0IEpTQ2VsbCoqPih0aGlzICsgMSk7CiAgICAg
fQogICAgIAotICAgIHN0YXRpYyBzaXplX3QgY2FwYWNpdHlGcm9tU2l6ZShzaXplX3Qgc2l6ZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiAoc2l6ZSAtIHNpemVvZihNYXJrU3RhY2tTZWdtZW50KSkg
LyBzaXplb2YoY29uc3QgSlNDZWxsKik7Ci0gICAgfQotICAgIAogICAgIHN0YXRpYyBzaXplX3Qg
c2l6ZUZyb21DYXBhY2l0eShzaXplX3QgY2FwYWNpdHkpCiAgICAgewogICAgICAgICByZXR1cm4g
c2l6ZW9mKE1hcmtTdGFja1NlZ21lbnQpICsgY2FwYWNpdHkgKiBzaXplb2YoY29uc3QgSlNDZWxs
Kik7CkBAIC0xMTEsNiArMTA2LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlzRW1wdHkoKTsKIAog
cHJpdmF0ZToKKyAgICB0ZW1wbGF0ZSA8c2l6ZV90IHNpemU+IHN0cnVjdCBDYXBhY2l0eUZyb21T
aXplIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCB2YWx1ZSA9IChzaXplIC0gc2l6ZW9m
KE1hcmtTdGFja1NlZ21lbnQpKSAvIHNpemVvZihjb25zdCBKU0NlbGwqKTsKKyAgICB9OworCiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBleHBhbmQoKTsKICAgICAKICAgICBzaXplX3QgcG9z
dEluY1RvcCgpOwpAQCAtMTI0LDcgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgRG91Ymx5TGlua2Vk
TGlzdDxNYXJrU3RhY2tTZWdtZW50PiBtX3NlZ21lbnRzOwogICAgIEJsb2NrQWxsb2NhdG9yJiBt
X2Jsb2NrQWxsb2NhdG9yOwogCi0gICAgc2l6ZV90IG1fc2VnbWVudENhcGFjaXR5OworICAgIEpT
X0VYUE9SVF9QUklWQVRFIHN0YXRpYyBjb25zdCBzaXplX3Qgc19zZWdtZW50Q2FwYWNpdHkgPSBD
YXBhY2l0eUZyb21TaXplPE1hcmtTdGFja1NlZ21lbnQ6OmJsb2NrU2l6ZT46OnZhbHVlOwogICAg
IHNpemVfdCBtX3RvcDsKICAgICBzaXplX3QgbV9udW1iZXJPZlNlZ21lbnRzOwogICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2tJbmxpbmVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2tJbmxpbmVzLmgKaW5kZXggMTU5NWU4
NC4uYzU3N2RlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0
YWNrSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFja0lu
bGluZXMuaApAQCAtNTIsOCArNTIsOCBAQCBpbmxpbmUgc2l6ZV90IE1hcmtTdGFja0FycmF5Ojpw
cmVEZWNUb3AoKQogCiBpbmxpbmUgdm9pZCBNYXJrU3RhY2tBcnJheTo6c2V0VG9wRm9yRnVsbFNl
Z21lbnQoKQogewotICAgIEFTU0VSVChtX3NlZ21lbnRzLmhlYWQoKS0+bV90b3AgPT0gbV9zZWdt
ZW50Q2FwYWNpdHkpOwotICAgIG1fdG9wID0gbV9zZWdtZW50Q2FwYWNpdHk7CisgICAgQVNTRVJU
KG1fc2VnbWVudHMuaGVhZCgpLT5tX3RvcCA9PSBzX3NlZ21lbnRDYXBhY2l0eSk7CisgICAgbV90
b3AgPSBzX3NlZ21lbnRDYXBhY2l0eTsKIH0KIAogaW5saW5lIHZvaWQgTWFya1N0YWNrQXJyYXk6
OnNldFRvcEZvckVtcHR5U2VnbWVudCgpCkBAIC04Miw3ICs4Miw3IEBAIGlubGluZSB2b2lkIE1h
cmtTdGFja0FycmF5Ojp2YWxpZGF0ZVByZXZpb3VzKCkKIAogaW5saW5lIHZvaWQgTWFya1N0YWNr
QXJyYXk6OmFwcGVuZChjb25zdCBKU0NlbGwqIGNlbGwpCiB7Ci0gICAgaWYgKG1fdG9wID09IG1f
c2VnbWVudENhcGFjaXR5KQorICAgIGlmIChtX3RvcCA9PSBzX3NlZ21lbnRDYXBhY2l0eSkKICAg
ICAgICAgZXhwYW5kKCk7CiAgICAgbV9zZWdtZW50cy5oZWFkKCktPmRhdGEoKVtwb3N0SW5jVG9w
KCldID0gY2VsbDsKIH0KQEAgLTEwMiw3ICsxMDIsNyBAQCBpbmxpbmUgYm9vbCBNYXJrU3RhY2tB
cnJheTo6aXNFbXB0eSgpCiAgICAgaWYgKG1fdG9wKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgaWYgKG1fc2VnbWVudHMuaGVhZCgpLT5uZXh0KCkpIHsKLSAgICAgICAgQVNTRVJUKG1fc2Vn
bWVudHMuaGVhZCgpLT5uZXh0KCktPm1fdG9wID09IG1fc2VnbWVudENhcGFjaXR5KTsKKyAgICAg
ICAgQVNTRVJUKG1fc2VnbWVudHMuaGVhZCgpLT5uZXh0KCktPm1fdG9wID09IHNfc2VnbWVudENh
cGFjaXR5KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTExMCw3ICsxMTAsNyBAQCBpbmxpbmUgYm9vbCBNYXJrU3RhY2tBcnJheTo6aXNFbXB0eSgp
CiAKIGlubGluZSBzaXplX3QgTWFya1N0YWNrQXJyYXk6OnNpemUoKQogewotICAgIHJldHVybiBt
X3RvcCArIG1fc2VnbWVudENhcGFjaXR5ICogKG1fbnVtYmVyT2ZTZWdtZW50cyAtIDEpOworICAg
IHJldHVybiBtX3RvcCArIHNfc2VnbWVudENhcGFjaXR5ICogKG1fbnVtYmVyT2ZTZWdtZW50cyAt
IDEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuaAppbmRleCBlNGIwMDAxLi5jMzU4ZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCkBAIC0xMjIsNyArMTIyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgdihkb3VibGUsIHN0cnVjdHVyZUNoZWNrVm90ZVJhdGlvRm9ySG9pc3RpbmcsIDEpIFwKICAg
ICBcCiAgICAgdih1bnNpZ25lZCwgbWluaW11bU51bWJlck9mU2NhbnNCZXR3ZWVuUmViYWxhbmNl
LCAxMDApIFwKLSAgICB2KHVuc2lnbmVkLCBnY01hcmtTdGFja1NlZ21lbnRTaXplLCBwYWdlU2l6
ZSgpKSBcCiAgICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZHQ01hcmtlcnMsIGNvbXB1dGVOdW1iZXJP
ZkdDTWFya2Vycyg3KSkgXAogICAgIHYodW5zaWduZWQsIG9wYXF1ZVJvb3RNZXJnZVRocmVzaG9s
ZCwgMTAwMCkgXAogICAgIHYoZG91YmxlLCBtaW5IZWFwVXRpbGl6YXRpb24sIDAuOCkgXAo=
</data>
<flag name="review"
          id="201912"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183522</attachid>
            <date>2013-01-18 11:57:52 -0800</date>
            <delta_ts>2013-01-18 12:51:24 -0800</delta_ts>
            <desc>Make capacity field static.</desc>
            <filename>heap.diff</filename>
            <type>text/plain</type>
            <size>8080</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA1YjI4NTYuLjJlYTBhZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAxLTE4ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgcjEzNDA4MCBjYXVzZXMgaGVh
cCBwcm9ibGVtIG9uIGxpbnV4IHN5c3RlbXMgd2hlcmUgUEFHRVNJWkUgIT0gNDA5NgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyODI4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFyayBIYWhuZW5iZXJnLgorCisgICAgICAgIE1ha2UgTWFya1N0YWNr
U2VnbWVudDo6YmxvY2tTaXplIGFzIHRoZSBjYXBhY2l0eSBvZiBzZWdtZW50cyBvZiBhIE1hcmtT
dGFja0FycmF5LgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlRXhwb3J0cy5kZWY6CisgICAgICAgICogaGVhcC9NYXJrU3RhY2su
Y3BwOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6Ok1hcmtT
dGFja0FycmF5KToKKyAgICAgICAgKEpTQzo6TWFya1N0YWNrQXJyYXk6OmV4cGFuZCk6CisgICAg
ICAgIChKU0M6Ok1hcmtTdGFja0FycmF5Ojpkb25hdGVTb21lQ2VsbHNUbyk6CisgICAgICAgIChK
U0M6Ok1hcmtTdGFja0FycmF5OjpzdGVhbFNvbWVDZWxsc0Zyb20pOgorICAgICAgICAqIGhlYXAv
TWFya1N0YWNrLmg6CisgICAgICAgIChKU0M6Ok1hcmtTdGFja1NlZ21lbnQ6OmRhdGEpOgorICAg
ICAgICAoQ2FwYWNpdHlGcm9tU2l6ZSk6CisgICAgICAgIChNYXJrU3RhY2tBcnJheSk6CisgICAg
ICAgICogaGVhcC9NYXJrU3RhY2tJbmxpbmVzLmg6CisgICAgICAgIChKU0M6Ok1hcmtTdGFja0Fy
cmF5OjpzZXRUb3BGb3JGdWxsU2VnbWVudCk6CisgICAgICAgIChKU0M6Ok1hcmtTdGFja0FycmF5
OjphcHBlbmQpOgorICAgICAgICAoSlNDOjpNYXJrU3RhY2tBcnJheTo6aXNFbXB0eSk6CisgICAg
ICAgIChKU0M6Ok1hcmtTdGFja0FycmF5OjpzaXplKToKKyAgICAgICAgKiBydW50aW1lL09wdGlv
bnMuaDoKKyAgICAgICAgKEpTQyk6CisKIDIwMTMtMDEtMTggIE1pY2hhZWwgU2Fib2ZmICA8bXNh
Ym9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3IgaXNQb3dlck9mMigpIGFuZCBhZGQg
Z2V0TFNCU2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVFeHBvcnRzLmRlZiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmVFeHBvcnRzLmRlZgppbmRleCA1NDBmNjM3Li41NmMyNDc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlRXhwb3J0cy5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZUV4
cG9ydHMuZGVmCkBAIC0zNDYsNiArMzQ2LDcgQEAgRVhQT1JUUwogICAgID9yZXN0b3JlQWxsQFBy
b2ZpbGVASlNDQEBRQUVYWFoKICAgICA/cmV0cmlldmVDYWxsZXJGcm9tVk1Db2RlQEludGVycHJl
dGVyQEpTQ0BAUUJFP0FWSlNWYWx1ZUAyQFBBVkV4ZWNTdGF0ZUAyQFBBVkpTRnVuY3Rpb25AMkBA
WgogICAgID9yZXRyaWV2ZUxhc3RDYWxsZXJASW50ZXJwcmV0ZXJASlNDQEBRQkVYUEFWRXhlY1N0
YXRlQDJAQUFIMUFBVlN0cmluZ0BXVEZAQEFBVkpTVmFsdWVAMkBAWgorICAgID9zX3NlZ21lbnRD
YXBhY2l0eUBNYXJrU3RhY2tBcnJheUBKU0NAQDBJQgogICAgID9zYXZlQERhdGFiYXNlQFByb2Zp
bGVyQEpTQ0BAUUJFX05QQkRAWgogICAgID9zZXRDb25maWd1cmFibGVAUHJvcGVydHlEZXNjcmlw
dG9yQEpTQ0BAUUFFWF9OQFoKICAgICA/c2V0Q3VzdG9tQWxsb2NhdGlvbkBNZW1vcnlDbGFzc0lu
Zm9AV1RGQEBRQUVYX05AWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TWFya1N0YWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAK
aW5kZXggNzU1YTBhZC4uMzk5MDdjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvTWFya1N0YWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJr
U3RhY2suY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQ29waWVkU3BhY2UuaCIKICNp
bmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJIZWFwLmgiCi0jaW5jbHVk
ZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIK
ICNpbmNsdWRlICJKU09iamVjdC5oIgpAQCAtNDUsMTMgKzQ0LDEzIEBACiAKIG5hbWVzcGFjZSBK
U0MgewogCitDT01QSUxFX0FTU0VSVChNYXJrU3RhY2tTZWdtZW50OjpibG9ja1NpemUgPT0gV2Vh
a0Jsb2NrOjpibG9ja1NpemUsIGJsb2NrU2l6ZU1hdGNoKTsKKwogTWFya1N0YWNrQXJyYXk6Ok1h
cmtTdGFja0FycmF5KEJsb2NrQWxsb2NhdG9yJiBibG9ja0FsbG9jYXRvcikKICAgICA6IG1fYmxv
Y2tBbGxvY2F0b3IoYmxvY2tBbGxvY2F0b3IpCi0gICAgLCBtX3NlZ21lbnRDYXBhY2l0eShNYXJr
U3RhY2tTZWdtZW50OjpjYXBhY2l0eUZyb21TaXplKE9wdGlvbnM6OmdjTWFya1N0YWNrU2VnbWVu
dFNpemUoKSkpCiAgICAgLCBtX3RvcCgwKQogICAgICwgbV9udW1iZXJPZlNlZ21lbnRzKDApCiB7
Ci0gICAgQVNTRVJUKE1hcmtTdGFja1NlZ21lbnQ6OmJsb2NrU2l6ZSA9PSBXZWFrQmxvY2s6OmJs
b2NrU2l6ZSk7CiAgICAgbV9zZWdtZW50cy5wdXNoKE1hcmtTdGFja1NlZ21lbnQ6OmNyZWF0ZSht
X2Jsb2NrQWxsb2NhdG9yLmFsbG9jYXRlPE1hcmtTdGFja1NlZ21lbnQ+KCkpKTsKICAgICBtX251
bWJlck9mU2VnbWVudHMrKzsKIH0KQEAgLTY0LDcgKzYzLDcgQEAgTWFya1N0YWNrQXJyYXk6On5N
YXJrU3RhY2tBcnJheSgpCiAKIHZvaWQgTWFya1N0YWNrQXJyYXk6OmV4cGFuZCgpCiB7Ci0gICAg
QVNTRVJUKG1fc2VnbWVudHMuaGVhZCgpLT5tX3RvcCA9PSBtX3NlZ21lbnRDYXBhY2l0eSk7Cisg
ICAgQVNTRVJUKG1fc2VnbWVudHMuaGVhZCgpLT5tX3RvcCA9PSBzX3NlZ21lbnRDYXBhY2l0eSk7
CiAgICAgCiAgICAgTWFya1N0YWNrU2VnbWVudCogbmV4dFNlZ21lbnQgPSBNYXJrU3RhY2tTZWdt
ZW50OjpjcmVhdGUobV9ibG9ja0FsbG9jYXRvci5hbGxvY2F0ZTxNYXJrU3RhY2tTZWdtZW50Pigp
KTsKICAgICBtX251bWJlck9mU2VnbWVudHMrKzsKQEAgLTk3LDggKzk2LDYgQEAgdm9pZCBNYXJr
U3RhY2tBcnJheTo6ZG9uYXRlU29tZUNlbGxzVG8oTWFya1N0YWNrQXJyYXkmIG90aGVyKQogICAg
IC8vIHdlIHByZWZlciBkb25hdGluZyB3aG9sZSBzZWdtZW50cyBvdmVyIGRvbmF0aW5nIGluZGl2
aWR1YWwgY2VsbHMsCiAgICAgLy8gZXZlbiBpZiB0aGlzIHNrZXdzIGF3YXkgZnJvbSBvdXIgMSAv
IDIgdGFyZ2V0LgogCi0gICAgQVNTRVJUKG1fc2VnbWVudENhcGFjaXR5ID09IG90aGVyLm1fc2Vn
bWVudENhcGFjaXR5KTsKLQogICAgIHNpemVfdCBzZWdtZW50c1RvRG9uYXRlID0gbV9udW1iZXJP
ZlNlZ21lbnRzIC8gMjsgLy8gSWYgd2Ugb25seSBoYXZlIG9uZSBzZWdtZW50IChvdXIgaGVhZCkg
d2UgZG9uJ3QgZG9uYXRlIGFueSBzZWdtZW50cy4KIAogICAgIGlmICghc2VnbWVudHNUb0RvbmF0
ZSkgewpAQCAtMTQxLDcgKzEzOCw2IEBAIHZvaWQgTWFya1N0YWNrQXJyYXk6OnN0ZWFsU29tZUNl
bGxzRnJvbShNYXJrU3RhY2tBcnJheSYgb3RoZXIsIHNpemVfdCBpZGxlVGhyZWFkCiAgICAgLy8g
VG8gcmVkdWNlIGNvcHlpbmcgY29zdHMsIHdlIHByZWZlciBzdGVhbGluZyBhIHdob2xlIHNlZ21l
bnQgb3ZlciBzdGVhbGluZwogICAgIC8vIGluZGl2aWR1YWwgY2VsbHMsIGV2ZW4gaWYgdGhpcyBz
a2V3cyBhd2F5IGZyb20gb3VyIDEgLyBOIHRhcmdldC4KIAotICAgIEFTU0VSVChtX3NlZ21lbnRD
YXBhY2l0eSA9PSBvdGhlci5tX3NlZ21lbnRDYXBhY2l0eSk7CiAgICAgdmFsaWRhdGVQcmV2aW91
cygpOwogICAgIG90aGVyLnZhbGlkYXRlUHJldmlvdXMoKTsKICAgICAgICAgCkBAIC0xNTEsNyAr
MTQ3LDcgQEAgdm9pZCBNYXJrU3RhY2tBcnJheTo6c3RlYWxTb21lQ2VsbHNGcm9tKE1hcmtTdGFj
a0FycmF5JiBvdGhlciwgc2l6ZV90IGlkbGVUaHJlYWQKICAgICAgICAgTWFya1N0YWNrU2VnbWVu
dCogb3RoZXJIZWFkID0gb3RoZXIubV9zZWdtZW50cy5yZW1vdmVIZWFkKCk7CiAgICAgICAgIE1h
cmtTdGFja1NlZ21lbnQqIG15SGVhZCA9IG1fc2VnbWVudHMucmVtb3ZlSGVhZCgpOwogCi0gICAg
ICAgIEFTU0VSVChvdGhlci5tX3NlZ21lbnRzLmhlYWQoKS0+bV90b3AgPT0gbV9zZWdtZW50Q2Fw
YWNpdHkpOworICAgICAgICBBU1NFUlQob3RoZXIubV9zZWdtZW50cy5oZWFkKCktPm1fdG9wID09
IHNfc2VnbWVudENhcGFjaXR5KTsKIAogICAgICAgICBtX3NlZ21lbnRzLnB1c2gob3RoZXIubV9z
ZWdtZW50cy5yZW1vdmVIZWFkKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9NYXJrU3RhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFj
ay5oCmluZGV4IDJhN2YwNDQuLmM5N2I2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtTdGFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtTdGFjay5oCkBAIC03NSwxNiArNzUsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1
cm4gYml0d2lzZV9jYXN0PGNvbnN0IEpTQ2VsbCoqPih0aGlzICsgMSk7CiAgICAgfQotICAgIAot
ICAgIHN0YXRpYyBzaXplX3QgY2FwYWNpdHlGcm9tU2l6ZShzaXplX3Qgc2l6ZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiAoc2l6ZSAtIHNpemVvZihNYXJrU3RhY2tTZWdtZW50KSkgLyBzaXplb2Yo
Y29uc3QgSlNDZWxsKik7Ci0gICAgfQotICAgIAotICAgIHN0YXRpYyBzaXplX3Qgc2l6ZUZyb21D
YXBhY2l0eShzaXplX3QgY2FwYWNpdHkpCi0gICAgewotICAgICAgICByZXR1cm4gc2l6ZW9mKE1h
cmtTdGFja1NlZ21lbnQpICsgY2FwYWNpdHkgKiBzaXplb2YoY29uc3QgSlNDZWxsKik7Ci0gICAg
fQogCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBibG9ja1NpemUgPSA0ICogS0I7CiAKQEAgLTEx
MSw2ICsxMDEsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNFbXB0eSgpOwogCiBwcml2YXRlOgor
ICAgIHRlbXBsYXRlIDxzaXplX3Qgc2l6ZT4gc3RydWN0IENhcGFjaXR5RnJvbVNpemUgeworICAg
ICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHZhbHVlID0gKHNpemUgLSBzaXplb2YoTWFya1N0YWNr
U2VnbWVudCkpIC8gc2l6ZW9mKGNvbnN0IEpTQ2VsbCopOworICAgIH07CisKICAgICBKU19FWFBP
UlRfUFJJVkFURSB2b2lkIGV4cGFuZCgpOwogICAgIAogICAgIHNpemVfdCBwb3N0SW5jVG9wKCk7
CkBAIC0xMjQsNyArMTE4LDcgQEAgcHJpdmF0ZToKICAgICBEb3VibHlMaW5rZWRMaXN0PE1hcmtT
dGFja1NlZ21lbnQ+IG1fc2VnbWVudHM7CiAgICAgQmxvY2tBbGxvY2F0b3ImIG1fYmxvY2tBbGxv
Y2F0b3I7CiAKLSAgICBzaXplX3QgbV9zZWdtZW50Q2FwYWNpdHk7CisgICAgSlNfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIGNvbnN0IHNpemVfdCBzX3NlZ21lbnRDYXBhY2l0eSA9IENhcGFjaXR5RnJv
bVNpemU8TWFya1N0YWNrU2VnbWVudDo6YmxvY2tTaXplPjo6dmFsdWU7CiAgICAgc2l6ZV90IG1f
dG9wOwogICAgIHNpemVfdCBtX251bWJlck9mU2VnbWVudHM7CiAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFja0lubGluZXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtTdGFja0lubGluZXMuaAppbmRleCAxNTk1ZTg0Li5jNTc3ZGU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2tJbmxpbmVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrSW5saW5lcy5oCkBA
IC01Miw4ICs1Miw4IEBAIGlubGluZSBzaXplX3QgTWFya1N0YWNrQXJyYXk6OnByZURlY1RvcCgp
CiAKIGlubGluZSB2b2lkIE1hcmtTdGFja0FycmF5OjpzZXRUb3BGb3JGdWxsU2VnbWVudCgpCiB7
Ci0gICAgQVNTRVJUKG1fc2VnbWVudHMuaGVhZCgpLT5tX3RvcCA9PSBtX3NlZ21lbnRDYXBhY2l0
eSk7Ci0gICAgbV90b3AgPSBtX3NlZ21lbnRDYXBhY2l0eTsKKyAgICBBU1NFUlQobV9zZWdtZW50
cy5oZWFkKCktPm1fdG9wID09IHNfc2VnbWVudENhcGFjaXR5KTsKKyAgICBtX3RvcCA9IHNfc2Vn
bWVudENhcGFjaXR5OwogfQogCiBpbmxpbmUgdm9pZCBNYXJrU3RhY2tBcnJheTo6c2V0VG9wRm9y
RW1wdHlTZWdtZW50KCkKQEAgLTgyLDcgKzgyLDcgQEAgaW5saW5lIHZvaWQgTWFya1N0YWNrQXJy
YXk6OnZhbGlkYXRlUHJldmlvdXMoKQogCiBpbmxpbmUgdm9pZCBNYXJrU3RhY2tBcnJheTo6YXBw
ZW5kKGNvbnN0IEpTQ2VsbCogY2VsbCkKIHsKLSAgICBpZiAobV90b3AgPT0gbV9zZWdtZW50Q2Fw
YWNpdHkpCisgICAgaWYgKG1fdG9wID09IHNfc2VnbWVudENhcGFjaXR5KQogICAgICAgICBleHBh
bmQoKTsKICAgICBtX3NlZ21lbnRzLmhlYWQoKS0+ZGF0YSgpW3Bvc3RJbmNUb3AoKV0gPSBjZWxs
OwogfQpAQCAtMTAyLDcgKzEwMiw3IEBAIGlubGluZSBib29sIE1hcmtTdGFja0FycmF5Ojppc0Vt
cHR5KCkKICAgICBpZiAobV90b3ApCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAobV9z
ZWdtZW50cy5oZWFkKCktPm5leHQoKSkgewotICAgICAgICBBU1NFUlQobV9zZWdtZW50cy5oZWFk
KCktPm5leHQoKS0+bV90b3AgPT0gbV9zZWdtZW50Q2FwYWNpdHkpOworICAgICAgICBBU1NFUlQo
bV9zZWdtZW50cy5oZWFkKCktPm5leHQoKS0+bV90b3AgPT0gc19zZWdtZW50Q2FwYWNpdHkpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMTEwLDcg
KzExMCw3IEBAIGlubGluZSBib29sIE1hcmtTdGFja0FycmF5Ojppc0VtcHR5KCkKIAogaW5saW5l
IHNpemVfdCBNYXJrU3RhY2tBcnJheTo6c2l6ZSgpCiB7Ci0gICAgcmV0dXJuIG1fdG9wICsgbV9z
ZWdtZW50Q2FwYWNpdHkgKiAobV9udW1iZXJPZlNlZ21lbnRzIC0gMSk7CisgICAgcmV0dXJuIG1f
dG9wICsgc19zZWdtZW50Q2FwYWNpdHkgKiAobV9udW1iZXJPZlNlZ21lbnRzIC0gMSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CmluZGV4IGU0YjAwMDEuLmMzNThmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zLmgKQEAgLTEyMiw3ICsxMjIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB2KGRvdWJs
ZSwgc3RydWN0dXJlQ2hlY2tWb3RlUmF0aW9Gb3JIb2lzdGluZywgMSkgXAogICAgIFwKICAgICB2
KHVuc2lnbmVkLCBtaW5pbXVtTnVtYmVyT2ZTY2Fuc0JldHdlZW5SZWJhbGFuY2UsIDEwMCkgXAot
ICAgIHYodW5zaWduZWQsIGdjTWFya1N0YWNrU2VnbWVudFNpemUsIHBhZ2VTaXplKCkpIFwKICAg
ICB2KHVuc2lnbmVkLCBudW1iZXJPZkdDTWFya2VycywgY29tcHV0ZU51bWJlck9mR0NNYXJrZXJz
KDcpKSBcCiAgICAgdih1bnNpZ25lZCwgb3BhcXVlUm9vdE1lcmdlVGhyZXNob2xkLCAxMDAwKSBc
CiAgICAgdihkb3VibGUsIG1pbkhlYXBVdGlsaXphdGlvbiwgMC44KSBcCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>