<?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>79176</bug_id>
          
          <creation_ts>2012-02-21 18:18:49 -0800</creation_ts>
          <short_desc>Add dump method for WebCore::Int{Point, Rect, Size}</short_desc>
          <delta_ts>2012-04-19 15:45:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Leo Yang">leo.yang</reporter>
          <assigned_to name="Leo Yang">leo.yang</assigned_to>
          <cc>ap</cc>
    
    <cc>charles.wei</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>561449</commentid>
    <comment_count>0</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-02-21 18:18:49 -0800</bug_when>
    <thetext>Conversion a IntPoint to string is useful for debug purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561511</commentid>
    <comment_count>1</comment_count>
      <attachid>128117</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-02-21 19:43:33 -0800</bug_when>
    <thetext>Created attachment 128117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561523</commentid>
    <comment_count>2</comment_count>
      <attachid>128117</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-02-21 19:53:30 -0800</bug_when>
    <thetext>Comment on attachment 128117
Patch

feel like making it #ifndef NDEBUG?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561524</commentid>
    <comment_count>3</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-02-21 19:55:35 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 128117 [details])
&gt; feel like making it #ifndef NDEBUG?

In debug mode, people can use debugger. It seems that toString is not needed in debug mode then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561527</commentid>
    <comment_count>4</comment_count>
      <attachid>128117</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-02-21 19:56:36 -0800</bug_when>
    <thetext>Comment on attachment 128117
Patch

Sending to cq...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561564</commentid>
    <comment_count>5</comment_count>
      <attachid>128117</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 20:55:23 -0800</bug_when>
    <thetext>Comment on attachment 128117
Patch

Rejecting attachment 128117 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
t.h:30,
                 from Source/Platform/chromium/public/WebFloatPoint.h:37,
                 from Source/Platform/chromium/public/WebFloatQuad.h:35,
                 from Source/Platform/chromium/src/WebFloatQuad.cpp:32:
out/Debug/obj/gen/webcore_headers/IntPoint.h:30: fatal error: PlatformString.h: No such file or directory
compilation terminated.
make: *** [out/Debug/obj.target/webkit_platform/Source/Platform/chromium/src/WebFloatQuad.o] Error 1
make: *** Waiting for unfinished jobs....

Full output: http://queues.webkit.org/results/11520354</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561598</commentid>
    <comment_count>6</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-02-21 21:52:27 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 128117 [details])
&gt; Rejecting attachment 128117 [details] from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2
&gt; 
&gt; Last 500 characters of output:
&gt; t.h:30,
&gt;                  from Source/Platform/chromium/public/WebFloatPoint.h:37,
&gt;                  from Source/Platform/chromium/public/WebFloatQuad.h:35,
&gt;                  from Source/Platform/chromium/src/WebFloatQuad.cpp:32:
&gt; out/Debug/obj/gen/webcore_headers/IntPoint.h:30: fatal error: PlatformString.h: No such file or directory
&gt; compilation terminated.
&gt; make: *** [out/Debug/obj.target/webkit_platform/Source/Platform/chromium/src/WebFloatQuad.o] Error 1
&gt; make: *** Waiting for unfinished jobs....
&gt; 
&gt; Full output: http://queues.webkit.org/results/11520354

It seems that Chromium is doing something special. See Source/Platform/Platform.gyp/Platform.gyp:

54             &apos;variables&apos;: {
 55                 # List of headers that are #included in Platform API headers that exist inside
 56                 # the WebCore directory. These are only included when WEBKIT_IMPLEMENTATION=1.
 57                 # Since Platform/ can&apos;t add WebCore/* to the include path, this build step
 58                 # copies these headers into the shared intermediate directory and adds that to the include path.
 59                 # This is temporary, the better solution is to move these headers into the Platform
 60                 # directory for all ports and just use them as normal.
 61                 &apos;webcore_headers&apos;: [
 62                     &apos;../../WebCore/platform/graphics/FloatPoint.h&apos;,
 63                     &apos;../../WebCore/platform/graphics/FloatQuad.h&apos;,
 64                     &apos;../../WebCore/platform/graphics/FloatRect.h&apos;,
 65                     &apos;../../WebCore/platform/graphics/FloatSize.h&apos;,
 66                     &apos;../../WebCore/platform/graphics/IntPoint.h&apos;,
 67                     &apos;../../WebCore/platform/graphics/IntRect.h&apos;,
 68                     &apos;../../WebCore/platform/graphics/IntSize.h&apos;,
 69                 ],
 70                 &apos;output_dir&apos;: &apos;&lt;(SHARED_INTERMEDIATE_DIR)/webcore_headers&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561646</commentid>
    <comment_count>7</comment_count>
      <attachid>128117</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 23:03:09 -0800</bug_when>
    <thetext>Comment on attachment 128117
Patch

Attachment 128117 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11556412</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562083</commentid>
    <comment_count>8</comment_count>
      <attachid>128117</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-22 10:09:02 -0800</bug_when>
    <thetext>Comment on attachment 128117
Patch

In WebCore, functions with this purpose have &quot;dump&quot; in the name. Also, it&apos;s much easier to use a free-standing function than a method in a debugger:

void dumpIntPoint(const IntPoint*);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562202</commentid>
    <comment_count>9</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-02-22 11:48:29 -0800</bug_when>
    <thetext>ap, some context from talking to leo yesterday on IRC, not sure you saw it:

&lt;agomes&gt; leoyang, ping
&lt;agomes&gt; leoyang, maybe see this as a reference:
&lt;agomes&gt; http://trac.webkit.org/browser/trunk/Source/WebCore/platform/graphics/Region.cpp#L175
&lt;agomes&gt; we could do Int{Rect,Point,Size}::dump()
&lt;agomes&gt; guarded by debug builds
&lt;agomes&gt; same for Float{Rect,Point,Size}
&lt;agomes&gt; what do you think?
&lt;leoyang&gt; agomes: it&apos;s a good idea
&lt;leoyang&gt; agomes: Do you think String ClassName::dumpAsText() is better?
&lt;leoyang&gt; hard coded printf is not flexiable
&lt;agomes&gt; it coudl it as well. I was just checking what is already there
&lt;agomes&gt; what would you use instead of printf?
&lt;leoyang&gt; maybe on some platform, someone want to log into their own log system.
&lt;leoyang&gt; I mean we just returns String and then let the user decide what to do.
&lt;leoyang&gt; agomes ^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562311</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-22 13:16:55 -0800</bug_when>
    <thetext>I think that we should design to make specific use cases easy, not for a general case that may never be used in practice.

We have multiple approaches to debug dumping in the code base, sometimes sending to stdio, other times to a stream. The latter is most useful when a compound type is printed, making it possible to format output nicely.

It&apos;s not exactly sure to me what the use case is here. Bug description says &quot;debug purposes&quot;, but function name doesn&apos;t make it clear that it&apos;s a free-form string for debugging only. And you don&apos;t need any special code to print in gdb, as &quot;print&quot; command would do just fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562326</commentid>
    <comment_count>11</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-02-22 13:29:40 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; I think that we should design to make specific use cases easy, not for a general case that may never be used in practice.
&gt; 
&gt; We have multiple approaches to debug dumping in the code base, sometimes sending to stdio, other times to a stream. The latter is most useful when a compound type is printed, making it possible to format output nicely.
&gt; 
&gt; It&apos;s not exactly sure to me what the use case is here. Bug description says &quot;debug purposes&quot;, but function name doesn&apos;t make it clear that it&apos;s a free-form string for debugging only. And you don&apos;t need any special code to print in gdb, as &quot;print&quot; command would do just fine.

Fair enough.

I like the way Region::dump works, and that is why I proposed it originally. But if you are feeling strong about showDebug(IntRect), that is fine with me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570293</commentid>
    <comment_count>12</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-04 13:27:45 -0800</bug_when>
    <thetext>so what is the plan herE? so we move on...

::dump method? or a namespace free show(IntRect*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570424</commentid>
    <comment_count>13</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-03-04 23:16:43 -0800</bug_when>
    <thetext>I would add IntPoint::dump() and guard it with #ifndef NDEBUG. I would also add this method on Int{Rect, Point} and Float{Point, Point3D, Quad, Size, Rect}. If all of you agree with this. I&apos;ll change the bug title and upload a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571358</commentid>
    <comment_count>14</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-03-05 18:58:12 -0800</bug_when>
    <thetext>Changing bug title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571370</commentid>
    <comment_count>15</comment_count>
      <attachid>130268</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-03-05 19:21:13 -0800</bug_when>
    <thetext>Created attachment 130268
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571387</commentid>
    <comment_count>16</comment_count>
      <attachid>130268</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-05 19:51:21 -0800</bug_when>
    <thetext>Comment on attachment 130268
Patch v2

LGTM, but I will let @ap to review. Particularly, I still prefer a toString, where you can output it your own way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571395</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-05 19:59:30 -0800</bug_when>
    <thetext>So what&apos;s the use case for these functions? In debugger, you can achieve the same result with print command. How do you intend to use them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571402</commentid>
    <comment_count>18</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-05 20:07:03 -0800</bug_when>
    <thetext>In my common debugging case (not necessarily in a debugger) I would for example do:

...
_code_

prinft(&quot;%s blah:%s bleh:%.2f&quot;, __PRETTY_FUNCTION__, rect.toString().utf8().data(), layoutUnit);

_more code_
...

That is why i do not think the way it is now it equally useful, since it does not allow formatted output.

You opposed to the this (the first patch), and suggested a namespace free dumpIntRect(rect). IMO both IntRect::dump (current patch) and dumpIntRect(IntRect*) (your suggestion) are not the best, *but* I go with what can be useful for others as well. Maybe I can adapt...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571422</commentid>
    <comment_count>19</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-03-05 20:29:37 -0800</bug_when>
    <thetext>This kind of basic classes are usually in many hot code path. Debugger is kind of annoying sometimes because the break points will be hit many times. If someone wants to debug the hot code path, toString or printf is useful. IMO, toString is more flexible for formatting, but just as other classes, like Region, dump() is also ok to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606012</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-19 15:35:52 -0700</bug_when>
    <thetext>I don&apos;t think these are helpful enough to warrent adding.  In the past there have been concerns about gdb being dumb and not understanding foo.bar(), which is why we have dumpBar(foo) functions.  In any case, I&apos;m not sure this added debugging code is actually that useful.  Folks who need this will just add it when they are debugging something.

I believe there is also a gdb helper script which does some of this for you.
http://trac.webkit.org/browser/trunk/Tools/gdb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606029</commentid>
    <comment_count>21</comment_count>
      <attachid>130268</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-04-19 15:45:39 -0700</bug_when>
    <thetext>Comment on attachment 130268
Patch v2

Cleared review? from attachment 130268 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128117</attachid>
            <date>2012-02-21 19:43:33 -0800</date>
            <delta_ts>2012-03-05 19:21:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Add-toString-method-for-WebCore-IntPoint.patch</filename>
            <type>text/plain</type>
            <size>2163</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSAwMjdkOWIyNmM2Zjg0N2E5ODE5MGJlYWUxZTdiMTEwZDU1NmM2NTZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBXZWQsIDIyIEZlYiAyMDEyIDExOjQyOjA5ICswODAwClN1YmplY3Q6IFtQQVRDSF0g
QWRkIHRvU3RyaW5nIG1ldGhvZCBmb3IgV2ViQ29yZTo6SW50UG9pbnQKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE3NgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgpBIHRvU3RyaW5nIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGRlYnVnIHB1cnBvc2UuCgpJdCdz
IG5vdCB0ZXN0YWJsZSBpbiB0aGUgY3VycmVudCBsYXlvdXQgdGVzdCBmcmFtZXdvcmssIG5vIG5l
dyB0ZXN0cy4KCiogcGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaDoKKFdlYkNvcmU6OkludFBv
aW50Ojp0b1N0cmluZyk6CihJbnRQb2ludCk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oIHwgICAgNiArKysrKysKIDIgZmlsZXMgY2hh
bmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjU1
ZmZhOC4uN2ZmOGEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAyLTIxICBM
ZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBBZGQgdG9T
dHJpbmcgbWV0aG9kIGZvciBXZWJDb3JlOjpJbnRQb2ludAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxNzYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHRvU3RyaW5nIG1ldGhvZCBpcyB1c2VmdWwgZm9y
IGRlYnVnIHB1cnBvc2UuCisKKyAgICAgICAgSXQncyBub3QgdGVzdGFibGUgaW4gdGhlIGN1cnJl
bnQgbGF5b3V0IHRlc3QgZnJhbWV3b3JrLCBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oOgorICAgICAgICAoV2ViQ29yZTo6SW50UG9pbnQ6OnRv
U3RyaW5nKToKKyAgICAgICAgKEludFBvaW50KToKKwogMjAxMi0wMi0yMCAgS2VudGFybyBIYXJh
ICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gUmViYXNlbGlu
ZWQgcnVuLWJpbmRpbmdzLXRlc3RzIHJlc3VsdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW50UG9pbnQuaAppbmRleCA4ZDdmZDdmLi4zZDIyNzY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNk
ZWZpbmUgSW50UG9pbnRfaAogCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogI2lmIFBMQVRGT1JN
KFFUKQpAQCAtMTE1LDYgKzExNiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBJbnRQb2lu
dChtX3ksIG1feCk7CiAgICAgfQogCisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBTdHJpbmcoIigiKSArIFN0cmluZzo6bnVtYmVyKG1feCkgKyBTdHJp
bmcoIiwiKSArIFN0cmluZzo6bnVtYmVyKG1feSkgKyBTdHJpbmcoIikiKTsKKyAgICB9CisKICNp
ZiBVU0UoQ0cpIHx8IFVTRShTS0lBX09OX01BQ19DSFJPTUlVTSkKICAgICBleHBsaWNpdCBJbnRQ
b2ludChjb25zdCBDR1BvaW50Jik7IC8vIGRvbid0IGRvIHRoaXMgaW1wbGljaXRseSBzaW5jZSBp
dCdzIGxvc3N5CiAgICAgb3BlcmF0b3IgQ0dQb2ludCgpIGNvbnN0OwotLSAKMS43LjUuNAoK
</data>
<flag name="review"
          id="130397"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="130400"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130268</attachid>
            <date>2012-03-05 19:21:13 -0800</date>
            <delta_ts>2012-04-19 15:45:39 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>0001-Add-dump-method-for-WebCore-Int-Point-Rect-Size.patch</filename>
            <type>text/plain</type>
            <size>4200</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSA1NzRkNzUwMDI1NzdiMWNlNzRlODgyNWRlYTY0OWUyNGUzNGI2MTEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBUdWUsIDYgTWFyIDIwMTIgMTE6MDA6NDQgKzA4MDAKU3ViamVjdDogW1BBVENIXSBB
ZGQgZHVtcCBtZXRob2QgZm9yIFdlYkNvcmU6OkludHtQb2ludCwgUmVjdCwgU2l6ZX0KIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE3NgoKUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgpBZGQgZHVtcCBtZXRob2Qgb24gV2ViQ29yZTo6SW50e1BvaW50LCBSZWN0
LCBTaXplfSBmb3IgZGVidWcgcHVycG9zZS4KCiogcGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQu
aDoKKEludFBvaW50KToKKFdlYkNvcmU6OkludFBvaW50OjpkdW1wKToKKiBwbGF0Zm9ybS9ncmFw
aGljcy9JbnRSZWN0Lmg6CihJbnRSZWN0KToKKFdlYkNvcmU6OkludFJlY3Q6OmR1bXApOgoqIHBs
YXRmb3JtL2dyYXBoaWNzL0ludFNpemUuaDoKKEludFNpemUpOgooV2ViQ29yZTo6SW50U2l6ZTo6
ZHVtcCk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICB8
ICAgMTkgKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW50UG9pbnQuaCB8ICAgMTEgKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ludFJlY3QuaCAgfCAgIDExICsrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmggIHwgICAxMSArKysrKysrKysrKwogNCBmaWxlcyBj
aGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTU1MTcyLi43NmJkNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjQgQEAKIDIwMTItMDMtMDUg
IExlbyBZYW5nICA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNuPgogCisgICAgICAgIEFkZCBk
dW1wIG1ldGhvZCBmb3IgV2ViQ29yZTo6SW50e1BvaW50LCBSZWN0LCBTaXplfQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxNzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZHVtcCBtZXRob2Qgb24g
V2ViQ29yZTo6SW50e1BvaW50LCBSZWN0LCBTaXplfSBmb3IgZGVidWcgcHVycG9zZS4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50Lmg6CisgICAgICAgIChJbnRQb2ludCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRQb2ludDo6ZHVtcCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvSW50UmVjdC5oOgorICAgICAgICAoSW50UmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRSZWN0OjpkdW1wKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmg6
CisgICAgICAgIChJbnRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkludFNpemU6OmR1bXApOgor
CisyMDEyLTAzLTA1ICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KKwog
ICAgICAgICBHcmFwaGljc0NvbnRleHQzRC5oIHNob3VsZCBpbmNsdWRlIFJlZkNvdW50ZWQuaCBl
eHBsaWNpdGx5CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MDI1MQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bnRQb2ludC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaApp
bmRleCBkZGM0MWI0Li4xM2ZlZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbnRQb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ludFBvaW50LmgKQEAgLTI5LDYgKzI5LDEwIEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgog
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKKyNpZm5kZWYgTkRFQlVHCisjaW5jbHVkZSA8
c3RkaW8uaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSA8UURhdGFTdHJl
YW0+CiAjZW5kaWYKQEAgLTEyMSw2ICsxMjUsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
SW50UG9pbnQobV95LCBtX3gpOwogICAgIH0KIAorI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIGR1
bXAoKQorICAgIHsKKyAgICAgICAgcHJpbnRmKCJJbnRQb2ludCBhdCAoJWQsICVkKVxuIiwgbV94
LCBtX3kpOworICAgIH0KKyNlbmRpZgorCiAjaWYgVVNFKENHKSB8fCBVU0UoU0tJQV9PTl9NQUNf
Q0hST01JVU0pCiAgICAgZXhwbGljaXQgSW50UG9pbnQoY29uc3QgQ0dQb2ludCYpOyAvLyBkb24n
dCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3NzeQogICAgIG9wZXJhdG9yIENHUG9p
bnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ludFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaApp
bmRleCBmY2JmMjdhLi41OTFmMGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbnRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW50UmVjdC5oCkBAIC0yOSw2ICsyOSwxMCBAQAogI2luY2x1ZGUgIkludFBvaW50LmgiCiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCisjaWZuZGVmIE5ERUJVRworI2luY2x1ZGUgPHN0ZGlv
Lmg+CisjZW5kaWYKKwogI2lmIFVTRShDRykgfHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NSVVNKQog
dHlwZWRlZiBzdHJ1Y3QgQ0dSZWN0IENHUmVjdDsKICNlbmRpZgpAQCAtMTc5LDYgKzE4MywxMyBA
QCBwdWJsaWM6CiAKICAgICBJbnRSZWN0IHRyYW5zcG9zZWRSZWN0KCkgY29uc3QgeyByZXR1cm4g
SW50UmVjdChtX2xvY2F0aW9uLnRyYW5zcG9zZWRQb2ludCgpLCBtX3NpemUudHJhbnNwb3NlZFNp
emUoKSk7IH0KIAorI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIGR1bXAoKQorICAgIHsKKyAgICAg
ICAgcHJpbnRmKCJJbnRSZWN0KHg9JWQsIHk9JWQsIHdpZHRoPSVkLCBoZWlnaHQ9JWQpXG4iLCBt
X2xvY2F0aW9uLngoKSwgbV9sb2NhdGlvbi55KCksIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVp
Z2h0KCkpOworICAgIH0KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV1gpCiAgICAgSW50UmVjdChj
b25zdCB3eFJlY3QmKTsKICAgICBvcGVyYXRvciB3eFJlY3QoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFNpemUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFNpemUuaAppbmRleCAxNjM5ODQ3Li45MWFiODJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5oCkBAIC0yNiw2ICsy
NiwxMCBAQAogI2lmbmRlZiBJbnRTaXplX2gKICNkZWZpbmUgSW50U2l6ZV9oCiAKKyNpZm5kZWYg
TkRFQlVHCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCiAjaWYgVVNFKENHKSB8fCBVU0Uo
U0tJQV9PTl9NQUNfQ0hST01JVU0pCiB0eXBlZGVmIHN0cnVjdCBDR1NpemUgQ0dTaXplOwogI2Vu
ZGlmCkBAIC0xMDksNiArMTEzLDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEludFNpemUo
bV9oZWlnaHQsIG1fd2lkdGgpOwogICAgIH0KIAorI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIGR1
bXAoKQorICAgIHsKKyAgICAgICAgcHJpbnRmKCJJbnRTaXplKHdpZHRoPSVkLCBoZWlnaHQ9JWQp
XG4iLCBtX3dpZHRoLCBtX2hlaWdodCk7CisgICAgfQorI2VuZGlmCisKICNpZiBVU0UoQ0cpIHx8
IFVTRShTS0lBX09OX01BQ19DSFJPTUlVTSkKICAgICBleHBsaWNpdCBJbnRTaXplKGNvbnN0IENH
U2l6ZSYpOyAvLyBkb24ndCBkbyB0aGlzIGltcGxpY2l0bHkgc2luY2UgaXQncyBsb3NzeQogICAg
IG9wZXJhdG9yIENHU2l6ZSgpIGNvbnN0OwotLSAKMS43LjUuNAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>