<?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>157117</bug_id>
          
          <creation_ts>2016-04-27 20:01:45 -0700</creation_ts>
          <short_desc>Factor out the &quot;paint item&quot; logic in RenderListBox into a helper</short_desc>
          <delta_ts>2016-04-29 06:16:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>156590</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antonio Gomes">tonikitoo</reporter>
          <assigned_to name="Antonio Gomes">tonikitoo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1188106</commentid>
    <comment_count>0</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2016-04-27 20:01:45 -0700</bug_when>
    <thetext>The following code appears almost identical twice in ::paintObject.

As per the review comments in bug 156590 (https://bugs.webkit.org/show_bug.cgi?id=156590#c16 and https://bugs.webkit.org/show_bug.cgi?id=156590#c14),
it might be nice to factor out this block to avoid duplication.

void RenderListBox::paintObject(PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset)
{
    if (style().visibility() != VISIBLE)
        return;

    (...)
    if (paintInfo.phase == PaintPhaseForeground) {{
        int index = m_indexOffset;
        while (index &lt; listItemsSize &amp;&amp; index &lt;= m_indexOffset + numVisibleItems()) {
            paintItemForeground(paintInfo, paintOffset, index);
            index++;
        }
    }

    (...)
    case PaintPhaseChildBlockBackground:
    case PaintPhaseChildBlockBackgrounds: {
        int index = m_indexOffset;
        while (index &lt; listItemsSize &amp;&amp; index &lt;= m_indexOffset + numVisibleItems()) {
            paintItemBackground(paintInfo, paintOffset, index);
            index++;
        }
    }
    (...)
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188132</commentid>
    <comment_count>1</comment_count>
      <attachid>277591</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2016-04-27 22:32:44 -0700</bug_when>
    <thetext>Created attachment 277591
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188135</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-27 22:35:23 -0700</bug_when>
    <thetext>Attachment 277591 did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderListBox.cpp:276:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188137</commentid>
    <comment_count>3</comment_count>
      <attachid>277593</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2016-04-27 22:41:10 -0700</bug_when>
    <thetext>Created attachment 277593
Patch v1.1 - fixed style issue.

(In reply to comment #2)
&gt; Attachment 277591 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR: Source/WebCore/rendering/RenderListBox.cpp:276:  Weird number of
&gt; spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent]
&gt; [3]
&gt; Total errors found: 1 in 3 files

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188157</commentid>
    <comment_count>4</comment_count>
      <attachid>277593</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-04-28 00:22:02 -0700</bug_when>
    <thetext>Comment on attachment 277593
Patch v1.1 - fixed style issue.

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Factor out the &quot;paint item&quot; logic in RenderListBox into a helper.

I removed the period from the Bugzilla title. Please update this line.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Patch factors out the duplicated painting logic in RenderListBox::paintObject

Very minor: RenderListBox::paintObject =&gt; RenderListBox::paintObject()

(Notice the addition of parentheses at the end of proposed substitution to make it clear we are talking about a function - though this can likely be inferred from context).

&gt; Source/WebCore/ChangeLog:9
&gt; +        into a helper method named ::paintItem.

Very minor: &quot;method named ::paintItem&quot; =&gt; &quot;member function named paintItem&quot;

&gt; Source/WebCore/ChangeLog:11
&gt; +        This is a preparation for bug 156590.

Nit: a =&gt; in

&gt; Source/WebCore/rendering/RenderListBox.cpp:279
&gt; +    ASSERT(paintInfo.phase == PaintPhaseForeground
&gt; +        || paintInfo.phase == PaintPhaseChildBlockBackground
&gt; +        || paintInfo.phase == PaintPhaseChildBlockBackgrounds);

Is this ASSERT() necessary? I mean, I do not see the need to make this function specific to these paint phases. I also do not see the value in having this ASSERT() because it seems like it would be contrived for a person to call this for something other than these phases.

&gt; Source/WebCore/rendering/RenderListBox.cpp:286
&gt; +    int listItemsSize = numItems();
&gt; +    int index = m_indexOffset;
&gt; +    while (index &lt; listItemsSize &amp;&amp; index &lt;= m_indexOffset + numVisibleItems()) {
&gt; +        painterFunction(paintInfo, paintOffset, index);
&gt; +        index++;
&gt; +    }

We could take this opportunity to cache m_indexOffset + numVisibleItems() in a local variable and avoid computing it on each iteration. Maybe something like:

int listItemsSize = numItems();
int endIndex = m_indexOffset + numVisibleItems();
for (int i = m_indexOffset; i &lt; listItemsSize &amp;&amp; i &lt;= endIndex; ++i)
    paintFunction(paintInfo, paintOffset, i);

&gt; Source/WebCore/rendering/RenderListBox.cpp:296
&gt; +        using namespace std::placeholders;
&gt; +        paintItem(paintInfo, paintOffset, std::bind(&amp;RenderListBox::paintItemForeground, this, _1, _2, _3));

From my understanding we prefer to use C++11 lambda functions instead of std::bind(). I would write this as:

paintItem(paintInfo, paintOffset, [this](PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset, int listItemIndex) {
    paintItemForeground(paintInfo, paintOffset, listItemIndex);
});

&gt; Source/WebCore/rendering/RenderListBox.cpp:316
&gt; +        using namespace std::placeholders;
&gt; +        paintItem(paintInfo, paintOffset, std::bind(&amp;RenderListBox::paintItemBackground, this, _1, _2, _3));

Similarly, I would write this as:

paintItem(paintInfo, paintOffset, [this](PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset, int listItemIndex) {
    paintItemBackground(paintInfo, paintOffset, listItemIndex);
});

&gt; Source/WebCore/rendering/RenderListBox.h:145
&gt; +    typedef std::function&lt;void(PaintInfo&amp; , const LayoutPoint&amp; , int listIndex)&gt; PainterFunction;

Although unwritten, we prefer to use C++11 type aliases instead of typedef:

using PaintFunction = std::function&lt;void(PaintInfo&amp;, const LayoutPoint&amp;, int listItemIndex)&gt;;

Notice that I renamed the function from PainterFunction to PaintFunction so as to be consistent with PaintInfo and only placed a space character after each comma.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188225</commentid>
    <comment_count>5</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2016-04-28 06:32:19 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 277593 [details]
&gt; Patch v1.1 - fixed style issue.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=277593&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Factor out the &quot;paint item&quot; logic in RenderListBox into a helper.
&gt; 
&gt; I removed the period from the Bugzilla title. Please update this line.

Done.

&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Patch factors out the duplicated painting logic in RenderListBox::paintObject
&gt; 
&gt; Very minor: RenderListBox::paintObject =&gt; RenderListBox::paintObject()

Done.
 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        into a helper method named ::paintItem.
&gt; 
&gt; Very minor: &quot;method named ::paintItem&quot; =&gt; &quot;member function named paintItem&quot;
&gt; 

Done.

&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        This is a preparation for bug 156590.
&gt; 
&gt; Nit: a =&gt; in

Done.
 
&gt; &gt; Source/WebCore/rendering/RenderListBox.cpp:279
&gt; &gt; +    ASSERT(paintInfo.phase == PaintPhaseForeground
&gt; &gt; +        || paintInfo.phase == PaintPhaseChildBlockBackground
&gt; &gt; +        || paintInfo.phase == PaintPhaseChildBlockBackgrounds);
&gt; 
&gt; Is this ASSERT() necessary? I mean, I do not see the need to make this
&gt; function specific to these paint phases. I also do not see the value in
&gt; having this ASSERT() because it seems like it would be contrived for a
&gt; person to call this for something other than these phases.

It was mostly to self-document it, making it explicit to readers that it will be called with one of this painting phases. Not only catch errors made in the code.

In any case, I have removed the ASSERT.

&gt; &gt; Source/WebCore/rendering/RenderListBox.cpp:286
&gt; &gt; +    int listItemsSize = numItems();
&gt; &gt; +    int index = m_indexOffset;
&gt; &gt; +    while (index &lt; listItemsSize &amp;&amp; index &lt;= m_indexOffset + numVisibleItems()) {
&gt; &gt; +        painterFunction(paintInfo, paintOffset, index);
&gt; &gt; +        index++;
&gt; &gt; +    }
&gt; 
&gt; We could take this opportunity to cache m_indexOffset + numVisibleItems() in
&gt; a local variable and avoid computing it on each iteration. Maybe something
&gt; like:
&gt; 
&gt; int listItemsSize = numItems();
&gt; int endIndex = m_indexOffset + numVisibleItems();
&gt; for (int i = m_indexOffset; i &lt; listItemsSize &amp;&amp; i &lt;= endIndex; ++i)
&gt;     paintFunction(paintInfo, paintOffset, i);

Good! Done.

&gt; &gt; Source/WebCore/rendering/RenderListBox.cpp:296
&gt; &gt; +        using namespace std::placeholders;
&gt; &gt; +        paintItem(paintInfo, paintOffset, std::bind(&amp;RenderListBox::paintItemForeground, this, _1, _2, _3));
&gt; 
&gt; From my understanding we prefer to use C++11 lambda functions instead of
&gt; std::bind(). I would write this as:
&gt; 
&gt; paintItem(paintInfo, paintOffset, [this](PaintInfo&amp; paintInfo, const
&gt; LayoutPoint&amp; paintOffset, int listItemIndex) {
&gt;     paintItemForeground(paintInfo, paintOffset, listItemIndex);
&gt; });

Yes, sir. Done.

&gt; &gt; Source/WebCore/rendering/RenderListBox.cpp:316
&gt; &gt; +        using namespace std::placeholders;
&gt; &gt; +        paintItem(paintInfo, paintOffset, std::bind(&amp;RenderListBox::paintItemBackground, this, _1, _2, _3));
&gt; 
&gt; Similarly, I would write this as:
&gt; 
&gt; paintItem(paintInfo, paintOffset, [this](PaintInfo&amp; paintInfo, const
&gt; LayoutPoint&amp; paintOffset, int listItemIndex) {
&gt;     paintItemBackground(paintInfo, paintOffset, listItemIndex);
&gt; });

Done.

&gt; &gt; Source/WebCore/rendering/RenderListBox.h:145
&gt; &gt; +    typedef std::function&lt;void(PaintInfo&amp; , const LayoutPoint&amp; , int listIndex)&gt; PainterFunction;
&gt; 
&gt; Although unwritten, we prefer to use C++11 type aliases instead of typedef:
&gt; 
&gt; using PaintFunction = std::function&lt;void(PaintInfo&amp;, const LayoutPoint&amp;, int
&gt; listItemIndex)&gt;;
&gt; 
&gt; Notice that I renamed the function from PainterFunction to PaintFunction so
&gt; as to be consistent with PaintInfo and only placed a space character after
&gt; each comma.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188226</commentid>
    <comment_count>6</comment_count>
      <attachid>277616</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2016-04-28 06:32:58 -0700</bug_when>
    <thetext>Created attachment 277616
Patch v1.2 - for landing (addressed Dan&apos;s review).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188238</commentid>
    <comment_count>7</comment_count>
      <attachid>277616</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-28 07:34:56 -0700</bug_when>
    <thetext>Comment on attachment 277616
Patch v1.2 - for landing (addressed Dan&apos;s review).

Clearing flags on attachment: 277616

Committed r200190: &lt;http://trac.webkit.org/changeset/200190&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188239</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-28 07:35:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188513</commentid>
    <comment_count>9</comment_count>
      <attachid>277616</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-28 22:55:40 -0700</bug_when>
    <thetext>Comment on attachment 277616
Patch v1.2 - for landing (addressed Dan&apos;s review).

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

&gt; Source/WebCore/rendering/RenderListBox.h:146
&gt; +    void paintItem(PaintInfo&amp; , const LayoutPoint&amp; , PaintFunction);

Stray spaces before the commas here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188515</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-04-28 23:04:10 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; Source/WebCore/rendering/RenderListBox.h:146
&gt; &gt; +    void paintItem(PaintInfo&amp; , const LayoutPoint&amp; , PaintFunction);
&gt; 
&gt; Stray spaces before the commas here.

Removed stray spaces in &lt;http://trac.webkit.org/changeset/200230&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188607</commentid>
    <comment_count>11</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2016-04-29 06:16:58 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; &gt; Source/WebCore/rendering/RenderListBox.h:146
&gt; &gt; &gt; +    void paintItem(PaintInfo&amp; , const LayoutPoint&amp; , PaintFunction);
&gt; &gt; 
&gt; &gt; Stray spaces before the commas here.
&gt; 
&gt; Removed stray spaces in &lt;http://trac.webkit.org/changeset/200230&gt;.

I think Dan pointed them out, and I missed it. Thanks Dan/Darin.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277591</attachid>
            <date>2016-04-27 22:32:44 -0700</date>
            <delta_ts>2016-04-27 22:41:10 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>0001-Factor-out-the-paint-item-logic-in-RenderListBox-int.patch</filename>
            <type>text/plain</type>
            <size>4893</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA1NGY0ZjJkZGJlZmZjNjczNGMyZGIyOTUwYmI3ZjAxZDU4ZjgyM2MzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAyNyBBcHIgMjAxNiAyMjo1NDoxOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEZh
Y3RvciBvdXQgdGhlICJwYWludCBpdGVtIiBsb2dpYyBpbiBSZW5kZXJMaXN0Qm94IGludG8gYQog
aGVscGVyLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTE3CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClBhdGNoIGZhY3RvcnMgb3V0IHRoZSBkdXBsaWNh
dGVkIHBhaW50aW5nIGxvZ2ljIGluIFJlbmRlckxpc3RCb3g6OnBhaW50T2JqZWN0CmludG8gYSBo
ZWxwZXIgbWV0aG9kIG5hbWVkIDo6cGFpbnRJdGVtLgoKVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZv
ciBidWcgMTU2NTkwLgpObyBuZXcgdGVzdHMsIHNpbmNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNo
YW5nZS4KCiogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlz
dEJveDo6cGFpbnRJdGVtKToKKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnBhaW50T2JqZWN0KToK
KiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCB8IDMzICsrKysrKysrKysrKysrKysrKy0tLS0t
LS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCAgIHwgIDMg
KysrCiAzIGZpbGVzIGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZGIyNzg4Li4yOWNlYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTYtMDQtMjcgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBGYWN0b3Igb3V0IHRoZSAicGFpbnQgaXRlbSIgbG9naWMgaW4gUmVuZGVyTGlzdEJv
eCBpbnRvIGEgaGVscGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU3MTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUGF0Y2ggZmFjdG9ycyBvdXQgdGhlIGR1cGxpY2F0ZWQgcGFpbnRpbmcgbG9naWMg
aW4gUmVuZGVyTGlzdEJveDo6cGFpbnRPYmplY3QKKyAgICAgICAgaW50byBhIGhlbHBlciBtZXRo
b2QgbmFtZWQgOjpwYWludEl0ZW0uCisKKyAgICAgICAgVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZv
ciBidWcgMTU2NTkwLgorICAgICAgICBObyBuZXcgdGVzdHMsIHNpbmNlIHRoZXJlIGlzIG5vIGJl
aGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnBhaW50SXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludE9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaDoKKwogMjAxNi0wNC0yNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IGxlZ2FjeSBIVFRQIGhlYWRlcnMgaW4gV2Vi
U29ja2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4
IDViYjJmZTYuLjRmNTUxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAKQEAgLTI3MSwyMCArMjcxLDMwIEBAIExheW91dFJlY3QgUmVuZGVyTGlzdEJveDo6
aXRlbUJvdW5kaW5nQm94UmVjdChjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNlCiAg
ICAgTGF5b3V0VW5pdCB5ID0gYWRkaXRpb25hbE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSArIHBh
ZGRpbmdUb3AoKSArIGl0ZW1IZWlnaHQoKSAqIChpbmRleCAtIG1faW5kZXhPZmZzZXQpOwogICAg
IHJldHVybiBMYXlvdXRSZWN0KHgsIHksIGNvbnRlbnRXaWR0aCgpLCBpdGVtSGVpZ2h0KCkpOwog
fQotICAgIAorCit2b2lkIFJlbmRlckxpc3RCb3g6OnBhaW50SXRlbShQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUGFpbnRlckZ1bmN0aW9uIHBhaW50ZXJGbikKK3sKKyAgICBBU1NFUlQocGFp
bnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kCisgICAgICAgIHx8IHBhaW50SW5m
by5waGFzZSA9PSBQYWludFBoYXNlQ2hpbGRCbG9ja0JhY2tncm91bmQKKyAgICAgICAgfHwgcGFp
bnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHMpOworCisgICAg
aW50IGxpc3RJdGVtc1NpemUgPSBudW1JdGVtcygpOworICAgIGludCBpbmRleCA9IG1faW5kZXhP
ZmZzZXQ7CisgICAgd2hpbGUgKGluZGV4IDwgbGlzdEl0ZW1zU2l6ZSAmJiBpbmRleCA8PSBtX2lu
ZGV4T2Zmc2V0ICsgbnVtVmlzaWJsZUl0ZW1zKCkpIHsKKyAgICAgICAgcGFpbnRlckZuKHBhaW50
SW5mbywgcGFpbnRPZmZzZXQsIGluZGV4KTsKKyAgICAgICAgaW5kZXgrKzsKKyAgICB9Cit9CisK
IHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKICAgICBpZiAoc3R5bGUoKS52aXNpYmls
aXR5KCkgIT0gVklTSUJMRSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGludCBsaXN0SXRl
bXNTaXplID0gbnVtSXRlbXMoKTsKLQogICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQ
aGFzZUZvcmVncm91bmQpIHsKLSAgICAgICAgaW50IGluZGV4ID0gbV9pbmRleE9mZnNldDsKLSAg
ICAgICAgd2hpbGUgKGluZGV4IDwgbGlzdEl0ZW1zU2l6ZSAmJiBpbmRleCA8PSBtX2luZGV4T2Zm
c2V0ICsgbnVtVmlzaWJsZUl0ZW1zKCkpIHsKLSAgICAgICAgICAgIHBhaW50SXRlbUZvcmVncm91
bmQocGFpbnRJbmZvLCBwYWludE9mZnNldCwgaW5kZXgpOwotICAgICAgICAgICAgaW5kZXgrKzsK
LSAgICAgICAgfQorICAgICAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOjpwbGFjZWhvbGRlcnM7Cisg
ICAgICAgIHBhaW50SXRlbShwYWludEluZm8sIHBhaW50T2Zmc2V0LCBzdGQ6OmJpbmQoJlJlbmRl
ckxpc3RCb3g6OnBhaW50SXRlbUZvcmVncm91bmQsIHRoaXMsIF8xLCBfMiwgXzMpKTsKICAgICB9
CiAKICAgICAvLyBQYWludCB0aGUgY2hpbGRyZW4uCkBAIC0zMDMsMTEgKzMxMyw4IEBAIHZvaWQg
UmVuZGVyTGlzdEJveDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGFpbnRQaGFzZUNo
aWxkQmxvY2tCYWNrZ3JvdW5kOgogICAgIGNhc2UgUGFpbnRQaGFzZUNoaWxkQmxvY2tCYWNrZ3Jv
dW5kczogewotICAgICAgICBpbnQgaW5kZXggPSBtX2luZGV4T2Zmc2V0OwotICAgICAgICB3aGls
ZSAoaW5kZXggPCBsaXN0SXRlbXNTaXplICYmIGluZGV4IDw9IG1faW5kZXhPZmZzZXQgKyBudW1W
aXNpYmxlSXRlbXMoKSkgewotICAgICAgICAgICAgcGFpbnRJdGVtQmFja2dyb3VuZChwYWludElu
Zm8sIHBhaW50T2Zmc2V0LCBpbmRleCk7Ci0gICAgICAgICAgICBpbmRleCsrOwotICAgICAgICB9
CisgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsKKyAgICAgICAgcGFp
bnRJdGVtKHBhaW50SW5mbywgcGFpbnRPZmZzZXQsIHN0ZDo6YmluZCgmUmVuZGVyTGlzdEJveDo6
cGFpbnRJdGVtQmFja2dyb3VuZCwgdGhpcywgXzEsIF8yLCBfMykpOwogICAgICAgICBicmVhazsK
ICAgICB9CiAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5oCmluZGV4IGVjNzY3ZjMuLjg0ZDA0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guaApAQCAtMTQyLDYgKzE0Miw5IEBAIHByaXZhdGU6CiAgICAgLy8gTk9URTog
VGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJyaWRlbiBzZXRTY3JvbGxPZmZz
ZXQgZnJvbSBTY3JvbGxhYmxlQXJlYS4KICAgICB2b2lkIHNjcm9sbFRvKGludCBuZXdPZmZzZXQp
OwogCisgICAgdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFpbnRJbmZvJiAsIGNvbnN0IExh
eW91dFBvaW50JiAsIGludCBsaXN0SW5kZXgpPiBQYWludGVyRnVuY3Rpb247CisgICAgdm9pZCBw
YWludEl0ZW0oUGFpbnRJbmZvJiAsIGNvbnN0IExheW91dFBvaW50JiAsIFBhaW50ZXJGdW5jdGlv
bik7CisKICAgICB2b2lkIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGJvb2wgaGFzU2Nyb2xsYmFy
KTsKICAgICBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gY3JlYXRlU2Nyb2xsYmFyKCk7CiAgICAgdm9p
ZCBkZXN0cm95U2Nyb2xsYmFyKCk7Ci0tIAoyLjUuNCAoQXBwbGUgR2l0LTYxKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277593</attachid>
            <date>2016-04-27 22:41:10 -0700</date>
            <delta_ts>2016-04-28 06:32:58 -0700</delta_ts>
            <desc>Patch v1.1 - fixed style issue.</desc>
            <filename>0001-Factor-out-the-paint-item-logic-in-RenderListBox-int.patch</filename>
            <type>text/plain</type>
            <size>4875</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA0ZDAzNmFkMWI2YzFjMWM5ZmI4MTQ0NTNmY2Q0YzU1ZmM5ZjkyN2E1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAyNyBBcHIgMjAxNiAyMjo1NDoxOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEZh
Y3RvciBvdXQgdGhlICJwYWludCBpdGVtIiBsb2dpYyBpbiBSZW5kZXJMaXN0Qm94IGludG8gYQog
aGVscGVyLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTE3CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClBhdGNoIGZhY3RvcnMgb3V0IHRoZSBkdXBsaWNh
dGVkIHBhaW50aW5nIGxvZ2ljIGluIFJlbmRlckxpc3RCb3g6OnBhaW50T2JqZWN0CmludG8gYSBo
ZWxwZXIgbWV0aG9kIG5hbWVkIDo6cGFpbnRJdGVtLgoKVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZv
ciBidWcgMTU2NTkwLgpObyBuZXcgdGVzdHMsIHNpbmNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNo
YW5nZS4KCiogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlz
dEJveDo6cGFpbnRJdGVtKToKKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnBhaW50T2JqZWN0KToK
KiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgfCAzMiArKysrKysrKysrKysrKysrKystLS0t
LS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggICB8ICAz
ICsrKwogMyBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYmRiMjc4OC4uMjljZWI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDE2LTA0LTI3ICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgRmFjdG9yIG91dCB0aGUgInBhaW50IGl0ZW0iIGxvZ2ljIGluIFJlbmRlckxpc3RC
b3ggaW50byBhIGhlbHBlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NzExNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBhdGNoIGZhY3RvcnMgb3V0IHRoZSBkdXBsaWNhdGVkIHBhaW50aW5nIGxvZ2lj
IGluIFJlbmRlckxpc3RCb3g6OnBhaW50T2JqZWN0CisgICAgICAgIGludG8gYSBoZWxwZXIgbWV0
aG9kIG5hbWVkIDo6cGFpbnRJdGVtLgorCisgICAgICAgIFRoaXMgaXMgYSBwcmVwYXJhdGlvbiBm
b3IgYnVnIDE1NjU5MC4KKyAgICAgICAgTm8gbmV3IHRlc3RzLCBzaW5jZSB0aGVyZSBpcyBubyBi
ZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6cGFpbnRPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94Lmg6CisKIDIwMTYtMDQtMjYgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBsZWdhY3kgSFRUUCBoZWFkZXJzIGluIFdl
YlNvY2tldHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRl
eCA1YmIyZmU2Li45MDZhODY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCkBAIC0yNzEsMjAgKzI3MSwyOSBAQCBMYXlvdXRSZWN0IFJlbmRlckxpc3RCb3g6
Oml0ZW1Cb3VuZGluZ0JveFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZQog
ICAgIExheW91dFVuaXQgeSA9IGFkZGl0aW9uYWxPZmZzZXQueSgpICsgYm9yZGVyVG9wKCkgKyBw
YWRkaW5nVG9wKCkgKyBpdGVtSGVpZ2h0KCkgKiAoaW5kZXggLSBtX2luZGV4T2Zmc2V0KTsKICAg
ICByZXR1cm4gTGF5b3V0UmVjdCh4LCB5LCBjb250ZW50V2lkdGgoKSwgaXRlbUhlaWdodCgpKTsK
IH0KLSAgICAKKwordm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW0oUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgUGFpbnRlckZ1bmN0aW9uIHBh
aW50ZXJGdW5jdGlvbikKK3sKKyAgICBBU1NFUlQocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhh
c2VGb3JlZ3JvdW5kCisgICAgICAgIHx8IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlQ2hp
bGRCbG9ja0JhY2tncm91bmQKKyAgICAgICAgfHwgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhh
c2VDaGlsZEJsb2NrQmFja2dyb3VuZHMpOworCisgICAgaW50IGxpc3RJdGVtc1NpemUgPSBudW1J
dGVtcygpOworICAgIGludCBpbmRleCA9IG1faW5kZXhPZmZzZXQ7CisgICAgd2hpbGUgKGluZGV4
IDwgbGlzdEl0ZW1zU2l6ZSAmJiBpbmRleCA8PSBtX2luZGV4T2Zmc2V0ICsgbnVtVmlzaWJsZUl0
ZW1zKCkpIHsKKyAgICAgICAgcGFpbnRlckZ1bmN0aW9uKHBhaW50SW5mbywgcGFpbnRPZmZzZXQs
IGluZGV4KTsKKyAgICAgICAgaW5kZXgrKzsKKyAgICB9Cit9CisKIHZvaWQgUmVuZGVyTGlzdEJv
eDo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWludE9mZnNldCkKIHsKICAgICBpZiAoc3R5bGUoKS52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkK
ICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGludCBsaXN0SXRlbXNTaXplID0gbnVtSXRlbXMo
KTsKLQogICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQpIHsK
LSAgICAgICAgaW50IGluZGV4ID0gbV9pbmRleE9mZnNldDsKLSAgICAgICAgd2hpbGUgKGluZGV4
IDwgbGlzdEl0ZW1zU2l6ZSAmJiBpbmRleCA8PSBtX2luZGV4T2Zmc2V0ICsgbnVtVmlzaWJsZUl0
ZW1zKCkpIHsKLSAgICAgICAgICAgIHBhaW50SXRlbUZvcmVncm91bmQocGFpbnRJbmZvLCBwYWlu
dE9mZnNldCwgaW5kZXgpOwotICAgICAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgfQorICAgICAg
ICB1c2luZyBuYW1lc3BhY2Ugc3RkOjpwbGFjZWhvbGRlcnM7CisgICAgICAgIHBhaW50SXRlbShw
YWludEluZm8sIHBhaW50T2Zmc2V0LCBzdGQ6OmJpbmQoJlJlbmRlckxpc3RCb3g6OnBhaW50SXRl
bUZvcmVncm91bmQsIHRoaXMsIF8xLCBfMiwgXzMpKTsKICAgICB9CiAKICAgICAvLyBQYWludCB0
aGUgY2hpbGRyZW4uCkBAIC0zMDMsMTEgKzMxMiw4IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6cGFp
bnRPYmplY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGFpbnRQaGFzZUNoaWxkQmxvY2tCYWNrZ3JvdW5k
OgogICAgIGNhc2UgUGFpbnRQaGFzZUNoaWxkQmxvY2tCYWNrZ3JvdW5kczogewotICAgICAgICBp
bnQgaW5kZXggPSBtX2luZGV4T2Zmc2V0OwotICAgICAgICB3aGlsZSAoaW5kZXggPCBsaXN0SXRl
bXNTaXplICYmIGluZGV4IDw9IG1faW5kZXhPZmZzZXQgKyBudW1WaXNpYmxlSXRlbXMoKSkgewot
ICAgICAgICAgICAgcGFpbnRJdGVtQmFja2dyb3VuZChwYWludEluZm8sIHBhaW50T2Zmc2V0LCBp
bmRleCk7Ci0gICAgICAgICAgICBpbmRleCsrOwotICAgICAgICB9CisgICAgICAgIHVzaW5nIG5h
bWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsKKyAgICAgICAgcGFpbnRJdGVtKHBhaW50SW5mbywg
cGFpbnRPZmZzZXQsIHN0ZDo6YmluZCgmUmVuZGVyTGlzdEJveDo6cGFpbnRJdGVtQmFja2dyb3Vu
ZCwgdGhpcywgXzEsIF8yLCBfMykpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVs
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IGVjNzY3ZjMu
Ljg0ZDA0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAt
MTQyLDYgKzE0Miw5IEBAIHByaXZhdGU6CiAgICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25seSBi
ZSBjYWxsZWQgYnkgdGhlIG92ZXJyaWRlbiBzZXRTY3JvbGxPZmZzZXQgZnJvbSBTY3JvbGxhYmxl
QXJlYS4KICAgICB2b2lkIHNjcm9sbFRvKGludCBuZXdPZmZzZXQpOwogCisgICAgdHlwZWRlZiBz
dGQ6OmZ1bmN0aW9uPHZvaWQoUGFpbnRJbmZvJiAsIGNvbnN0IExheW91dFBvaW50JiAsIGludCBs
aXN0SW5kZXgpPiBQYWludGVyRnVuY3Rpb247CisgICAgdm9pZCBwYWludEl0ZW0oUGFpbnRJbmZv
JiAsIGNvbnN0IExheW91dFBvaW50JiAsIFBhaW50ZXJGdW5jdGlvbik7CisKICAgICB2b2lkIHNl
dEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGJvb2wgaGFzU2Nyb2xsYmFyKTsKICAgICBQYXNzUmVmUHRy
PFNjcm9sbGJhcj4gY3JlYXRlU2Nyb2xsYmFyKCk7CiAgICAgdm9pZCBkZXN0cm95U2Nyb2xsYmFy
KCk7Ci0tIAoyLjUuNCAoQXBwbGUgR2l0LTYxKQoK
</data>
<flag name="review"
          id="301741"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277616</attachid>
            <date>2016-04-28 06:32:58 -0700</date>
            <delta_ts>2016-04-28 07:34:56 -0700</delta_ts>
            <desc>Patch v1.2 - for landing (addressed Dan&apos;s review).</desc>
            <filename>0001-Factor-out-the-paint-item-logic-in-RenderListBox-int.patch</filename>
            <type>text/plain</type>
            <size>4784</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSAyNGRiNzNlNjVmNTkwMzhlMmRlNzJhYWE0OTg4MzU4NjI4ZDRkOTEzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAyNyBBcHIgMjAxNiAyMjo1NDoxOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEZh
Y3RvciBvdXQgdGhlICJwYWludCBpdGVtIiBsb2dpYyBpbiBSZW5kZXJMaXN0Qm94IGludG8gYQog
aGVscGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcxMTcKClJl
dmlld2VkIGJ5IERhbmllbCBCYXRlcy4KClBhdGNoIGZhY3RvcnMgb3V0IHRoZSBkdXBsaWNhdGVk
IHBhaW50aW5nIGxvZ2ljIGluIFJlbmRlckxpc3RCb3g6OnBhaW50T2JqZWN0KCkKaW50byBhIG1l
bWJlciBmdW5jdGlvbiBuYW1lZCBwYWludEl0ZW0uCgpUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZv
ciBidWcgMTU2NTkwLgpObyBuZXcgdGVzdHMsIHNpbmNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNo
YW5nZS4KCiogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlz
dEJveDo6cGFpbnRJdGVtKToKKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnBhaW50T2JqZWN0KToK
KiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIHwgMjggKysrKysrKysrKysrKysrLS0tLS0t
LS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCAgIHwgIDMg
KysrCiAzIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZGIyNzg4Li45MzI0NjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTYtMDQtMjcgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBGYWN0b3Igb3V0IHRoZSAicGFpbnQgaXRlbSIgbG9naWMgaW4gUmVuZGVyTGlzdEJv
eCBpbnRvIGEgaGVscGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTcxMTcKKworICAgICAgICBSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCisKKyAg
ICAgICAgUGF0Y2ggZmFjdG9ycyBvdXQgdGhlIGR1cGxpY2F0ZWQgcGFpbnRpbmcgbG9naWMgaW4g
UmVuZGVyTGlzdEJveDo6cGFpbnRPYmplY3QoKQorICAgICAgICBpbnRvIGEgbWVtYmVyIGZ1bmN0
aW9uIG5hbWVkIHBhaW50SXRlbS4KKworICAgICAgICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZv
ciBidWcgMTU2NTkwLgorICAgICAgICBObyBuZXcgdGVzdHMsIHNpbmNlIHRoZXJlIGlzIG5vIGJl
aGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnBhaW50SXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludE9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaDoKKwogMjAxNi0wNC0yNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IGxlZ2FjeSBIVFRQIGhlYWRlcnMgaW4gV2Vi
U29ja2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4
IDViYjJmZTYuLjk1MDgwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAKQEAgLTI3MSwyMCArMjcxLDI0IEBAIExheW91dFJlY3QgUmVuZGVyTGlzdEJveDo6
aXRlbUJvdW5kaW5nQm94UmVjdChjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNlCiAg
ICAgTGF5b3V0VW5pdCB5ID0gYWRkaXRpb25hbE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSArIHBh
ZGRpbmdUb3AoKSArIGl0ZW1IZWlnaHQoKSAqIChpbmRleCAtIG1faW5kZXhPZmZzZXQpOwogICAg
IHJldHVybiBMYXlvdXRSZWN0KHgsIHksIGNvbnRlbnRXaWR0aCgpLCBpdGVtSGVpZ2h0KCkpOwog
fQotICAgIAorCit2b2lkIFJlbmRlckxpc3RCb3g6OnBhaW50SXRlbShQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEZ1bmN0aW9uIHBhaW50
RnVuY3Rpb24pCit7CisgICAgaW50IGxpc3RJdGVtc1NpemUgPSBudW1JdGVtcygpOworICAgIGlu
dCBlbmRJbmRleCA9IG1faW5kZXhPZmZzZXQgKyBudW1WaXNpYmxlSXRlbXMoKTsKKyAgICBmb3Ig
KGludCBpID0gbV9pbmRleE9mZnNldDsgaSA8IGxpc3RJdGVtc1NpemUgJiYgaSA8PSBlbmRJbmRl
eDsgKytpKQorICAgICAgICBwYWludEZ1bmN0aW9uKHBhaW50SW5mbywgcGFpbnRPZmZzZXQsIGkp
OworfQorCiB2b2lkIFJlbmRlckxpc3RCb3g6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKHN0eWxlKCku
dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBpbnQg
bGlzdEl0ZW1zU2l6ZSA9IG51bUl0ZW1zKCk7Ci0KICAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09
IFBhaW50UGhhc2VGb3JlZ3JvdW5kKSB7Ci0gICAgICAgIGludCBpbmRleCA9IG1faW5kZXhPZmZz
ZXQ7Ci0gICAgICAgIHdoaWxlIChpbmRleCA8IGxpc3RJdGVtc1NpemUgJiYgaW5kZXggPD0gbV9p
bmRleE9mZnNldCArIG51bVZpc2libGVJdGVtcygpKSB7Ci0gICAgICAgICAgICBwYWludEl0ZW1G
b3JlZ3JvdW5kKHBhaW50SW5mbywgcGFpbnRPZmZzZXQsIGluZGV4KTsKLSAgICAgICAgICAgIGlu
ZGV4Kys7Ci0gICAgICAgIH0KKyAgICAgICAgcGFpbnRJdGVtKHBhaW50SW5mbywgcGFpbnRPZmZz
ZXQsIFt0aGlzXShQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50
T2Zmc2V0LCBpbnQgbGlzdEl0ZW1JbmRleCkgeworICAgICAgICAgICAgcGFpbnRJdGVtRm9yZWdy
b3VuZChwYWludEluZm8sIHBhaW50T2Zmc2V0LCBsaXN0SXRlbUluZGV4KTsKKyAgICAgICAgfSk7
CiAgICAgfQogCiAgICAgLy8gUGFpbnQgdGhlIGNoaWxkcmVuLgpAQCAtMzAzLDExICszMDcsOSBA
QCB2b2lkIFJlbmRlckxpc3RCb3g6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICBicmVhazsKICAgICBjYXNlIFBhaW50
UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZDoKICAgICBjYXNlIFBhaW50UGhhc2VDaGlsZEJsb2Nr
QmFja2dyb3VuZHM6IHsKLSAgICAgICAgaW50IGluZGV4ID0gbV9pbmRleE9mZnNldDsKLSAgICAg
ICAgd2hpbGUgKGluZGV4IDwgbGlzdEl0ZW1zU2l6ZSAmJiBpbmRleCA8PSBtX2luZGV4T2Zmc2V0
ICsgbnVtVmlzaWJsZUl0ZW1zKCkpIHsKLSAgICAgICAgICAgIHBhaW50SXRlbUJhY2tncm91bmQo
cGFpbnRJbmZvLCBwYWludE9mZnNldCwgaW5kZXgpOwotICAgICAgICAgICAgaW5kZXgrKzsKLSAg
ICAgICAgfQorICAgICAgICBwYWludEl0ZW0ocGFpbnRJbmZvLCBwYWludE9mZnNldCwgW3RoaXNd
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGlu
dCBsaXN0SXRlbUluZGV4KSB7CisgICAgICAgICAgICBwYWludEl0ZW1CYWNrZ3JvdW5kKHBhaW50
SW5mbywgcGFpbnRPZmZzZXQsIGxpc3RJdGVtSW5kZXgpOworICAgICAgICB9KTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guaAppbmRleCBlYzc2N2YzLi43MzI0YTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTE0Miw2ICsxNDIsOSBAQCBwcml2YXRlOgogICAgIC8v
IE5PVEU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVycmlkZW4gc2V0U2Ny
b2xsT2Zmc2V0IGZyb20gU2Nyb2xsYWJsZUFyZWEuCiAgICAgdm9pZCBzY3JvbGxUbyhpbnQgbmV3
T2Zmc2V0KTsKIAorICAgIHVzaW5nIFBhaW50RnVuY3Rpb24gPSBzdGQ6OmZ1bmN0aW9uPHZvaWQo
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmLCBpbnQgbGlzdEl0ZW1JbmRleCk+OworICAg
IHZvaWQgcGFpbnRJdGVtKFBhaW50SW5mbyYgLCBjb25zdCBMYXlvdXRQb2ludCYgLCBQYWludEZ1
bmN0aW9uKTsKKwogICAgIHZvaWQgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIoYm9vbCBoYXNTY3Jv
bGxiYXIpOwogICAgIFBhc3NSZWZQdHI8U2Nyb2xsYmFyPiBjcmVhdGVTY3JvbGxiYXIoKTsKICAg
ICB2b2lkIGRlc3Ryb3lTY3JvbGxiYXIoKTsKLS0gCjIuNS40IChBcHBsZSBHaXQtNjEpCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>