<?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>107577</bug_id>
          
          <creation_ts>2013-01-22 12:06:31 -0800</creation_ts>
          <short_desc>Prevent race condition during Worker shutdown</short_desc>
          <delta_ts>2013-01-22 15:47:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>benjamin</cc>
    
    <cc>dimich</cc>
    
    <cc>levin+threading</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>813295</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-22 12:06:31 -0800</bug_when>
    <thetext>Prevent race condition during Worker shutdown</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813302</commentid>
    <comment_count>1</comment_count>
      <attachid>184031</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-22 12:14:46 -0800</bug_when>
    <thetext>Created attachment 184031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813417</commentid>
    <comment_count>2</comment_count>
      <attachid>184031</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-01-22 14:31:38 -0800</bug_when>
    <thetext>Comment on attachment 184031
Patch

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

Patch looks fine, but there are a few stylistic issues worth fixing. review- to fix those

No need to have me be the one who reviews next time around.

&gt; Source/WTF/ChangeLog:14
&gt; +        (MessageQueue):
&gt; +        (WTF):
&gt; +        (WTF::::appendAndKill):

All three of these lines look bogus. Please fix them if the script generates something that looks like nonsense. Per-function comments are even better.

&gt; Source/WebCore/ChangeLog:19
&gt; +        (WorkerRunLoop):

Please remove this bogus line.

&gt; Source/WebCore/workers/WorkerRunLoop.h:64
&gt; +        void postTask(PassOwnPtr&lt;ScriptExecutionContext::Task&gt;, bool terminate = false);
&gt; +        void postTaskForMode(PassOwnPtr&lt;ScriptExecutionContext::Task&gt;, const String&amp; mode, bool terminate = false);

I’m not sure that a boolean or enum here is superior to a separate postTaskAndTerminate function. It seems that a separate function will work just fine:

    void postTaskAndTerminate(PassOwnPtr&lt;ScriptExecutionContext::Task&gt; task)
    {
        m_messageQueue.appendAndKill(Task::create(task, defaultMode().isolatedCopy()));
    }

No reason to touch these existing functions at all.

&gt; Source/WebCore/workers/WorkerThread.cpp:275
&gt; +        const bool terminate = true;
&gt; +        m_runLoop.postTask(WorkerThreadShutdownStartTask::create(), terminate);

This named boolean argument idiom is not what we use for things like this in WebKit; it’s too easy for it to be wrong or get out of sync with the function we are calling. Instead we use enums, which is a perfect fit here. We can and should define an enum in WorkerRunLoop.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813432</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-22 14:46:17 -0800</bug_when>
    <thetext>Thanks, darin@. Seemingly contradictory advice...

(In reply to comment #2)
&gt; No reason to touch these existing functions at all.

vs. 

&gt; We can and should define an enum in WorkerRunLoop.h.

.. but I went with adding postTaskAndTerminate() since that seems the clearest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813441</commentid>
    <comment_count>4</comment_count>
      <attachid>184052</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-22 14:50:00 -0800</bug_when>
    <thetext>Created attachment 184052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813483</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-22 15:35:46 -0800</bug_when>
    <thetext>r+ anyone?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813497</commentid>
    <comment_count>6</comment_count>
      <attachid>184052</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 15:47:14 -0800</bug_when>
    <thetext>Comment on attachment 184052
Patch

Clearing flags on attachment: 184052

Committed r140483: &lt;http://trac.webkit.org/changeset/140483&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813498</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 15:47:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184031</attachid>
            <date>2013-01-22 12:14:46 -0800</date>
            <delta_ts>2013-01-22 14:49:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107577-20130122121140.patch</filename>
            <type>text/plain</type>
            <size>6151</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhjMGI4ZTU5NmI0MTJkOTllNGU5ZTU1
YjMxNjFiZTg5ZmE2ZjcxMzAuLjVjNTg5MDk5ODYxYTgzOGMzMDY0MzQ3NWUwZTNlMDc3OWI4Yzlk
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDEtMjIgIEpvc2h1YSBCZWxsICA8anNiZWxs
QGNocm9taXVtLm9yZz4KKworICAgICAgICBQcmV2ZW50IHJhY2UgY29uZGl0aW9uIGR1cmluZyBX
b3JrZXIgc2h1dGRvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNzU3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBNZXNzYWdlUXVldWU6OmFwcGVuZEFuZEtpbGwoKSB3aGljaCB3cmFwcyB0aG9z
ZSB0d28gc3RlcHMgd2l0aCBhIG11dGV4IHNvIG90aGVyCisgICAgICAgIHRocmVhZHMgY2FuJ3Qg
c25lYWsgYSBtZXNzYWdlIGluIGJldHdlZW4uCisKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVl
Lmg6CisgICAgICAgIChNZXNzYWdlUXVldWUpOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdU
Rjo6OjphcHBlbmRBbmRLaWxsKToKKwogMjAxMy0wMS0xOCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fi
b2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBpc1Bvd2VyT2YyKCkgYW5kIGFkZCBn
ZXRMU0JTZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDkxMTk2NWNjNTg1NzI4YWViMDA5ODVkY2ZlNjEwOWRj
YjRlOTljMDAuLmVhNThlNzk3NGEwODlmMmIyNWM3ZjcyZDE2MjQwYWUzMDJkYzVhY2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMS0yMiAgSm9zaHVhIEJlbGwgIDxqc2JlbGxA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFByZXZlbnQgcmFjZSBjb25kaXRpb24gZHVyaW5nIFdv
cmtlciBzaHV0ZG93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3NTc3CisKKyAgICAgICAgRHVyaW5nIHdvcmtlciBzaHV0ZG93biwgZnJvbSB0aGUg
bWFpbiB0aHJlYWQgYSBjbGVhbnVwIHRhc2sgaXMgcG9zdGVkIGZvbGxvd2VkIGJ5CisgICAgICAg
IHRlcm1pbmF0aW5nIHRoZSBtZXNzYWdlIHF1ZXVlLCB3aGljaCBwcmV2ZW50cyBmdXJ0aGVyIHRh
c2tzIGZyb20gYmVpbmcgcHJvY2Vzc2VkLiBJdCB3YXMKKyAgICAgICAgcG9zc2libGUgZm9yIGFu
b3RoZXIgdGFzayBiZSBwb3N0ZWQgYnkgYW5vdGhlciB0aHJlYWQgYmV0d2VlbiB0aGUgbWFpbiB0
aHJlYWQgY2FsbHMKKyAgICAgICAgdG8gcG9zdFRhc2sgYW5kIHRlcm1pbmF0ZSgpLCB3aGljaCB3
b3VsZCBjYXVzZSB0aGF0IHRhc2sgdG8gcnVuIGFmdGVyIGNsZWFudXAuIEV4cG9zZQorICAgICAg
ICBhIG5ldyBXVEY6Ok1lc3NhZ2VRdWV1ZTo6YXBwZW5kQW5kS2lsbCgpIG1ldGhvZCB3aGljaCBr
ZWVwcyBhIG11dGV4IGFyb3VuZCB0aGUgdHdvIHN0ZXBzLAorICAgICAgICBhbmQgdXNlIHRoYXQg
ZHVyaW5nIHdvcmtlciBzaHV0ZG93bi4KKworICAgICAgICBObyByZWxpYWJsZSB0ZXN0cyBmb3Ig
dGhlIHJhY2UgLSBwcm9ibGVtIGlkZW50aWZpZWQgYnkgaW5zcGVjdGlvbiBvZiB1c2VyIGNyYXNo
IHN0YWNrcy4KKworICAgICAgICAqIHdvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjpwb3N0VGFzayk6IEFkZCB0ZXJtaW5hdGUgZmxhZy4K
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bkxvb3A6OnBvc3RUYXNrRm9yTW9kZSk6IElmIHRl
cm1pbmF0ZSwgdXNlIGFwcGVuZEFuZEtpbGwoKQorICAgICAgICAqIHdvcmtlcnMvV29ya2VyUnVu
TG9vcC5oOgorICAgICAgICAoV29ya2VyUnVuTG9vcCk6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpzdG9wKTogVXNl
IHRlcm1pbmF0ZSBmbGFnLgorCiAyMDEzLTAxLTE4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXdvcmsgTmV0d29ya1Byb2Nlc3MgcmVzb3VyY2UgbG9hZCBp
ZGVudGlmaWVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIGIv
U291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmgKaW5kZXggZGRhODUyZmUxMjY0ZWZiMmZmYTNm
YzVhN2NjMGU2NjBkODg5ZWY4NC4uNGYxOWFlZDUwZDFkYjczODgwYTVjYWQxZGFjMDJkMzdkN2Nk
NzgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmgKKysrIGIvU291
cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmgKQEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdU
RiB7CiAgICAgICAgIH5NZXNzYWdlUXVldWUoKTsKIAogICAgICAgICB2b2lkIGFwcGVuZChQYXNz
T3duUHRyPERhdGFUeXBlPik7CisgICAgICAgIHZvaWQgYXBwZW5kQW5kS2lsbChQYXNzT3duUHRy
PERhdGFUeXBlPik7CiAgICAgICAgIGJvb2wgYXBwZW5kQW5kQ2hlY2tFbXB0eShQYXNzT3duUHRy
PERhdGFUeXBlPik7CiAgICAgICAgIHZvaWQgcHJlcGVuZChQYXNzT3duUHRyPERhdGFUeXBlPik7
CiAKQEAgLTk4LDYgKzk5LDE1IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBtX2NvbmRpdGlv
bi5zaWduYWwoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KKyAg
ICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjphcHBlbmRBbmRLaWxsKFBhc3NP
d25QdHI8RGF0YVR5cGU+IG1lc3NhZ2UpCisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2Nr
KG1fbXV0ZXgpOworICAgICAgICBtX3F1ZXVlLmFwcGVuZChtZXNzYWdlLmxlYWtQdHIoKSk7Cisg
ICAgICAgIG1fa2lsbGVkID0gdHJ1ZTsKKyAgICAgICAgbV9jb25kaXRpb24uYnJvYWRjYXN0KCk7
CisgICAgfQorCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBxdWV1ZSB3YXMgZW1wdHkgYmVm
b3JlIHRoZSBpdGVtIHdhcyBhZGRlZC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4K
ICAgICBpbmxpbmUgYm9vbCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjphcHBlbmRBbmRDaGVja0Vt
cHR5KFBhc3NPd25QdHI8RGF0YVR5cGU+IG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJSdW5Mb29wLmNwcAppbmRleCBlYjY2NWQyNmI4MWY2ZjBlNTM0ZGNlZWY2Y2M0NzYwODY0
NGM1YWEwLi44NjVjYjYxZTNhZjcyOTliOGZjYTY4NTkwMGQxOGYzZGRkYTg5YjQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKQEAgLTE5NiwxNCArMTk2LDE3IEBA
IHZvaWQgV29ya2VyUnVuTG9vcDo6dGVybWluYXRlKCkKICAgICBtX21lc3NhZ2VRdWV1ZS5raWxs
KCk7CiB9CiAKLXZvaWQgV29ya2VyUnVuTG9vcDo6cG9zdFRhc2soUGFzc093blB0cjxTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNrKQordm9pZCBXb3JrZXJSdW5Mb29wOjpwb3N0VGFz
ayhQYXNzT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IHRhc2ssIGJvb2wgdGVy
bWluYXRlKQogewotICAgIHBvc3RUYXNrRm9yTW9kZSh0YXNrLCBkZWZhdWx0TW9kZSgpKTsKKyAg
ICBwb3N0VGFza0Zvck1vZGUodGFzaywgZGVmYXVsdE1vZGUoKSwgdGVybWluYXRlKTsKIH0KIAot
dm9pZCBXb3JrZXJSdW5Mb29wOjpwb3N0VGFza0Zvck1vZGUoUGFzc093blB0cjxTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpUYXNrPiB0YXNrLCBjb25zdCBTdHJpbmcmIG1vZGUpCit2b2lkIFdvcmtl
clJ1bkxvb3A6OnBvc3RUYXNrRm9yTW9kZShQYXNzT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OlRhc2s+IHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSwgYm9vbCB0ZXJtaW5hdGUpCiB7Ci0g
ICAgbV9tZXNzYWdlUXVldWUuYXBwZW5kKFRhc2s6OmNyZWF0ZSh0YXNrLCBtb2RlLmlzb2xhdGVk
Q29weSgpKSk7CisgICAgaWYgKCF0ZXJtaW5hdGUpCisgICAgICAgIG1fbWVzc2FnZVF1ZXVlLmFw
cGVuZChUYXNrOjpjcmVhdGUodGFzaywgbW9kZS5pc29sYXRlZENvcHkoKSkpOworICAgIGVsc2UK
KyAgICAgICAgbV9tZXNzYWdlUXVldWUuYXBwZW5kQW5kS2lsbChUYXNrOjpjcmVhdGUodGFzaywg
bW9kZS5pc29sYXRlZENvcHkoKSkpOwogfQogCiBQYXNzT3duUHRyPFdvcmtlclJ1bkxvb3A6OlRh
c2s+IFdvcmtlclJ1bkxvb3A6OlRhc2s6OmNyZWF0ZShQYXNzT3duUHRyPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OlRhc2s+IHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJSdW5Mb29wLmgKaW5kZXggMzkxNmQ2YWM1NzNkNWQ3ZTdlZTRhN2Q1ZWNkNjE4
NzU2YTU2OWE5Zi4uYmEwYjVlN2Q3OTJhNWIxMWVjZTQ1ZDdmMWYyYzYzYjkxNDlmMjA4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKQEAgLTYwLDggKzYwLDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogICAgICAgICBib29s
IHRlcm1pbmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2VRdWV1ZS5raWxsZWQoKTsgfQog
Ci0gICAgICAgIHZvaWQgcG9zdFRhc2soUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrPik7Ci0gICAgICAgIHZvaWQgcG9zdFRhc2tGb3JNb2RlKFBhc3NPd25QdHI8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4sIGNvbnN0IFN0cmluZyYgbW9kZSk7CisgICAgICAgIHZv
aWQgcG9zdFRhc2soUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiwgYm9v
bCB0ZXJtaW5hdGUgPSBmYWxzZSk7CisgICAgICAgIHZvaWQgcG9zdFRhc2tGb3JNb2RlKFBhc3NP
d25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4sIGNvbnN0IFN0cmluZyYgbW9kZSwg
Ym9vbCB0ZXJtaW5hdGUgPSBmYWxzZSk7CiAKICAgICAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVV
bmlxdWVJZCgpIHsgcmV0dXJuICsrbV91bmlxdWVJZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHAKaW5kZXggZWJiM2JmZmJiNmIxZjU3OTQ1MjE3MWZlODE2MGMzMmQ3
NDJmY2M1Mi4uNTU2YTg0M2Y5NTEzNGNjZTVlZWI2MjA2MWE1MDQ4ZjEwMTIwNmUwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMjcxLDcgKzI3MSw5IEBAIHZv
aWQgV29ya2VyVGhyZWFkOjpzdG9wKCkKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQogICAgICAg
ICBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5pbnRlcnJ1cHRBbGxEYXRhYmFzZXNGb3JDb250
ZXh0KG1fd29ya2VyQ29udGV4dC5nZXQoKSk7CiAjZW5kaWYKLSAgICAgICAgbV9ydW5Mb29wLnBv
c3RUYXNrKFdvcmtlclRocmVhZFNodXRkb3duU3RhcnRUYXNrOjpjcmVhdGUoKSk7CisgICAgICAg
IGNvbnN0IGJvb2wgdGVybWluYXRlID0gdHJ1ZTsKKyAgICAgICAgbV9ydW5Mb29wLnBvc3RUYXNr
KFdvcmtlclRocmVhZFNodXRkb3duU3RhcnRUYXNrOjpjcmVhdGUoKSwgdGVybWluYXRlKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX3J1bkxvb3AudGVybWluYXRlKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184052</attachid>
            <date>2013-01-22 14:50:00 -0800</date>
            <delta_ts>2013-01-22 15:47:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107577-20130122144655.patch</filename>
            <type>text/plain</type>
            <size>5429</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhjMGI4ZTU5NmI0MTJkOTllNGU5ZTU1
YjMxNjFiZTg5ZmE2ZjcxMzAuLjQzNzhkNWZiYTBiN2RlMDY3NmY4NzJhNzI0ZjA1ODY2MjA2NDdk
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEtMjIgIEpvc2h1YSBCZWxsICA8anNiZWxs
QGNocm9taXVtLm9yZz4KKworICAgICAgICBQcmV2ZW50IHJhY2UgY29uZGl0aW9uIGR1cmluZyBX
b3JrZXIgc2h1dGRvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNzU3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBNZXNzYWdlUXVldWU6OmFwcGVuZEFuZEtpbGwoKSB3aGljaCB3cmFwcyB0aG9z
ZSB0d28gc3RlcHMgd2l0aCBhIG11dGV4IHNvIG90aGVyCisgICAgICAgIHRocmVhZHMgY2FuJ3Qg
c25lYWsgYSBtZXNzYWdlIGluIGJldHdlZW4uCisKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVl
Lmg6IEFkZGVkIGFwcGVuZEFuZEtpbGwoKSBtZXRob2QuCisKIDIwMTMtMDEtMTggIE1pY2hhZWwg
U2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3IgaXNQb3dlck9m
MigpIGFuZCBhZGQgZ2V0TFNCU2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MTE5NjVjYzU4NTcyOGFlYjAw
OTg1ZGNmZTYxMDlkY2I0ZTk5YzAwLi42YzZiYTEyYzk4ZGM0NmEzMWY5OWI4YTA3MDcwOTdiYzRl
M2QxODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDEtMjIgIEpvc2h1YSBC
ZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcmV2ZW50IHJhY2UgY29uZGl0
aW9uIGR1cmluZyBXb3JrZXIgc2h1dGRvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNzU3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIER1cmluZyB3b3JrZXIgc2h1dGRvd24sIGZyb20gdGhlIG1haW4g
dGhyZWFkIGEgY2xlYW51cCB0YXNrIGlzIHBvc3RlZCBmb2xsb3dlZCBieQorICAgICAgICB0ZXJt
aW5hdGluZyB0aGUgbWVzc2FnZSBxdWV1ZSwgd2hpY2ggcHJldmVudHMgZnVydGhlciB0YXNrcyBm
cm9tIGJlaW5nIHByb2Nlc3NlZC4gSXQgd2FzCisgICAgICAgIHBvc3NpYmxlIGZvciBhbm90aGVy
IHRhc2sgYmUgcG9zdGVkIGJ5IGFub3RoZXIgdGhyZWFkIGJldHdlZW4gdGhlIG1haW4gdGhyZWFk
IGNhbGxzCisgICAgICAgIHRvIHBvc3RUYXNrIGFuZCB0ZXJtaW5hdGUoKSwgd2hpY2ggd291bGQg
Y2F1c2UgdGhhdCB0YXNrIHRvIHJ1biBhZnRlciBjbGVhbnVwLiBFeHBvc2UKKyAgICAgICAgYSBu
ZXcgV1RGOjpNZXNzYWdlUXVldWU6OmFwcGVuZEFuZEtpbGwoKSBtZXRob2Qgd2hpY2gga2VlcHMg
YSBtdXRleCBhcm91bmQgdGhlIHR3byBzdGVwcywKKyAgICAgICAgYW5kIHVzZSB0aGF0IGR1cmlu
ZyB3b3JrZXIgc2h1dGRvd24uCisKKyAgICAgICAgTm8gcmVsaWFibGUgdGVzdHMgZm9yIHRoZSBy
YWNlIC0gcHJvYmxlbSBpZGVudGlmaWVkIGJ5IGluc3BlY3Rpb24gb2YgdXNlciBjcmFzaCBzdGFj
a3MuCisKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyUnVuTG9vcDo6cG9zdFRhc2tBbmRUZXJtaW5hdGUpOiBOZXcgbWV0aG9kLCB1
c2VzIE1lc3NhZ2VRdWV1ZTo6YXBwZW5kQW5kS2lsbCgpCisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJSdW5Mb29wLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpzdG9wKTogVXNlcyBwb3N0VGFza0FuZFRlcm1pbmF0
ZSgpIHRvIGF2b2lkIHJhY2UuCisKIDIwMTMtMDEtMTggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFJld29yayBOZXR3b3JrUHJvY2VzcyByZXNvdXJjZSBsb2Fk
IGlkZW50aWZpZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUuaAppbmRleCBkZGE4NTJmZTEyNjRlZmIyZmZh
M2ZjNWE3Y2MwZTY2MGQ4ODllZjg0Li40ZjE5YWVkNTBkMWRiNzM4ODBhNWNhZDFkYWMwMmQzN2Q3
Y2Q3ODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUuaApAQCAtNTUsNiArNTUsNyBAQCBuYW1lc3BhY2Ug
V1RGIHsKICAgICAgICAgfk1lc3NhZ2VRdWV1ZSgpOwogCiAgICAgICAgIHZvaWQgYXBwZW5kKFBh
c3NPd25QdHI8RGF0YVR5cGU+KTsKKyAgICAgICAgdm9pZCBhcHBlbmRBbmRLaWxsKFBhc3NPd25Q
dHI8RGF0YVR5cGU+KTsKICAgICAgICAgYm9vbCBhcHBlbmRBbmRDaGVja0VtcHR5KFBhc3NPd25Q
dHI8RGF0YVR5cGU+KTsKICAgICAgICAgdm9pZCBwcmVwZW5kKFBhc3NPd25QdHI8RGF0YVR5cGU+
KTsKIApAQCAtOTgsNiArOTksMTUgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIG1fY29uZGl0
aW9uLnNpZ25hbCgpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgor
ICAgIGlubGluZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoUGFz
c093blB0cjxEYXRhVHlwZT4gbWVzc2FnZSkKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9tdXRleCk7CisgICAgICAgIG1fcXVldWUuYXBwZW5kKG1lc3NhZ2UubGVha1B0cigpKTsK
KyAgICAgICAgbV9raWxsZWQgPSB0cnVlOworICAgICAgICBtX2NvbmRpdGlvbi5icm9hZGNhc3Qo
KTsKKyAgICB9CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1ZXVlIHdhcyBlbXB0eSBi
ZWZvcmUgdGhlIGl0ZW0gd2FzIGFkZGVkLgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBl
PgogICAgIGlubGluZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZENoZWNr
RW1wdHkoUGFzc093blB0cjxEYXRhVHlwZT4gbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclJ1bkxvb3AuY3BwCmluZGV4IGViNjY1ZDI2YjgxZjZmMGU1MzRkY2VlZjZjYzQ3NjA4
NjQ0YzVhYTAuLjZlZTBmYTczMmFhNjdjNGQ0OGM4NTM2MWU0ZGY2Y2U4YjcyYjk5NmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcApAQCAtMjAxLDYgKzIwMSwxMSBA
QCB2b2lkIFdvcmtlclJ1bkxvb3A6OnBvc3RUYXNrKFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6VGFzaz4gdGFzaykKICAgICBwb3N0VGFza0Zvck1vZGUodGFzaywgZGVmYXVsdE1v
ZGUoKSk7CiB9CiAKK3ZvaWQgV29ya2VyUnVuTG9vcDo6cG9zdFRhc2tBbmRUZXJtaW5hdGUoUGFz
c093blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNrKQoreworICAgIG1fbWVz
c2FnZVF1ZXVlLmFwcGVuZEFuZEtpbGwoVGFzazo6Y3JlYXRlKHRhc2ssIGRlZmF1bHRNb2RlKCku
aXNvbGF0ZWRDb3B5KCkpKTsKK30KKwogdm9pZCBXb3JrZXJSdW5Mb29wOjpwb3N0VGFza0Zvck1v
ZGUoUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNrLCBjb25zdCBT
dHJpbmcmIG1vZGUpCiB7CiAgICAgbV9tZXNzYWdlUXVldWUuYXBwZW5kKFRhc2s6OmNyZWF0ZSh0
YXNrLCBtb2RlLmlzb2xhdGVkQ29weSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclJ1bkxvb3AuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVu
TG9vcC5oCmluZGV4IDM5MTZkNmFjNTczZDVkN2U3ZWU0YTdkNWVjZDYxODc1NmE1NjlhOWYuLjMy
MDFhYjM0MDcwZjU1YzEyYTMyMDZkNDg0N2JmYWY2YWQxZDM2MDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyUnVuTG9vcC5oCkBAIC02MSw2ICs2MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgYm9vbCB0ZXJtaW5hdGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlUXVl
dWUua2lsbGVkKCk7IH0KIAogICAgICAgICB2b2lkIHBvc3RUYXNrKFBhc3NPd25QdHI8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4pOworICAgICAgICB2b2lkIHBvc3RUYXNrQW5kVGVybWlu
YXRlKFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4pOwogICAgICAgICB2
b2lkIHBvc3RUYXNrRm9yTW9kZShQYXNzT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2s+LCBjb25zdCBTdHJpbmcmIG1vZGUpOwogCiAgICAgICAgIHVuc2lnbmVkIGxvbmcgY3JlYXRl
VW5pcXVlSWQoKSB7IHJldHVybiArK21fdW5pcXVlSWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVGhyZWFkLmNwcAppbmRleCBlYmIzYmZmYmI2YjFmNTc5NDUyMTcxZmU4MTYwYzMyZDc0
MmZjYzUyLi5jNGRkNjU1ZTkzNjhmNGM1NTM0OTViM2MzODBmNTI5ZThkNzgxYjQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0yNzEsNyArMjcxLDggQEAgdm9p
ZCBXb3JrZXJUaHJlYWQ6OnN0b3AoKQogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAgICAgICAg
IERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLmludGVycnVwdEFsbERhdGFiYXNlc0ZvckNvbnRl
eHQobV93b3JrZXJDb250ZXh0LmdldCgpKTsKICNlbmRpZgotICAgICAgICBtX3J1bkxvb3AucG9z
dFRhc2soV29ya2VyVGhyZWFkU2h1dGRvd25TdGFydFRhc2s6OmNyZWF0ZSgpKTsKKyAgICAgICAg
bV9ydW5Mb29wLnBvc3RUYXNrQW5kVGVybWluYXRlKFdvcmtlclRocmVhZFNodXRkb3duU3RhcnRU
YXNrOjpjcmVhdGUoKSk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9ydW5Mb29wLnRl
cm1pbmF0ZSgpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>