<?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>88957</bug_id>
          
          <creation_ts>2012-06-12 22:13:13 -0700</creation_ts>
          <short_desc>ARMv7 should support spinlocks</short_desc>
          <delta_ts>2012-06-14 13:18:32 -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>New Bugs</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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>647677</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-12 22:13:13 -0700</bug_when>
    <thetext>ARMv7 should support spinlocks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647684</commentid>
    <comment_count>1</comment_count>
      <attachid>147228</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-12 22:19:19 -0700</bug_when>
    <thetext>Created attachment 147228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647689</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 22:22:23 -0700</bug_when>
    <thetext>Attachment 147228 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/At...&quot; exit_code: 1
Source/WTF/wtf/TCSpinLock.h:44:  TCMalloc_SlowLock is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/TCSpinLock.h:48:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/TCSpinLock.h:54:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/TCSpinLock.h:70:  lockword_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/TCSpinLock.h:75:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/TCSpinLock.h:75:  TCMalloc_SlowLock is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/TCSpinLock.h:76:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/TCSpinLock.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 8 in 4 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>647720</commentid>
    <comment_count>3</comment_count>
      <attachid>147228</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-06-12 23:09:20 -0700</bug_when>
    <thetext>Comment on attachment 147228
Patch

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

Looks OK to me.

Seems like an even better approach would be to make our own spin lock in WTF and then have TCMalloc_SpinLock be a thin cover on that to try to avoid this mix of TCMalloc code in a different style with our own original WTF code. I assume it would be better for reuse as well.

But this patch seems fine to land as-is.

&gt; Source/WTF/wtf/Platform.h:1073
&gt; -#if !defined(ENABLE_COMPARE_AND_SWAP) &amp;&amp; COMPILER(GCC) &amp;&amp; (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2))
&gt; +#if !defined(ENABLE_COMPARE_AND_SWAP) &amp;&amp; (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2))
&gt;  #define ENABLE_COMPARE_AND_SWAP 1
&gt;  #endif

The comment about this change says “enable on Windows”, but the code change says “enable on all non-GCC compilers”. Which do you want to do?

&gt;&gt; Source/WTF/wtf/TCSpinLock.h:48
&gt;&gt; +    inline void Lock() {
&gt; 
&gt; Place brace on its own line for function definitions.  [whitespace/braces] [4]

Since you changed the indenting, you could also remove the needless “inline” that does nothing here. Hard to know how much to leave this like the original code.

&gt; Source/WTF/wtf/TCSpinLock.h:51
&gt; +      if (!WTF::weakCompareAndSwap(&amp;lockword_, 0, 1))
&gt; +        TCMalloc_SlowLock(&amp;lockword_);
&gt; +      WTF::memoryBarrierAfterLock();

Given the WTF approach to namespaces, normally we need the WTF prefix only if we forgot some using statements in the header. Ideally we would pick a consistent style instead of mixing styles.

&gt;&gt; Source/WTF/wtf/TCSpinLock.h:54
&gt;&gt; +    inline void Unlock() {
&gt; 
&gt; Place brace on its own line for function definitions.  [whitespace/braces] [4]

Same comment about inline.

&gt; Source/WTF/wtf/TCSpinLock.h:55
&gt; +      WTF::memoryBarrierBeforeUnlock();

Same comment about WTF.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647967</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-13 06:30:03 -0700</bug_when>
    <thetext>&gt; Given the WTF approach to namespaces, normally we need the WTF prefix only if we forgot some using statements in the header. Ideally we would pick a consistent style instead of mixing styles.

Should the WTF file &quot;export&quot; its functions with using declarations, or should the spin lock file &quot;import&quot; WTF functions with a &quot;using namespace WTF&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648109</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-13 09:14:15 -0700</bug_when>
    <thetext>&gt; Seems like an even better approach would be to make our own spin lock in WTF

Yes, this is better. I will refactor to this eventually. Thinking about memory ordering and adding files to our many different build systems at the same time was too much for my feeble mind.

&gt; &gt; Source/WTF/wtf/Platform.h:1073
&gt; &gt; -#if !defined(ENABLE_COMPARE_AND_SWAP) &amp;&amp; COMPILER(GCC) &amp;&amp; (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2))
&gt; &gt; +#if !defined(ENABLE_COMPARE_AND_SWAP) &amp;&amp; (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2))
&gt; &gt;  #define ENABLE_COMPARE_AND_SWAP 1
&gt; &gt;  #endif
&gt; 
&gt; The comment about this change says “enable on Windows”, but the code change says “enable on all non-GCC compilers”. Which do you want to do?

Updated to list windows and then GCC+platforms.

&gt; &gt;&gt; Source/WTF/wtf/TCSpinLock.h:48
&gt; &gt;&gt; +    inline void Lock() {
&gt; &gt; 
&gt; &gt; Place brace on its own line for function definitions.  [whitespace/braces] [4]
&gt; 
&gt; Since you changed the indenting, you could also remove the needless “inline” that does nothing here. Hard to know how much to leave this like the original code.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649418</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-14 13:18:32 -0700</bug_when>
    <thetext>Committed r120356: &lt;http://trac.webkit.org/changeset/120356&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147228</attachid>
            <date>2012-06-12 22:19:19 -0700</date>
            <delta_ts>2012-06-12 23:09:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88957-20120612221919.patch</filename>
            <type>text/plain</type>
            <size>7644</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMjAxNjApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA2LTEyICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgQVJNdjcgc2hvdWxkIHN1cHBvcnQgc3BpbmxvY2tz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODk1Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vcmUgaW5m
byBAIGh0dHA6Ly9pbmZvY2VudGVyLmFybS5jb20vaGVscC90b3BpYy8KKyAgICAgICAgY29tLmFy
bS5kb2MuZ2VuYzAwNzgyNi9CYXJyaWVyX0xpdG11c19UZXN0c19hbmRfQ29va2Jvb2tfQTA4LnBk
ZgorCisgICAgICAgICogd3RmL0F0b21pY3MuaDoKKyAgICAgICAgKFdURjo6bWVtb3J5QmFycmll
ckFmdGVyTG9jayk6CisgICAgICAgIChXVEY6Om1lbW9yeUJhcnJpZXJCZWZvcmVVbmxvY2spOiBB
ZGRlZCBtZW1vcnkgYmFycmllciBwcmltaXRpdmVzIHNpbmNlCisgICAgICAgIEFSTXY3IGhhcyBh
IHdlYWtseSBvcmRlcmVkIG1lbW9yeSBtb2RlbC4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5o
OiBFbmFibGVkIGNvbXBhcmUtYW5kLXN3YXAgb24gV2luZG93cyBzbyBvdXIgc3BpbmxvY2sKKyAg
ICAgICAgaW1wbGVtZW50YXRpb24gd291bGQgY29udGludWUgd29ya2luZyBvbiBXaW5kb3dzLgor
CisgICAgICAgICogd3RmL1RDU3BpbkxvY2suaDoKKyAgICAgICAgKFRDTWFsbG9jX1NwaW5Mb2Nr
OjpMb2NrKToKKyAgICAgICAgKFRDTWFsbG9jX1NwaW5Mb2NrOjpVbmxvY2spOgorICAgICAgICAo
VENNYWxsb2NfU3BpbkxvY2spOiBVc2Ugb3VyIGNvbXBhcmUtYW5kLXN3YXAgaGVscGVyIGZ1bmN0
aW9uIHRvIGF2b2lkCisgICAgICAgIHJld3JpdGluZyBpdCBpbiBhc3NlbWJseSBoZXJlLgorCisg
ICAgICAgIEFkZGVkIG1lbW9yeSBiYXJyaWVycyBzaW5jZSBBUk12NyBuZWVkcyB0aGVtLgorCisg
ICAgICAgIFJlbW92ZWQgUFBDIHN1cHBvcnQgYmVjYXVzZSBvdXIgaGVscGVyIGZ1bmN0aW9uIGRv
ZXNuJ3Qgc3VwcG9ydCBQUEMuCisKIDIwMTItMDYtMTIgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVu
QGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IHRoZSBidWlsZC4KSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL0F0b21pY3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9BdG9taWNz
LmgJKHJldmlzaW9uIDEyMDE0OCkKKysrIFNvdXJjZS9XVEYvd3RmL0F0b21pY3MuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjA2LDYgKzIwNiwyNSBAQCBpbmxpbmUgYm9vbCB3ZWFrQ29tcGFyZUFuZFN3
YXBVSW50UHRyKHZvCiAgICAgcmV0dXJuIHdlYWtDb21wYXJlQW5kU3dhcChyZWludGVycHJldF9j
YXN0PHZvaWQqdm9sYXRpbGUqPihsb2NhdGlvbiksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGV4
cGVjdGVkKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obmV3VmFsdWUpKTsKIH0KIAorI2lmIENQ
VShBUk1fVEhVTUIyKQorCitpbmxpbmUgdm9pZCBtZW1vcnlCYXJyaWVyQWZ0ZXJMb2NrKCkKK3sK
KyAgICBhc20gdm9sYXRpbGUoImRtYiIgOjo6ICJtZW1vcnkiKTsKK30KKworaW5saW5lIHZvaWQg
bWVtb3J5QmFycmllckJlZm9yZVVubG9jaygpCit7CisgICAgYXNtIHZvbGF0aWxlKCJkbWIiIDo6
OiAibWVtb3J5Iik7Cit9CisKKyNlbHNlCisKK2lubGluZSB2b2lkIG1lbW9yeUJhcnJpZXJBZnRl
ckxvY2soKSB7IH0KK2lubGluZSB2b2lkIG1lbW9yeUJhcnJpZXJCZWZvcmVVbmxvY2soKSB7IH0K
KworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiAjaWYgVVNFKExPQ0tGUkVFX1RIUkVB
RFNBRkVSRUZDT1VOVEVEKQpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxMjAxNDgpCisrKyBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDY4LDcgKzEwNjgs
NyBAQAogI2RlZmluZSBXVEZfVVNFX1VOSVhfRE9NQUlOX1NPQ0tFVFMgMQogI2VuZGlmCiAKLSNp
ZiAhZGVmaW5lZChFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCkgJiYgQ09NUElMRVIoR0NDKSAmJiAo
Q1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpKQorI2lmICFkZWZpbmVk
KEVOQUJMRV9DT01QQVJFX0FORF9TV0FQKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwg
Q1BVKEFSTV9USFVNQjIpKQogI2RlZmluZSBFTkFCTEVfQ09NUEFSRV9BTkRfU1dBUCAxCiAjZW5k
aWYKIApJbmRleDogU291cmNlL1dURi93dGYvVENTcGluTG9jay5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL1RDU3BpbkxvY2suaAkocmV2aXNpb24gMTIwMTQ4KQorKysgU291cmNlL1dU
Ri93dGYvVENTcGluTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4NCArMzQsMjggQEAKICNp
Zm5kZWYgVENNQUxMT0NfSU5URVJOQUxfU1BJTkxPQ0tfSF9fCiAjZGVmaW5lIFRDTUFMTE9DX0lO
VEVSTkFMX1NQSU5MT0NLX0hfXwogCi0jaWYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQ
VShQUEMpKSAmJiAoQ09NUElMRVIoR0NDKSB8fCBDT01QSUxFUihNU1ZDKSkKLQotI2luY2x1ZGUg
PHN0ZGludC5oPgotI2luY2x1ZGUgPHRpbWUuaD4gICAgICAgLyogRm9yIG5hbm9zbGVlcCgpICov
Ci0KLSNpZiBPUyhXSU5ET1dTKQotI2lmbmRlZiBXSU4zMl9MRUFOX0FORF9NRUFOCi0jZGVmaW5l
IFdJTjMyX0xFQU5fQU5EX01FQU4KLSNlbmRpZgotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNlbHNl
Ci0jaW5jbHVkZSA8c2NoZWQuaD4gICAgICAvKiBGb3Igc2NoZWRfeWllbGQoKSAqLworI2luY2x1
ZGUgPHd0Zi9BdG9taWNzLmg+CisjaWYgT1MoVU5JWCkKKyNpbmNsdWRlIDxzY2hlZC5oPgogI2Vu
ZGlmCiAKLXN0YXRpYyB2b2lkIFRDTWFsbG9jX1Nsb3dMb2NrKHZvbGF0aWxlIHVuc2lnbmVkIGlu
dCogbG9ja3dvcmQpOworI2lmIEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQorCitzdGF0aWMgdm9p
ZCBUQ01hbGxvY19TbG93TG9jayh1bnNpZ25lZCogbG9ja3dvcmQpOwogCiAvLyBUaGUgZm9sbG93
aW5nIGlzIGEgc3RydWN0IHNvIHRoYXQgaXQgY2FuIGJlIGluaXRpYWxpemVkIGF0IGNvbXBpbGUg
dGltZQogc3RydWN0IFRDTWFsbG9jX1NwaW5Mb2NrIHsKKyAgICBpbmxpbmUgdm9pZCBMb2NrKCkg
eworICAgICAgaWYgKCFXVEY6OndlYWtDb21wYXJlQW5kU3dhcCgmbG9ja3dvcmRfLCAwLCAxKSkK
KyAgICAgICAgVENNYWxsb2NfU2xvd0xvY2soJmxvY2t3b3JkXyk7CisgICAgICBXVEY6Om1lbW9y
eUJhcnJpZXJBZnRlckxvY2soKTsKKyAgICB9CiAKLSAgaW5saW5lIHZvaWQgTG9jaygpIHsKLSAg
ICBpbnQgcjsKLSNpZiBDT01QSUxFUihHQ0MpCi0jaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkK
LSAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXwotICAgICAgKCJ4Y2hnbCAlMCwgJTEiCi0gICAgICAg
OiAiPXIiKHIpLCAiPW0iKGxvY2t3b3JkXykKLSAgICAgICA6ICIwIigxKSwgIm0iKGxvY2t3b3Jk
XykKLSAgICAgICA6ICJtZW1vcnkiKTsKLSNlbHNlCi0gICAgdm9sYXRpbGUgdW5zaWduZWQgaW50
ICpsb2Nrd29yZF9wdHIgPSAmbG9ja3dvcmRfOwotICAgIF9fYXNtX18gX192b2xhdGlsZV9fCi0g
ICAgICAgICgiMTogbHdhcnggJTAsIDAsICUxXG5cdCIKLSAgICAgICAgICJzdHdjeC4gJTIsIDAs
ICUxXG5cdCIKLSAgICAgICAgICJibmUtIDFiXG5cdCIKLSAgICAgICAgICJpc3luYyIKLSAgICAg
ICAgIDogIj0mciIgKHIpLCAiPXIiIChsb2Nrd29yZF9wdHIpCi0gICAgICAgICA6ICJyIiAoMSks
ICIxIiAobG9ja3dvcmRfcHRyKQotICAgICAgICAgOiAibWVtb3J5Iik7Ci0jZW5kaWYKLSNlbGlm
IENPTVBJTEVSKE1TVkMpCi0gICAgX19hc20gewotICAgICAgICBtb3YgZWF4LCB0aGlzICAgIDsg
c3RvcmUgJmxvY2t3b3JkXyAod2hpY2ggaXMgdGhpcyswKSBpbiBlYXgKLSAgICAgICAgbW92IGVi
eCwgMSAgICAgICA7IHN0b3JlIDEgaW4gZWJ4Ci0gICAgICAgIHhjaGcgW2VheF0sIGVieCAgOyBl
eGNoYW5nZSBsb2Nrd29yZF8gYW5kIDEKLSAgICAgICAgbW92IHIsIGVieCAgICAgICA7IHN0b3Jl
IG9sZCB2YWx1ZSBvZiBsb2Nrd29yZF8gaW4gcgorICAgIGlubGluZSB2b2lkIFVubG9jaygpIHsK
KyAgICAgIFdURjo6bWVtb3J5QmFycmllckJlZm9yZVVubG9jaygpOworICAgICAgbG9ja3dvcmRf
ID0gMDsKICAgICB9Ci0jZW5kaWYKLSAgICBpZiAocikgVENNYWxsb2NfU2xvd0xvY2soJmxvY2t3
b3JkXyk7Ci0gIH0KIAotICBpbmxpbmUgdm9pZCBVbmxvY2soKSB7Ci0jaWYgQ09NUElMRVIoR0ND
KQotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCi0gICAgX19hc21fXyBfX3ZvbGF0aWxlX18K
LSAgICAgICgibW92bCAkMCwgJTAiCi0gICAgICAgOiAiPW0iKGxvY2t3b3JkXykKLSAgICAgICA6
ICJtIiAobG9ja3dvcmRfKQotICAgICAgIDogIm1lbW9yeSIpOwotI2Vsc2UKLSAgICBfX2FzbV9f
IF9fdm9sYXRpbGVfXwotICAgICAgKCJpc3luY1xuXHQiCi0gICAgICAgImVpZWlvXG5cdCIKLSAg
ICAgICAic3R3ICUxLCAlMCIKLSNpZiBPUyhEQVJXSU4pIHx8IENQVShQUEMpCi0gICAgICAgOiAi
PW8iIChsb2Nrd29yZF8pCi0jZWxzZQotICAgICAgIDogIj1tIiAobG9ja3dvcmRfKSAKLSNlbmRp
ZgotICAgICAgIDogInIiICgwKQotICAgICAgIDogIm1lbW9yeSIpOwotI2VuZGlmCi0jZWxpZiBD
T01QSUxFUihNU1ZDKQotICAgICAgX19hc20gewotICAgICAgICAgIG1vdiBlYXgsIHRoaXMgIDsg
c3RvcmUgJmxvY2t3b3JkXyAod2hpY2ggaXMgdGhpcyswKSBpbiBlYXgKLSAgICAgICAgICBtb3Yg
W2VheF0sIDAgICA7IHNldCBsb2Nrd29yZF8gdG8gMAotICAgICAgfQotI2VuZGlmCi0gIH0KICAg
ICAvLyBSZXBvcnQgaWYgd2UgdGhpbmsgdGhlIGxvY2sgY2FuIGJlIGhlbGQgYnkgdGhpcyB0aHJl
YWQuCiAgICAgLy8gV2hlbiB0aGUgbG9jayBpcyB0cnVseSBoZWxkIGJ5IHRoZSBpbnZva2luZyB0
aHJlYWQKICAgICAvLyB3ZSB3aWxsIGFsd2F5cyByZXR1cm4gdHJ1ZS4KQEAgLTEyMyw5MSArNjcs
MjAgQEAgc3RydWN0IFRDTWFsbG9jX1NwaW5Mb2NrIHsKICAgICBpbmxpbmUgdm9pZCBJbml0KCkg
eyBsb2Nrd29yZF8gPSAwOyB9CiAgICAgaW5saW5lIHZvaWQgRmluYWxpemUoKSB7IH0KIAotICAg
IHZvbGF0aWxlIHVuc2lnbmVkIGludCBsb2Nrd29yZF87CisgICAgdW5zaWduZWQgbG9ja3dvcmRf
OwogfTsKIAogI2RlZmluZSBTUElOTE9DS19JTklUSUFMSVpFUiB7IDAgfQogCi1zdGF0aWMgdm9p
ZCBUQ01hbGxvY19TbG93TG9jayh2b2xhdGlsZSB1bnNpZ25lZCBpbnQqIGxvY2t3b3JkKSB7Ci0g
IHdoaWxlICh0cnVlKSB7Ci0gICAgLy8gWWllbGQgaW1tZWRpYXRlbHkgc2luY2UgZmFzdCBwYXRo
IGZhaWxlZAorc3RhdGljIHZvaWQgVENNYWxsb2NfU2xvd0xvY2sodW5zaWduZWQqIGxvY2t3b3Jk
KSB7CisgIGRvIHsKICNpZiBPUyhXSU5ET1dTKQogICAgIFNsZWVwKDApOwogI2Vsc2UKICAgICBz
Y2hlZF95aWVsZCgpOwogI2VuZGlmCiAKLSAgICBpbnQgcjsKLSNpZiBDT01QSUxFUihHQ0MpCi0j
aWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKLSAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXwotICAg
ICAgKCJ4Y2hnbCAlMCwgJTEiCi0gICAgICAgOiAiPXIiKHIpLCAiPW0iKCpsb2Nrd29yZCkKLSAg
ICAgICA6ICIwIigxKSwgIm0iKCpsb2Nrd29yZCkKLSAgICAgICA6ICJtZW1vcnkiKTsKLQotI2Vs
c2UKLSAgICBpbnQgdG1wID0gMTsKLSAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXwotICAgICAgICAo
IjE6IGx3YXJ4ICUwLCAwLCAlMVxuXHQiCi0gICAgICAgICAic3R3Y3guICUyLCAwLCAlMVxuXHQi
Ci0gICAgICAgICAiYm5lLSAxYlxuXHQiCi0gICAgICAgICAiaXN5bmMiCi0gICAgICAgICA6ICI9
JnIiIChyKSwgIj1yIiAobG9ja3dvcmQpCi0gICAgICAgICA6ICJyIiAodG1wKSwgIjEiIChsb2Nr
d29yZCkKLSAgICAgICAgIDogIm1lbW9yeSIpOwotI2VuZGlmCi0jZWxpZiBDT01QSUxFUihNU1ZD
KQotICAgIF9fYXNtIHsKLSAgICAgICAgbW92IGVheCwgbG9ja3dvcmQgICAgIDsgYXNzaWduIGxv
Y2t3b3JkIGludG8gZWF4Ci0gICAgICAgIG1vdiBlYngsIDEgICAgICAgICAgICA7IGFzc2lnbiAx
IGludG8gZWJ4Ci0gICAgICAgIHhjaGcgW2VheF0sIGVieCAgICAgICA7IGV4Y2hhbmdlICpsb2Nr
d29yZCBhbmQgMQotICAgICAgICBtb3YgciwgZWJ4ICAgICAgICAgICAgOyBzdG9yZSBvbGQgdmFs
dWUgb2YgKmxvY2t3b3JkIGluIHIKLSAgICB9Ci0jZW5kaWYKLSAgICBpZiAoIXIpIHsKLSAgICAg
IHJldHVybjsKLSAgICB9Ci0gIH0KLX0KLQotI2VsaWYgT1MoV0lORE9XUykKLQotI2lmbmRlZiBX
SU4zMl9MRUFOX0FORF9NRUFOCi0jZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4KLSNlbmRpZgot
I2luY2x1ZGUgPHdpbmRvd3MuaD4KLQotc3RhdGljIHZvaWQgVENNYWxsb2NfU2xvd0xvY2soTFBM
T05HIGxvY2t3b3JkKTsKLQotLy8gVGhlIGZvbGxvd2luZyBpcyBhIHN0cnVjdCBzbyB0aGF0IGl0
IGNhbiBiZSBpbml0aWFsaXplZCBhdCBjb21waWxlIHRpbWUKLXN0cnVjdCBUQ01hbGxvY19TcGlu
TG9jayB7Ci0KLSAgICBpbmxpbmUgdm9pZCBMb2NrKCkgewotICAgICAgICBpZiAoSW50ZXJsb2Nr
ZWRFeGNoYW5nZSgmbV9sb2Nrd29yZCwgMSkpCi0gICAgICAgICAgICBUQ01hbGxvY19TbG93TG9j
aygmbV9sb2Nrd29yZCk7Ci0gICAgfQotCi0gICAgaW5saW5lIHZvaWQgVW5sb2NrKCkgewotICAg
ICAgICBJbnRlcmxvY2tlZEV4Y2hhbmdlKCZtX2xvY2t3b3JkLCAwKTsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgYm9vbCBJc0hlbGQoKSBjb25zdCB7Ci0gICAgICAgIHJldHVybiBtX2xvY2t3b3JkICE9
IDA7Ci0gICAgfQotCi0gICAgaW5saW5lIHZvaWQgSW5pdCgpIHsgbV9sb2Nrd29yZCA9IDA7IH0K
LSAgICBpbmxpbmUgdm9pZCBGaW5hbGl6ZSgpIHsgfQotCi0gICAgTE9ORyBtX2xvY2t3b3JkOwot
fTsKLQotI2RlZmluZSBTUElOTE9DS19JTklUSUFMSVpFUiB7IDAgfQotCi1zdGF0aWMgdm9pZCBU
Q01hbGxvY19TbG93TG9jayhMUExPTkcgbG9ja3dvcmQpIHsKLSAgICBTbGVlcCgwKTsgICAgICAg
IC8vIFlpZWxkIGltbWVkaWF0ZWx5IHNpbmNlIGZhc3QgcGF0aCBmYWlsZWQKLSAgICB3aGlsZSAo
SW50ZXJsb2NrZWRFeGNoYW5nZShsb2Nrd29yZCwgMSkpCi0gICAgICAgIFNsZWVwKDIpOworICB9
IHdoaWxlICghV1RGOjp3ZWFrQ29tcGFyZUFuZFN3YXAobG9ja3dvcmQsIDAsIDEpKTsKIH0KIAog
I2Vsc2UK
</data>
<flag name="review"
          id="154697"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>