<?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>164715</bug_id>
          
          <creation_ts>2016-11-14 10:35:49 -0800</creation_ts>
          <short_desc>REGRESSION (r208606?): LayoutTest fast/mediastream/enumerating-crash.html is a flaky crash</short_desc>
          <delta_ts>2016-11-20 20:38:57 -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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=164798</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1251024</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-11-14 10:35:49 -0800</bug_when>
    <thetext>LayouTest fast/mediastream/enumerating-crash.html is a flaky crash

https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK2%20(Tests)/r208684%20(9417)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251033</commentid>
    <comment_count>1</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-11-14 10:55:08 -0800</bug_when>
    <thetext>Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x000000010adcd4f7 WTFCrash + 39 (Assertions.cpp:323)
1   com.apple.JavaScriptCore      	0x000000010adcd519 WTFCrashWithSecurityImplication + 9
2   com.apple.WebKit              	0x00000001067a8ecf WTF::match_constness&lt;WebCore::ScriptExecutionContext, WebCore::Document&gt;::type* WTF::downcast&lt;WebCore::Document, WebCore::ScriptExecutionContext&gt;(WebCore::ScriptExecutionContext*) + 79 (TypeCasts.h:89)
3   com.apple.WebKit              	0x00000001067a826d WebCore::UserMediaRequest::document() const + 29 (UserMediaRequest.h:74)
4   com.apple.WebKit              	0x00000001067a77c8 WebKit::UserMediaPermissionRequestManager::removeMediaRequestFromMaps(WebCore::UserMediaRequest&amp;) + 56 (UserMediaPermissionRequestManager.cpp:126)
5   com.apple.WebKit              	0x00000001067a777b WebKit::UserMediaPermissionRequestManager::cancelUserMediaRequest(WebCore::UserMediaRequest&amp;) + 107 (UserMediaPermissionRequestManager.cpp:108)
6   com.apple.WebKit              	0x0000000106cefe39 WebKit::WebUserMediaClient::cancelUserMediaAccessRequest(WebCore::UserMediaRequest&amp;) + 41 (WebUserMediaClient.cpp:51)
7   com.apple.WebCore             	0x000000010fe366a3 WebCore::UserMediaController::cancelUserMediaAccessRequest(WebCore::UserMediaRequest&amp;) + 51 (UserMediaController.h:64)
8   com.apple.WebCore             	0x000000010fe34386 WebCore::UserMediaRequest::contextDestroyed() + 70 (UserMediaRequest.cpp:235)
9   com.apple.WebCore             	0x000000010f864450 WebCore::ScriptExecutionContext::~ScriptExecutionContext() + 144 (ScriptExecutionContext.cpp:127)
10  com.apple.WebCore             	0x000000010db1ace0 WebCore::Document::~Document() + 8320 (Document.cpp:656)
11  com.apple.WebCore             	0x000000010e074395 WebCore::HTMLDocument::~HTMLDocument() + 117 (HTMLDocument.cpp:93)
12  com.apple.WebCore             	0x000000010e0743b5 WebCore::HTMLDocument::~HTMLDocument() + 21 (HTMLDocument.cpp:93)
13  com.apple.WebCore             	0x000000010e074439 WebCore::HTMLDocument::~HTMLDocument() + 25 (HTMLDocument.cpp:92)
14  com.apple.WebCore             	0x000000010db3d31d WebCore::Document::decrementReferencingNodeCount() + 189 (Document.h:324)
15  com.apple.WebCore             	0x000000010f2721c1 WebCore::Node::~Node() + 737 (Node.cpp:310)
16  com.apple.WebCore             	0x000000010d75ea49 WebCore::ContainerNode::~ContainerNode() + 105 (ContainerNode.cpp:156)
17  com.apple.WebCore             	0x000000010dca876f WebCore::Element::~Element() + 495 (Element.cpp:203)
18  com.apple.WebCore             	0x000000010facf7c7 WebCore::StyledElement::~StyledElement() + 87 (StyledElement.cpp:139)
19  com.apple.WebCore             	0x000000010d583c35 WebCore::HTMLElement::~HTMLElement() + 21 (HTMLElement.h:38)
20  com.apple.WebCore             	0x000000010e169265 WebCore::HTMLSpanElement::~HTMLSpanElement() + 21 (HTMLSpanElement.h:32)
21  com.apple.WebCore             	0x000000010e1691c5 WebCore::HTMLSpanElement::~HTMLSpanElement() + 21 (HTMLSpanElement.h:32)
22  com.apple.WebCore             	0x000000010e1691e9 WebCore::HTMLSpanElement::~HTMLSpanElement() + 25 (HTMLSpanElement.h:32)
23  com.apple.WebCore             	0x000000010f27b94d WebCore::Node::removedLastRef() + 93 (Node.cpp:2327)
24  com.apple.WebCore             	0x000000010d3fa8ae WebCore::Node::deref() + 382 (Node.h:724)
25  com.apple.WebCore             	0x000000010f2747f5 WebCore::Node::derefEventTarget() + 21 (Node.cpp:750)
26  com.apple.WebCore             	0x000000010db794d6 WebCore::EventTarget::deref() + 22 (EventTarget.h:65)
27  com.apple.WebCore             	0x000000010dc444bd WTF::Ref&lt;WebCore::EventTarget&gt;::~Ref() + 45 (Ref.h:60)
28  com.apple.WebCore             	0x000000010dc36805 WTF::Ref&lt;WebCore::EventTarget&gt;::~Ref() + 21 (Ref.h:60)
29  com.apple.WebCore             	0x000000010e803dcc WebCore::JSDOMWrapper&lt;WebCore::EventTarget&gt;::~JSDOMWrapper() + 28 (JSDOMWrapper.h:76)
30  com.apple.WebCore             	0x000000010e803da5 WebCore::JSEventTarget::~JSEventTarget() + 21 (JSEventTarget.h:30)
31  com.apple.WebCore             	0x000000010e8037f5 WebCore::JSEventTarget::~JSEventTarget() + 21 (JSEventTarget.h:30)
32  com.apple.WebCore             	0x000000010e801cbd WebCore::JSEventTarget::destroy(JSC::JSCell*) + 29 (JSEventTarget.cpp:197)
33  com.apple.JavaScriptCore      	0x0000000109bbc12b JSC::JSCell::callDestructor(JSC::VM&amp;) + 203 (JSCellInlines.h:291)
34  com.apple.JavaScriptCore      	0x000000010a985942 JSC::FreeList JSC::MarkedBlock::Handle::specializedSweep&lt;(JSC::MarkedBlock::Handle::EmptyMode)1, (JSC::MarkedBlock::Handle::SweepMode)0, (JSC::DestructionMode)1, (JSC::MarkedBlock::Handle::ScribbleMode)1, (JSC::MarkedBlock::Handle::NewlyAllocatedMode)1, (JSC::MarkedBlock::Handle::MarksMode)1&gt;() + 306 (MarkedBlock.cpp:126)
35  com.apple.JavaScriptCore      	0x000000010a984fe3 JSC::FreeList JSC::MarkedBlock::Handle::sweepHelperSelectMarksMode&lt;(JSC::MarkedBlock::Handle::EmptyMode)1, (JSC::MarkedBlock::Handle::SweepMode)0, (JSC::DestructionMode)1, (JSC::MarkedBlock::Handle::ScribbleMode)1, (JSC::MarkedBlock::Handle::NewlyAllocatedMode)1&gt;() + 83 (MarkedBlock.cpp:230)
36  com.apple.JavaScriptCore      	0x000000010a98431e JSC::FreeList JSC::MarkedBlock::Handle::sweepHelperSelectSweepMode&lt;(JSC::MarkedBlock::Handle::EmptyMode)1, (JSC::DestructionMode)1, (JSC::MarkedBlock::Handle::ScribbleMode)1, (JSC::MarkedBlock::Handle::NewlyAllocatedMode)1&gt;(JSC::MarkedBlock::Handle::SweepMode) + 78 (MarkedBlock.cpp:222)
37  com.apple.JavaScriptCore      	0x000000010a982cec JSC::FreeList JSC::MarkedBlock::Handle::sweepHelperSelectHasNewlyAllocated&lt;(JSC::MarkedBlock::Handle::EmptyMode)1, (JSC::DestructionMode)1, (JSC::MarkedBlock::Handle::ScribbleMode)1&gt;(JSC::MarkedBlock::Handle::SweepMode) + 92 (MarkedBlock.cpp:214)
38  com.apple.JavaScriptCore      	0x000000010a982ba3 JSC::FreeList JSC::MarkedBlock::Handle::sweepHelperSelectEmptyMode&lt;(JSC::DestructionMode)1, (JSC::MarkedBlock::Handle::ScribbleMode)1&gt;(JSC::MarkedBlock::Handle::SweepMode) + 99 (MarkedBlock.cpp:206)
39  com.apple.JavaScriptCore      	0x000000010a9822b4 JSC::FreeList JSC::MarkedBlock::Handle::sweepHelperSelectScribbleMode&lt;(JSC::DestructionMode)1&gt;(JSC::MarkedBlock::Handle::SweepMode) + 68 (MarkedBlock.cpp:189)
40  com.apple.JavaScriptCore      	0x000000010a9810d5 JSC::MarkedBlock::Handle::sweep(JSC::MarkedBlock::Handle::SweepMode) + 341 (MarkedBlock.cpp:181)
41  com.apple.JavaScriptCore      	0x000000010a5ebeeb JSC::IncrementalSweeper::sweepNextBlock() + 187 (IncrementalSweeper.cpp:87)
42  com.apple.JavaScriptCore      	0x000000010a5ebdd2 JSC::IncrementalSweeper::doSweep(double) + 34 (IncrementalSweeper.cpp:60)
43  com.apple.JavaScriptCore      	0x000000010a5ebda2 JSC::IncrementalSweeper::doWork() + 34 (IncrementalSweeper.cpp:56)
44  com.apple.JavaScriptCore      	0x000000010a5e81e7 JSC::HeapTimer::timerDidFire(__CFRunLoopTimer*, void*) + 183 (HeapTimer.cpp:93)
45  com.apple.CoreFoundation      	0x00007fff8997fb94 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
46  com.apple.CoreFoundation      	0x00007fff8997f823 __CFRunLoopDoTimer + 1075
47  com.apple.CoreFoundation      	0x00007fff8997f37a __CFRunLoopDoTimers + 298
48  com.apple.CoreFoundation      	0x00007fff89976871 __CFRunLoopRun + 1841
49  com.apple.CoreFoundation      	0x00007fff89975ed8 CFRunLoopRunSpecific + 296
50  com.apple.HIToolbox           	0x00007fff8b2be935 RunCurrentEventLoopInMode + 235
51  com.apple.HIToolbox           	0x00007fff8b2be76f ReceiveNextEventCommon + 432
52  com.apple.HIToolbox           	0x00007fff8b2be5af _BlockUntilNextEventMatchingListInModeWithFilter + 71
53  com.apple.AppKit              	0x00007fff90186df6 _DPSNextEvent + 1067
54  com.apple.AppKit              	0x00007fff90186226 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
55  com.apple.AppKit              	0x00007fff9017ad80 -[NSApplication run] + 682
56  com.apple.AppKit              	0x00007fff90144368 NSApplicationMain + 1176
57  libxpc.dylib                  	0x00007fff94c0c194 _xpc_objc_main + 795
58  libxpc.dylib                  	0x00007fff94c0abbe xpc_main + 494
59  com.apple.WebKit.WebContent   	0x0000000106260080 main + 800
60  libdyld.dylib                 	0x00007fff824d65ad start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251123</commentid>
    <comment_count>2</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-11-14 13:47:45 -0800</bug_when>
    <thetext>Related to http://trac.webkit.org/projects/webkit/changeset/208606?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251355</commentid>
    <comment_count>3</comment_count>
      <attachid>294804</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-14 21:09:27 -0800</bug_when>
    <thetext>Created attachment 294804
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251426</commentid>
    <comment_count>4</comment_count>
      <attachid>294804</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-15 04:27:14 -0800</bug_when>
    <thetext>Comment on attachment 294804
Proposed patch.

Clearing flags on attachment: 294804

Committed r208730: &lt;http://trac.webkit.org/changeset/208730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251427</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-15 04:27:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251671</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-11-15 15:15:11 -0800</bug_when>
    <thetext>This is still happening, just saw this crash with ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251672</commentid>
    <comment_count>7</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-11-15 15:16:21 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; This is still happening, just saw this crash with ToT.

Seen with fast/regions/cssom/webkit-named-flow-event-target.html here:

https://build.webkit.org/results/Apple%20Yosemite%20Debug%20WK2%20(Tests)/r208748%20(16238)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251673</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-11-15 15:17:08 -0800</bug_when>
    <thetext>&lt;rdar://problem/29277180&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252568</commentid>
    <comment_count>9</comment_count>
      <attachid>295125</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-17 19:32:36 -0800</bug_when>
    <thetext>Created attachment 295125
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252713</commentid>
    <comment_count>10</comment_count>
      <attachid>295125</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-11-18 10:09:30 -0800</bug_when>
    <thetext>Comment on attachment 295125
Proposed patch.

r=me.

Looking at the code, I wonder if there is a mistake in ScriptExecutionContext here:

    virtual bool isDocument() const { return false; }
    virtual bool isWorkerGlobalScope() const { return false; }

Don&apos;t we want to ASSERT_NOT_REACHED here, or just to leave it unimplemented?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252719</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-18 10:15:50 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 295125 [details]
&gt; Proposed patch.
&gt; 
&gt; r=me.
&gt; 
&gt; Looking at the code, I wonder if there is a mistake in
&gt; ScriptExecutionContext here:
&gt; 
&gt;     virtual bool isDocument() const { return false; }
&gt;     virtual bool isWorkerGlobalScope() const { return false; }
&gt; 
&gt; Don&apos;t we want to ASSERT_NOT_REACHED here, or just to leave it unimplemented?

If you use ASSERT_NOT_REACHED() here or make them pure virtual then each subclass will have to overwrite both of this virtual functions. Currently, each subclass only has to override one of them, which is nice.

This seems to be a common pattern in WebKit. I guess here you could make the argument that there are only 2 virtual functions and it is not a big deal to override all of them in each subclass. However, if you consider other base classes like Node or Element, this does not scale very well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253183</commentid>
    <comment_count>12</comment_count>
      <attachid>295125</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-20 20:38:52 -0800</bug_when>
    <thetext>Comment on attachment 295125
Proposed patch.

Clearing flags on attachment: 295125

Committed r208938: &lt;http://trac.webkit.org/changeset/208938&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253184</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-20 20:38:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294804</attachid>
            <date>2016-11-14 21:09:27 -0800</date>
            <delta_ts>2016-11-15 04:27:14 -0800</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>crash_fix_patch_1.txt</filename>
            <type>text/plain</type>
            <size>3170</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODY1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE2LTExLTE0ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
MDg2MDY/KTogTGF5b3V0VGVzdCBmYXN0L21lZGlhc3RyZWFtL2VudW1lcmF0aW5nLWNyYXNoLmh0
bWwgaXMgYSBmbGFreSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NzE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBmaXhlcyBhIGNyYXNoIGluIGFuIGV4aXN0aW5nIHRl
c3QuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQpOiBSZXR1cm4g
bnVsbHB0ciB3aGVuIHRoZSBzY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQgaGFzCisgICAgICAgICAg
YmVlbiBjbGVhcmVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQpOiBE
ZWxldGVkLgorCiAyMDE2LTExLTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgYSBmZXcgYXNzb3J0ZWQgdXNlcyBvZiBFeGNlcHRpb25Db2RlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdC5jcHAJKHJldmlzaW9uIDIwODY1OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0
Miw2ICsyNDIsMTQgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojpjb250ZXh0RGVzdHJveWVkKAog
ICAgIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CiB9CiAK
K0RvY3VtZW50KiBVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgaWYg
KCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmgJKHJldmlzaW9uIDIwODY1OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFNlY3VyaXR5T3Jp
Z2luKiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbigpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JU
IFNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3Q7Ci0gICAgRG9j
dW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudCogZG9j
dW1lbnQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBVc2VyTWVkaWFSZXF1ZXN0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBVc2VyTWVkaWFDb250cm9sbGVyKiwgUmVmPE1lZGlhQ29uc3RyYWlu
dHNJbXBsPiYmIGF1ZGlvQ29uc3RyYWludHMsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiB2
aWRlb0NvbnN0cmFpbnRzLCBNZWRpYURldmljZXM6OlByb21pc2UmJik7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCShyZXZpc2lvbiAy
MDg2NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw3ICsx
MjMsMTEgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OgogCiB2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cmVtb3ZlTWVkaWFSZXF1ZXN0RnJv
bU1hcHMoVXNlck1lZGlhUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBhdXRvIHBlbmRpbmdSZXF1
ZXN0cyA9IG1fYmxvY2tlZFJlcXVlc3RzLnRha2UocmVxdWVzdC5kb2N1bWVudCgpKTsKKyAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSByZXF1ZXN0LmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVu
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBtX2Jsb2Nr
ZWRSZXF1ZXN0cy50YWtlKGRvY3VtZW50KTsKICAgICBmb3IgKGF1dG8mIHBlbmRpbmdSZXF1ZXN0
IDogcGVuZGluZ1JlcXVlc3RzKSB7CiAgICAgICAgIGlmICgmcmVxdWVzdCAhPSBwZW5kaW5nUmVx
dWVzdC5nZXQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295125</attachid>
            <date>2016-11-17 19:32:36 -0800</date>
            <delta_ts>2016-11-20 20:38:52 -0800</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>downcast_cast_patch_1.txt</filename>
            <type>text/plain</type>
            <size>1597</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODg3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE2LTExLTE3ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
MDg2MDY/KTogTGF5b3V0VGVzdCBmYXN0L21lZGlhc3RyZWFtL2VudW1lcmF0aW5nLWNyYXNoLmh0
bWwgaXMgYSBmbGFreSBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NzE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTI3NzE4MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIGZpeGVzIGFuIGV4aXN0aW5nIHRlc3QgY3Jhc2guCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1l
ZGlhUmVxdWVzdDo6Y29udGV4dERlc3Ryb3llZCk6IENhbGwgYmFzZSBjbGFzcyBtZXRob2QgYmVm
b3JlIGNsZWFyaW5nIG1fY29udHJvbGxlcgorICAgICAgICAgIGJlY2F1c2UgaXQgbnVsbGlmaWVz
IHRoZSBzZWN1cml0eSBjb250ZXh0LgorCiAyMDE2LTExLTE3ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IFdpbkNhaXJvIGJ1aWxkIGFm
dGVyIHIyMDg3NDAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAkocmV2aXNpb24gMjA4ODcxKQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjI4LDE0ICsyMjgsMTMgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojpk
ZW55KE1lZGlhQWNjZXNzRAogCiB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnRleHREZXN0cm95
ZWQoKQogeworICAgIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVk
KCk7CiAgICAgUmVmPFVzZXJNZWRpYVJlcXVlc3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAg
ICAgaWYgKG1fY29udHJvbGxlcikgewogICAgICAgICBtX2NvbnRyb2xsZXItPmNhbmNlbFVzZXJN
ZWRpYUFjY2Vzc1JlcXVlc3QoKnRoaXMpOwogICAgICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRy
OwogICAgIH0KLQotICAgIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJv
eWVkKCk7CiB9CiAKIERvY3VtZW50KiBVc2VyTWVkaWFSZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>