<?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>98803</bug_id>
          
          <creation_ts>2012-10-09 11:30:52 -0700</creation_ts>
          <short_desc>Refactor shouldAddBorderPaddingMargin()</short_desc>
          <delta_ts>2013-05-24 09:18:02 -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>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Hogan">robert</reporter>
          <assigned_to name="Robert Hogan">robert</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>robert</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>737978</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-10-09 11:30:52 -0700</bug_when>
    <thetext>..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737981</commentid>
    <comment_count>1</comment_count>
      <attachid>164760</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-10-09 11:31:51 -0700</bug_when>
    <thetext>Comment on attachment 164760
Patch

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

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:289
&gt; +static bool shouldAddBorderPaddingMargin(RenderObject* child, bool &amp;checkSide)

This is incorrect formatting for the WebKit project. It should be bool&amp; checkSide.

Also, I find the name and purpose of this argument to be quite confusing.

I suspect this function should be marked inline.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:291
&gt; +    if (!child || (child-&gt;isText() &amp;&amp; !toRenderText(child)-&gt;textLength()))

This needs a “why” comment. Why is this the correct rule? The change log says, but the code needs to say it too.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:294
&gt; +    checkSide = false;
&gt; +    return checkSide;

Why not just return false here?

This strange function that returns a boolean and also ands that same boolean with an argument isn}t really justified by the call site. This could just be a normal function and the rest of the logic could be done in a clearer way at the call site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891337</commentid>
    <comment_count>2</comment_count>
      <attachid>202318</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-05-20 14:09:28 -0700</bug_when>
    <thetext>Created attachment 202318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891343</commentid>
    <comment_count>3</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-05-20 14:37:57 -0700</bug_when>
    <thetext>Pinging Darin: is this more like it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892986</commentid>
    <comment_count>4</comment_count>
      <attachid>202318</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-05-23 12:18:07 -0700</bug_when>
    <thetext>Comment on attachment 202318
Patch

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

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:374
&gt; +            if (checkStartEdge &amp;&amp; parentContributesWidth) {

We don&apos;t need to check checkStartEdge here since we no longer update checkStartEdge in shouldAddBorderPaddingMargin.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:375
&gt; +                checkStartEdge = parentContributesWidth;

You always set checkStartEdge to true here because parentContributesWidth is always true in this branch.
What you need to do instead is to add an else clause and set checkStartEdge to false there.
I&apos;m surprised that none of our layout tests caught this. Maybe we need to a test for this?
r- because of this logic change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893061</commentid>
    <comment_count>5</comment_count>
      <attachid>202744</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-05-23 15:37:17 -0700</bug_when>
    <thetext>Created attachment 202744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893073</commentid>
    <comment_count>6</comment_count>
      <attachid>202744</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-05-23 15:57:13 -0700</bug_when>
    <thetext>Comment on attachment 202744
Patch

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

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:374
&gt; +            bool parentContributesWidth = checkStartEdge &amp;&amp; shouldAddBorderPaddingMargin(previousInFlowSibling(child));
&gt; +            if (parentContributesWidth)

Why do we need parentContributesWidth at all? Can&apos;t we just do:
checkStartEdge = checkStartEdge &amp;&amp; shouldAddBorderPaddingMargin(previousInFlowSibling(child));
?

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:378
&gt; +            checkStartEdge = parentContributesWidth;
&gt; +            parentContributesWidth = checkEndEdge &amp;&amp; shouldAddBorderPaddingMargin(child-&gt;nextSibling());
&gt; +            if (parentContributesWidth)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893074</commentid>
    <comment_count>7</comment_count>
      <attachid>202749</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2013-05-23 15:59:31 -0700</bug_when>
    <thetext>Created attachment 202749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893326</commentid>
    <comment_count>8</comment_count>
      <attachid>202749</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-24 09:17:59 -0700</bug_when>
    <thetext>Comment on attachment 202749
Patch

Clearing flags on attachment: 202749

Committed r150642: &lt;http://trac.webkit.org/changeset/150642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893327</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-24 09:18:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202318</attachid>
            <date>2013-05-20 14:09:28 -0700</date>
            <delta_ts>2013-05-23 15:37:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98803-20130520220808.patch</filename>
            <type>text/plain</type>
            <size>3629</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE5NTk1NGY1OTAxMDJk
ODRkMjFmOWM0YmM4ZWE2NjZiYmU4NTRiOS4uYmFlM2M0MzVlZWVjNGMzMzg4YTcxMzkyYTE1ZDYz
MTEyMDBkYTkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA1LTIwICBSb2Jl
cnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZWZhY3RvciBzaG91bGRB
ZGRCb3JkZXJQYWRkaW5nTWFyZ2luKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWFrZSB0aGlzIGhlbHBlciBmdW5jdGlvbiBsZXNzIGNsZXZlci1zdHVw
aWQgaW4gaXRzIG1pc2d1aWRlZCBzYWNyaWZpY2Ugb2YgaW50ZWxsaWdpYmlsaXR5CisgICAgICAg
IGZvciB0aGUgc2FrZSBvZiBjb25jaXNpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZh
Y3RvcmluZy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQWRkQm9yZGVyUGFkZGluZ01hcmdpbik6CisgICAg
ICAgIChXZWJDb3JlOjppbmxpbmVMb2dpY2FsV2lkdGgpOgorCiAyMDEzLTA1LTE3ICBDaHJpc3Rv
cGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBHZXQgcmlk
IG9mIFtDdXN0b21HZXR0ZXJdIGZvciBnbG9iYWwgbmFtZWQgY29uc3RydWN0b3JzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4
IDllMDI2ZTk1NWM3NTE1ODBlNGZmMzE2MGRlYWRjZDI2MjNjYjkxMzcuLjUyNGYwYjVjYTRhODJl
OGM4MmNhMGIyZjIyMDUzMjQ2Yzk3ZDk3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC0zNDgsMTIgKzM0OCwxMCBAQCBz
dGF0aWMgaW5saW5lIExheW91dFVuaXQgYm9yZGVyUGFkZGluZ01hcmdpbkVuZChSZW5kZXJJbmxp
bmUqIGNoaWxkKQogICAgIHJldHVybiBjaGlsZC0+bWFyZ2luRW5kKCkgKyBjaGlsZC0+cGFkZGlu
Z0VuZCgpICsgY2hpbGQtPmJvcmRlckVuZCgpOwogfQogCi1zdGF0aWMgYm9vbCBzaG91bGRBZGRC
b3JkZXJQYWRkaW5nTWFyZ2luKFJlbmRlck9iamVjdCogY2hpbGQsIGJvb2wgJmNoZWNrU2lkZSkK
K3N0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRBZGRCb3JkZXJQYWRkaW5nTWFyZ2luKFJlbmRlck9i
amVjdCogY2hpbGQpCiB7Ci0gICAgaWYgKCFjaGlsZCB8fCAoY2hpbGQtPmlzVGV4dCgpICYmICF0
b1JlbmRlclRleHQoY2hpbGQpLT50ZXh0TGVuZ3RoKCkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICBjaGVja1NpZGUgPSBmYWxzZTsKLSAgICByZXR1cm4gY2hlY2tTaWRlOworICAgIC8vIFdo
ZW4gZGVjaWRpbmcgd2hldGhlciB3ZSdyZSBhdCB0aGUgZWRnZSBvZiBhbiBpbmxpbmUsIGFkamFj
ZW50IGNvbGxhcHNlZCB3aGl0ZXNwYWNlIGlzIHRoZSBzYW1lIGFzIG5vIHNpYmxpbmcgYXQgYWxs
LgorICAgIHJldHVybiAhY2hpbGQgfHwgKGNoaWxkLT5pc1RleHQoKSAmJiAhdG9SZW5kZXJUZXh0
KGNoaWxkKS0+dGV4dExlbmd0aCgpKTsKIH0KIAogc3RhdGljIFJlbmRlck9iamVjdCogcHJldmlv
dXNJbkZsb3dTaWJsaW5nKFJlbmRlck9iamVjdCogY2hpbGQpCkBAIC0zNjQsNyArMzYyLDcgQEAg
c3RhdGljIFJlbmRlck9iamVjdCogcHJldmlvdXNJbkZsb3dTaWJsaW5nKFJlbmRlck9iamVjdCog
Y2hpbGQpCiAgICAgcmV0dXJuIGNoaWxkOwogfQogCi1zdGF0aWMgTGF5b3V0VW5pdCBpbmxpbmVM
b2dpY2FsV2lkdGgoUmVuZGVyT2JqZWN0KiBjaGlsZCwgYm9vbCBzdGFydCA9IHRydWUsIGJvb2wg
ZW5kID0gdHJ1ZSkKK3N0YXRpYyBMYXlvdXRVbml0IGlubGluZUxvZ2ljYWxXaWR0aChSZW5kZXJP
YmplY3QqIGNoaWxkLCBib29sIGNoZWNrU3RhcnRFZGdlID0gdHJ1ZSwgYm9vbCBjaGVja0VuZEVk
Z2UgPSB0cnVlKQogewogICAgIHVuc2lnbmVkIGxpbmVEZXB0aCA9IDE7CiAgICAgTGF5b3V0VW5p
dCBleHRyYVdpZHRoID0gMDsKQEAgLTM3MiwxMSArMzcwLDE3IEBAIHN0YXRpYyBMYXlvdXRVbml0
IGlubGluZUxvZ2ljYWxXaWR0aChSZW5kZXJPYmplY3QqIGNoaWxkLCBib29sIHN0YXJ0ID0gdHJ1
ZSwgYm9vCiAgICAgd2hpbGUgKHBhcmVudC0+aXNSZW5kZXJJbmxpbmUoKSAmJiBsaW5lRGVwdGgr
KyA8IGNNYXhMaW5lRGVwdGgpIHsKICAgICAgICAgUmVuZGVySW5saW5lKiBwYXJlbnRBc1JlbmRl
cklubGluZSA9IHRvUmVuZGVySW5saW5lKHBhcmVudCk7CiAgICAgICAgIGlmICghaXNFbXB0eUlu
bGluZShwYXJlbnRBc1JlbmRlcklubGluZSkpIHsKLSAgICAgICAgICAgIGlmIChzdGFydCAmJiBz
aG91bGRBZGRCb3JkZXJQYWRkaW5nTWFyZ2luKHByZXZpb3VzSW5GbG93U2libGluZyhjaGlsZCks
IHN0YXJ0KSkKKyAgICAgICAgICAgIGJvb2wgcGFyZW50Q29udHJpYnV0ZXNXaWR0aCA9IGNoZWNr
U3RhcnRFZGdlICYmIHNob3VsZEFkZEJvcmRlclBhZGRpbmdNYXJnaW4ocHJldmlvdXNJbkZsb3dT
aWJsaW5nKGNoaWxkKSk7CisgICAgICAgICAgICBpZiAoY2hlY2tTdGFydEVkZ2UgJiYgcGFyZW50
Q29udHJpYnV0ZXNXaWR0aCkgeworICAgICAgICAgICAgICAgIGNoZWNrU3RhcnRFZGdlID0gcGFy
ZW50Q29udHJpYnV0ZXNXaWR0aDsKICAgICAgICAgICAgICAgICBleHRyYVdpZHRoICs9IGJvcmRl
clBhZGRpbmdNYXJnaW5TdGFydChwYXJlbnRBc1JlbmRlcklubGluZSk7Ci0gICAgICAgICAgICBp
ZiAoZW5kICYmIHNob3VsZEFkZEJvcmRlclBhZGRpbmdNYXJnaW4oY2hpbGQtPm5leHRTaWJsaW5n
KCksIGVuZCkpCisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJlbnRDb250cmlidXRlc1dp
ZHRoID0gY2hlY2tFbmRFZGdlICYmIHNob3VsZEFkZEJvcmRlclBhZGRpbmdNYXJnaW4oY2hpbGQt
Pm5leHRTaWJsaW5nKCkpOworICAgICAgICAgICAgaWYgKGNoZWNrRW5kRWRnZSAmJiBwYXJlbnRD
b250cmlidXRlc1dpZHRoKSB7CisgICAgICAgICAgICAgICAgY2hlY2tFbmRFZGdlID0gcGFyZW50
Q29udHJpYnV0ZXNXaWR0aDsKICAgICAgICAgICAgICAgICBleHRyYVdpZHRoICs9IGJvcmRlclBh
ZGRpbmdNYXJnaW5FbmQocGFyZW50QXNSZW5kZXJJbmxpbmUpOwotICAgICAgICAgICAgaWYgKCFz
dGFydCAmJiAhZW5kKQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFjaGVja1N0YXJ0
RWRnZSAmJiAhY2hlY2tFbmRFZGdlKQogICAgICAgICAgICAgICAgIHJldHVybiBleHRyYVdpZHRo
OwogICAgICAgICB9CiAgICAgICAgIGNoaWxkID0gcGFyZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202744</attachid>
            <date>2013-05-23 15:37:17 -0700</date>
            <delta_ts>2013-05-23 15:59:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98803-20130523233552.patch</filename>
            <type>text/plain</type>
            <size>3541</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVmNmZkNWIzNTgzZWIw
NjBlODUyZDFkMWExZTU0NDA3MmFiMDg2ZS4uZjExYThkZDQ0MzAyODhiMTQ5OWFmMjAwZjFlMTIz
Yzk0MmZhZWJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA1LTIwICBSb2Jl
cnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZWZhY3RvciBzaG91bGRB
ZGRCb3JkZXJQYWRkaW5nTWFyZ2luKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWFrZSB0aGlzIGhlbHBlciBmdW5jdGlvbiBsZXNzIGNsZXZlci1zdHVw
aWQgaW4gaXRzIG1pc2d1aWRlZCBzYWNyaWZpY2Ugb2YgaW50ZWxsaWdpYmlsaXR5CisgICAgICAg
IGZvciB0aGUgc2FrZSBvZiBjb25jaXNpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZh
Y3RvcmluZy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQWRkQm9yZGVyUGFkZGluZ01hcmdpbik6CisgICAg
ICAgIChXZWJDb3JlOjppbmxpbmVMb2dpY2FsV2lkdGgpOgorCiAyMDEzLTA1LTE4ICBSb2JlcnQg
SG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBUaGUgZWxsaXBzaXMgaW4gYSB0
ZXh0IG92ZXJmbG93IHNob3VsZCBub3QgYXZvaWQgZmxvYXRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IDY5MDQyNWQ0NjFl
Yjk3NDU3NzU5ZTE4MjI0YjlhNDFiNGZmNTQwOTYuLjhlMTlmMGI1M2IyY2M0OGM3NGE4NDlmNmNh
ODExY2U2ZDg4ZjZlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC0zNDgsMTIgKzM0OCwxMCBAQCBzdGF0aWMgaW5saW5l
IExheW91dFVuaXQgYm9yZGVyUGFkZGluZ01hcmdpbkVuZChSZW5kZXJJbmxpbmUqIGNoaWxkKQog
ICAgIHJldHVybiBjaGlsZC0+bWFyZ2luRW5kKCkgKyBjaGlsZC0+cGFkZGluZ0VuZCgpICsgY2hp
bGQtPmJvcmRlckVuZCgpOwogfQogCi1zdGF0aWMgYm9vbCBzaG91bGRBZGRCb3JkZXJQYWRkaW5n
TWFyZ2luKFJlbmRlck9iamVjdCogY2hpbGQsIGJvb2wgJmNoZWNrU2lkZSkKK3N0YXRpYyBpbmxp
bmUgYm9vbCBzaG91bGRBZGRCb3JkZXJQYWRkaW5nTWFyZ2luKFJlbmRlck9iamVjdCogY2hpbGQp
CiB7Ci0gICAgaWYgKCFjaGlsZCB8fCAoY2hpbGQtPmlzVGV4dCgpICYmICF0b1JlbmRlclRleHQo
Y2hpbGQpLT50ZXh0TGVuZ3RoKCkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjaGVja1Np
ZGUgPSBmYWxzZTsKLSAgICByZXR1cm4gY2hlY2tTaWRlOworICAgIC8vIFdoZW4gZGVjaWRpbmcg
d2hldGhlciB3ZSdyZSBhdCB0aGUgZWRnZSBvZiBhbiBpbmxpbmUsIGFkamFjZW50IGNvbGxhcHNl
ZCB3aGl0ZXNwYWNlIGlzIHRoZSBzYW1lIGFzIG5vIHNpYmxpbmcgYXQgYWxsLgorICAgIHJldHVy
biAhY2hpbGQgfHwgKGNoaWxkLT5pc1RleHQoKSAmJiAhdG9SZW5kZXJUZXh0KGNoaWxkKS0+dGV4
dExlbmd0aCgpKTsKIH0KIAogc3RhdGljIFJlbmRlck9iamVjdCogcHJldmlvdXNJbkZsb3dTaWJs
aW5nKFJlbmRlck9iamVjdCogY2hpbGQpCkBAIC0zNjQsNyArMzYyLDcgQEAgc3RhdGljIFJlbmRl
ck9iamVjdCogcHJldmlvdXNJbkZsb3dTaWJsaW5nKFJlbmRlck9iamVjdCogY2hpbGQpCiAgICAg
cmV0dXJuIGNoaWxkOwogfQogCi1zdGF0aWMgTGF5b3V0VW5pdCBpbmxpbmVMb2dpY2FsV2lkdGgo
UmVuZGVyT2JqZWN0KiBjaGlsZCwgYm9vbCBzdGFydCA9IHRydWUsIGJvb2wgZW5kID0gdHJ1ZSkK
K3N0YXRpYyBMYXlvdXRVbml0IGlubGluZUxvZ2ljYWxXaWR0aChSZW5kZXJPYmplY3QqIGNoaWxk
LCBib29sIGNoZWNrU3RhcnRFZGdlID0gdHJ1ZSwgYm9vbCBjaGVja0VuZEVkZ2UgPSB0cnVlKQog
ewogICAgIHVuc2lnbmVkIGxpbmVEZXB0aCA9IDE7CiAgICAgTGF5b3V0VW5pdCBleHRyYVdpZHRo
ID0gMDsKQEAgLTM3MiwxMSArMzcwLDE1IEBAIHN0YXRpYyBMYXlvdXRVbml0IGlubGluZUxvZ2lj
YWxXaWR0aChSZW5kZXJPYmplY3QqIGNoaWxkLCBib29sIHN0YXJ0ID0gdHJ1ZSwgYm9vCiAgICAg
d2hpbGUgKHBhcmVudC0+aXNSZW5kZXJJbmxpbmUoKSAmJiBsaW5lRGVwdGgrKyA8IGNNYXhMaW5l
RGVwdGgpIHsKICAgICAgICAgUmVuZGVySW5saW5lKiBwYXJlbnRBc1JlbmRlcklubGluZSA9IHRv
UmVuZGVySW5saW5lKHBhcmVudCk7CiAgICAgICAgIGlmICghaXNFbXB0eUlubGluZShwYXJlbnRB
c1JlbmRlcklubGluZSkpIHsKLSAgICAgICAgICAgIGlmIChzdGFydCAmJiBzaG91bGRBZGRCb3Jk
ZXJQYWRkaW5nTWFyZ2luKHByZXZpb3VzSW5GbG93U2libGluZyhjaGlsZCksIHN0YXJ0KSkKKyAg
ICAgICAgICAgIGJvb2wgcGFyZW50Q29udHJpYnV0ZXNXaWR0aCA9IGNoZWNrU3RhcnRFZGdlICYm
IHNob3VsZEFkZEJvcmRlclBhZGRpbmdNYXJnaW4ocHJldmlvdXNJbkZsb3dTaWJsaW5nKGNoaWxk
KSk7CisgICAgICAgICAgICBpZiAocGFyZW50Q29udHJpYnV0ZXNXaWR0aCkKICAgICAgICAgICAg
ICAgICBleHRyYVdpZHRoICs9IGJvcmRlclBhZGRpbmdNYXJnaW5TdGFydChwYXJlbnRBc1JlbmRl
cklubGluZSk7Ci0gICAgICAgICAgICBpZiAoZW5kICYmIHNob3VsZEFkZEJvcmRlclBhZGRpbmdN
YXJnaW4oY2hpbGQtPm5leHRTaWJsaW5nKCksIGVuZCkpCisgICAgICAgICAgICBjaGVja1N0YXJ0
RWRnZSA9IHBhcmVudENvbnRyaWJ1dGVzV2lkdGg7CisgICAgICAgICAgICBwYXJlbnRDb250cmli
dXRlc1dpZHRoID0gY2hlY2tFbmRFZGdlICYmIHNob3VsZEFkZEJvcmRlclBhZGRpbmdNYXJnaW4o
Y2hpbGQtPm5leHRTaWJsaW5nKCkpOworICAgICAgICAgICAgaWYgKHBhcmVudENvbnRyaWJ1dGVz
V2lkdGgpCiAgICAgICAgICAgICAgICAgZXh0cmFXaWR0aCArPSBib3JkZXJQYWRkaW5nTWFyZ2lu
RW5kKHBhcmVudEFzUmVuZGVySW5saW5lKTsKLSAgICAgICAgICAgIGlmICghc3RhcnQgJiYgIWVu
ZCkKKyAgICAgICAgICAgIGNoZWNrRW5kRWRnZSA9IHBhcmVudENvbnRyaWJ1dGVzV2lkdGg7Cisg
ICAgICAgICAgICBpZiAoIWNoZWNrU3RhcnRFZGdlICYmICFjaGVja0VuZEVkZ2UpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGV4dHJhV2lkdGg7CiAgICAgICAgIH0KICAgICAgICAgY2hpbGQgPSBw
YXJlbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202749</attachid>
            <date>2013-05-23 15:59:31 -0700</date>
            <delta_ts>2013-05-24 09:17:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98803-20130523235806.patch</filename>
            <type>text/plain</type>
            <size>3394</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVmNmZkNWIzNTgzZWIw
NjBlODUyZDFkMWExZTU0NDA3MmFiMDg2ZS4uZjExYThkZDQ0MzAyODhiMTQ5OWFmMjAwZjFlMTIz
Yzk0MmZhZWJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTA1LTIwICBSb2Jl
cnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZWZhY3RvciBzaG91bGRB
ZGRCb3JkZXJQYWRkaW5nTWFyZ2luKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWFrZSB0aGlzIGhlbHBlciBmdW5jdGlvbiBsZXNzIGNsZXZlci1zdHVw
aWQgaW4gaXRzIG1pc2d1aWRlZCBzYWNyaWZpY2Ugb2YgaW50ZWxsaWdpYmlsaXR5CisgICAgICAg
IGZvciB0aGUgc2FrZSBvZiBjb25jaXNpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZh
Y3RvcmluZy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQWRkQm9yZGVyUGFkZGluZ01hcmdpbik6CisgICAg
ICAgIChXZWJDb3JlOjppbmxpbmVMb2dpY2FsV2lkdGgpOgorCiAyMDEzLTA1LTE4ICBSb2JlcnQg
SG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBUaGUgZWxsaXBzaXMgaW4gYSB0
ZXh0IG92ZXJmbG93IHNob3VsZCBub3QgYXZvaWQgZmxvYXRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IDY5MDQyNWQ0NjFl
Yjk3NDU3NzU5ZTE4MjI0YjlhNDFiNGZmNTQwOTYuLmUxODcxOGE4Mjg3NGY1MjgyNWE5NGFhZmZh
NzBmZDQ5YzA4MGNhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC0zNDgsMTIgKzM0OCwxMCBAQCBzdGF0aWMgaW5saW5l
IExheW91dFVuaXQgYm9yZGVyUGFkZGluZ01hcmdpbkVuZChSZW5kZXJJbmxpbmUqIGNoaWxkKQog
ICAgIHJldHVybiBjaGlsZC0+bWFyZ2luRW5kKCkgKyBjaGlsZC0+cGFkZGluZ0VuZCgpICsgY2hp
bGQtPmJvcmRlckVuZCgpOwogfQogCi1zdGF0aWMgYm9vbCBzaG91bGRBZGRCb3JkZXJQYWRkaW5n
TWFyZ2luKFJlbmRlck9iamVjdCogY2hpbGQsIGJvb2wgJmNoZWNrU2lkZSkKK3N0YXRpYyBpbmxp
bmUgYm9vbCBzaG91bGRBZGRCb3JkZXJQYWRkaW5nTWFyZ2luKFJlbmRlck9iamVjdCogY2hpbGQp
CiB7Ci0gICAgaWYgKCFjaGlsZCB8fCAoY2hpbGQtPmlzVGV4dCgpICYmICF0b1JlbmRlclRleHQo
Y2hpbGQpLT50ZXh0TGVuZ3RoKCkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjaGVja1Np
ZGUgPSBmYWxzZTsKLSAgICByZXR1cm4gY2hlY2tTaWRlOworICAgIC8vIFdoZW4gZGVjaWRpbmcg
d2hldGhlciB3ZSdyZSBhdCB0aGUgZWRnZSBvZiBhbiBpbmxpbmUsIGFkamFjZW50IGNvbGxhcHNl
ZCB3aGl0ZXNwYWNlIGlzIHRoZSBzYW1lIGFzIG5vIHNpYmxpbmcgYXQgYWxsLgorICAgIHJldHVy
biAhY2hpbGQgfHwgKGNoaWxkLT5pc1RleHQoKSAmJiAhdG9SZW5kZXJUZXh0KGNoaWxkKS0+dGV4
dExlbmd0aCgpKTsKIH0KIAogc3RhdGljIFJlbmRlck9iamVjdCogcHJldmlvdXNJbkZsb3dTaWJs
aW5nKFJlbmRlck9iamVjdCogY2hpbGQpCkBAIC0zNjQsNyArMzYyLDcgQEAgc3RhdGljIFJlbmRl
ck9iamVjdCogcHJldmlvdXNJbkZsb3dTaWJsaW5nKFJlbmRlck9iamVjdCogY2hpbGQpCiAgICAg
cmV0dXJuIGNoaWxkOwogfQogCi1zdGF0aWMgTGF5b3V0VW5pdCBpbmxpbmVMb2dpY2FsV2lkdGgo
UmVuZGVyT2JqZWN0KiBjaGlsZCwgYm9vbCBzdGFydCA9IHRydWUsIGJvb2wgZW5kID0gdHJ1ZSkK
K3N0YXRpYyBMYXlvdXRVbml0IGlubGluZUxvZ2ljYWxXaWR0aChSZW5kZXJPYmplY3QqIGNoaWxk
LCBib29sIGNoZWNrU3RhcnRFZGdlID0gdHJ1ZSwgYm9vbCBjaGVja0VuZEVkZ2UgPSB0cnVlKQog
ewogICAgIHVuc2lnbmVkIGxpbmVEZXB0aCA9IDE7CiAgICAgTGF5b3V0VW5pdCBleHRyYVdpZHRo
ID0gMDsKQEAgLTM3MiwxMSArMzcwLDEzIEBAIHN0YXRpYyBMYXlvdXRVbml0IGlubGluZUxvZ2lj
YWxXaWR0aChSZW5kZXJPYmplY3QqIGNoaWxkLCBib29sIHN0YXJ0ID0gdHJ1ZSwgYm9vCiAgICAg
d2hpbGUgKHBhcmVudC0+aXNSZW5kZXJJbmxpbmUoKSAmJiBsaW5lRGVwdGgrKyA8IGNNYXhMaW5l
RGVwdGgpIHsKICAgICAgICAgUmVuZGVySW5saW5lKiBwYXJlbnRBc1JlbmRlcklubGluZSA9IHRv
UmVuZGVySW5saW5lKHBhcmVudCk7CiAgICAgICAgIGlmICghaXNFbXB0eUlubGluZShwYXJlbnRB
c1JlbmRlcklubGluZSkpIHsKLSAgICAgICAgICAgIGlmIChzdGFydCAmJiBzaG91bGRBZGRCb3Jk
ZXJQYWRkaW5nTWFyZ2luKHByZXZpb3VzSW5GbG93U2libGluZyhjaGlsZCksIHN0YXJ0KSkKKyAg
ICAgICAgICAgIGNoZWNrU3RhcnRFZGdlID0gY2hlY2tTdGFydEVkZ2UgJiYgc2hvdWxkQWRkQm9y
ZGVyUGFkZGluZ01hcmdpbihwcmV2aW91c0luRmxvd1NpYmxpbmcoY2hpbGQpKTsKKyAgICAgICAg
ICAgIGlmIChjaGVja1N0YXJ0RWRnZSkKICAgICAgICAgICAgICAgICBleHRyYVdpZHRoICs9IGJv
cmRlclBhZGRpbmdNYXJnaW5TdGFydChwYXJlbnRBc1JlbmRlcklubGluZSk7Ci0gICAgICAgICAg
ICBpZiAoZW5kICYmIHNob3VsZEFkZEJvcmRlclBhZGRpbmdNYXJnaW4oY2hpbGQtPm5leHRTaWJs
aW5nKCksIGVuZCkpCisgICAgICAgICAgICBjaGVja0VuZEVkZ2UgPSBjaGVja0VuZEVkZ2UgJiYg
c2hvdWxkQWRkQm9yZGVyUGFkZGluZ01hcmdpbihjaGlsZC0+bmV4dFNpYmxpbmcoKSk7CisgICAg
ICAgICAgICBpZiAoY2hlY2tFbmRFZGdlKQogICAgICAgICAgICAgICAgIGV4dHJhV2lkdGggKz0g
Ym9yZGVyUGFkZGluZ01hcmdpbkVuZChwYXJlbnRBc1JlbmRlcklubGluZSk7Ci0gICAgICAgICAg
ICBpZiAoIXN0YXJ0ICYmICFlbmQpCisgICAgICAgICAgICBpZiAoIWNoZWNrU3RhcnRFZGdlICYm
ICFjaGVja0VuZEVkZ2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGV4dHJhV2lkdGg7CiAgICAg
ICAgIH0KICAgICAgICAgY2hpbGQgPSBwYXJlbnQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>