<?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>160197</bug_id>
          
          <creation_ts>2016-07-26 08:59:20 -0700</creation_ts>
          <short_desc>[Threaded Compositor] ASSERTION FAILED: isMainThread() when ThreadedCompositor is destroyed since r203718</short_desc>
          <delta_ts>2016-07-26 09:26:48 -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>WebKit2</component>
          <version>WebKit Local 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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1214540</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-26 08:59:20 -0700</bug_when>
    <thetext>ThreadedCompositor can be destroyed from a secondary thread, for example, when a task takes a reference and the main threads derefs it, when the task finishes in the secondary thread the lambda ends up deleting the threaded compositor. This is ok for the Threaded compositor but not for the CompositingRunLoop class. this was not a problem before r203718 because the CompositingRunLoop object was created and destroyed in the same thread always, but now it&apos;s part of the ThreadedCompositor class. This makes me think whether we really want this to happen, maybe instead of taking references, we should use weak pointers, but for now let&apos;s make sure the CompositingRunLoop is always created and destroyed in the main thread.

STDERR: ASSERTION FAILED: isMainThread()
STDERR: ../../Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp(44) : static WebKit::WorkQueuePool&amp; WebKit::WorkQueuePool::singleton()
STDERR: 1   0x7fb8ba53ec2f /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x1e) [0x7fb8ba53ec2f]
STDERR: 2   0x7fb8c104ce67 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebKit::WorkQueuePool::singleton()+0x37) [0x7fb8c104ce67]
STDERR: 3   0x7fb8c104c37b /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebKit::CompositingRunLoop::~CompositingRunLoop()+0x11) [0x7fb8c104c37b]
STDERR: 4   0x7fb8c10503ae /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebKit::ThreadedCompositor::~ThreadedCompositor()+0x72) [0x7fb8c10503ae]
STDERR: 5   0x7fb8c1050426 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebKit::ThreadedCompositor::~ThreadedCompositor()+0x18) [0x7fb8c1050426]
STDERR: 6   0x7fb8c1058d90 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::ThreadSafeRefCounted&lt;WebKit::ThreadedCompositor&gt;::deref()+0x48) [0x7fb8c1058d90]
STDERR: 7   0x7fb8c1057f79 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Ref&lt;WebKit::ThreadedCompositor&gt;::~Ref()+0x2b) [0x7fb8c1057f79]
STDERR: 8   0x7fb8c10504ac /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0x58664ac) [0x7fb8c10504ac]
STDERR: 9   0x7fb8c1054baa /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0x586abaa) [0x7fb8c1054baa]
STDERR: 10  0x7fb8c1054be6 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0x586abe6) [0x7fb8c1054be6]
STDERR: 11  0x7fb8c0a44b38 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(std::default_delete&lt;WTF::Function&lt;void ()&gt;::CallableWrapperBase&gt;::operator()(WTF::Function&lt;void ()&gt;::CallableWrapperBase*) const+0x2e) [0x7fb8c0a44b38]
STDERR: 12  0x7fb8c0a42ab9 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(std::unique_ptr&lt;WTF::Function&lt;void ()&gt;::CallableWrapperBase, std::default_delete&lt;WTF::Function&lt;void ()&gt;::CallableWrapperBase&gt; &gt;::~unique_ptr()+0x47) [0x7fb8c0a42ab9]
STDERR: 13  0x7fb8c0a41a3c /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Function&lt;void ()&gt;::~Function()+0x18) [0x7fb8c0a41a3c]
STDERR: 14  0x7fb8c104c4b4 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0x58624b4) [0x7fb8c104c4b4]
STDERR: 15  0x7fb8c104cca0 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0x5862ca0) [0x7fb8c104cca0]
STDERR: 16  0x7fb8c104ccdc /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0x5862cdc) [0x7fb8c104ccdc]
STDERR: 17  0x7fb8c0a44b38 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(std::default_delete&lt;WTF::Function&lt;void ()&gt;::CallableWrapperBase&gt;::operator()(WTF::Function&lt;void ()&gt;::CallableWrapperBase*) const+0x2e) [0x7fb8c0a44b38]
STDERR: 18  0x7fb8c0a42ab9 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(std::unique_ptr&lt;WTF::Function&lt;void ()&gt;::CallableWrapperBase, std::default_delete&lt;WTF::Function&lt;void ()&gt;::CallableWrapperBase&gt; &gt;::~unique_ptr()+0x47) [0x7fb8c0a42ab9]
STDERR: 19  0x7fb8c0a41a3c /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Function&lt;void ()&gt;::~Function()+0x18) [0x7fb8c0a41a3c]
STDERR: 20  0x7fb8ba59af24 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x227ef24) [0x7fb8ba59af24]
STDERR: 21  0x7fb8ba59bd9c /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x227fd9c) [0x7fb8ba59bd9c]
STDERR: 22  0x7fb8ba59bdd8 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x227fdd8) [0x7fb8ba59bdd8]
STDERR: 23  0x7fb8c0a44b38 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(std::default_delete&lt;WTF::Function&lt;void ()&gt;::CallableWrapperBase&gt;::operator()(WTF::Function&lt;void ()&gt;::CallableWrapperBase*) const+0x2e) [0x7fb8c0a44b38]
STDERR: 24  0x7fb8c0a42ab9 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(std::unique_ptr&lt;WTF::Function&lt;void ()&gt;::CallableWrapperBase, std::default_delete&lt;WTF::Function&lt;void ()&gt;::CallableWrapperBase&gt; &gt;::~unique_ptr()+0x47) [0x7fb8c0a42ab9]
STDERR: 25  0x7fb8c0a41a3c /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::Function&lt;void ()&gt;::~Function()+0x18) [0x7fb8c0a41a3c]
STDERR: 26  0x7fb8ba55a49e /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTF::RunLoop::performWork()+0xe8) [0x7fb8ba55a49e]
STDERR: 27  0x7fb8ba59d2be /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x22812be) [0x7fb8ba59d2be]
STDERR: 28  0x7fb8ba59d2e3 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x22812e3) [0x7fb8ba59d2e3]
STDERR: 29  0x7fb8ba59d25e /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x228125e) [0x7fb8ba59d25e]
STDERR: 30  0x7fb8ba59d28d /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x228128d) [0x7fb8ba59d28d]
STDERR: 31  0x7fb8b6001a26 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/DependenciesGTK/Root/lib/libglib-2.0.so.0(+0x53a26) [0x7fb8b6001a26]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214543</commentid>
    <comment_count>1</comment_count>
      <attachid>284595</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-26 09:06:25 -0700</bug_when>
    <thetext>Created attachment 284595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214551</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-26 09:26:48 -0700</bug_when>
    <thetext>Committed r203721: &lt;http://trac.webkit.org/changeset/203721&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284595</attachid>
            <date>2016-07-26 09:06:25 -0700</date>
            <delta_ts>2016-07-26 09:23:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-threaded-compositor-crash.diff</filename>
            <type>text/plain</type>
            <size>10957</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxYjYzMTliLi5mOGI4YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDAg
QEAKIDIwMTYtMDctMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtUaHJlYWRlZCBDb21wb3NpdG9yXSBBU1NFUlRJT04gRkFJTEVEOiBpc01h
aW5UaHJlYWQoKSB3aGVuIFRocmVhZGVkQ29tcG9zaXRvciBpcyBkZXN0cm95ZWQgc2luY2UgcjIw
MzcxOAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYw
MTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhy
ZWFkZWRDb21wb3NpdG9yIGNhbiBiZSBkZXN0cm95ZWQgZnJvbSBhIHNlY29uZGFyeSB0aHJlYWQs
IGZvciBleGFtcGxlLCB3aGVuIGEgdGFzayB0YWtlcyBhIHJlZmVyZW5jZSBhbmQgdGhlCisgICAg
ICAgIG1haW4gdGhyZWFkcyBkZXJlZnMgaXQsIHdoZW4gdGhlIHRhc2sgZmluaXNoZXMgaW4gdGhl
IHNlY29uZGFyeSB0aHJlYWQgdGhlIGxhbWJkYSBlbmRzIHVwIGRlbGV0aW5nIHRoZSB0aHJlYWRl
ZAorICAgICAgICBjb21wb3NpdG9yLiBUaGlzIGlzIG9rIGZvciB0aGUgVGhyZWFkZWQgY29tcG9z
aXRvciBidXQgbm90IGZvciB0aGUgQ29tcG9zaXRpbmdSdW5Mb29wIGNsYXNzLiB0aGlzIHdhcyBu
b3QgYQorICAgICAgICBwcm9ibGVtIGJlZm9yZSByMjAzNzE4IGJlY2F1c2UgdGhlIENvbXBvc2l0
aW5nUnVuTG9vcCBvYmplY3Qgd2FzIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZCBpbiB0aGUgc2FtZSB0
aHJlYWQKKyAgICAgICAgYWx3YXlzLCBidXQgbm93IGl0J3MgcGFydCBvZiB0aGUgVGhyZWFkZWRD
b21wb3NpdG9yIGNsYXNzLiBUaGlzIHBhdGNoIHVzZXMgc3RkOnVuaXF1ZV9wdHIgYWdhaW4gdG8g
ZXhwbGljaXRseQorICAgICAgICBjcmVhdGUgdGhlIENvbXBvc2l0aW5nUnVuTG9vcCBpbiB0aGUg
VGhyZWFkZWRDb21wb3NpdG9yIGNvbnN0cnVjdG9yIGFuZCBkZWxldGUgaW4gdGhlIGludmFsaWRh
dGUoKSBtZXRob2QgdG8KKyAgICAgICAgbWFrZSBzdXJlIGl0IGhhcHBlbnMgaW4gdGhlIG1haW4g
dGhyZWFkIGluIGJvdGggY2FzZXMuCisKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V29ya1F1ZXVlUG9vbDo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldv
cmtRdWV1ZVBvb2w6OmdldE9yQ3JlYXRlV29ya1F1ZXVlRm9yQ29udGV4dCk6CisgICAgICAgICog
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5n
UnVuTG9vcC5oOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpUaHJl
YWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcik6CisgICAgICAgIChXZWJLaXQ6OlRo
cmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVk
Q29tcG9zaXRvcjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKToKKyAgICAg
ICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpzZXREZXZpY2VTY2FsZUZhY3Rvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29tcG9zaXRvcjo6c2V0RHJhd3NCYWNrZ3JvdW5kKToK
KyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpkaWRDaGFuZ2VWaWV3cG9ydFNp
emUpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OmRpZENoYW5nZVZpZXdw
b3J0QXR0cmlidXRlKToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpkaWRD
aGFuZ2VDb250ZW50c1NpemUpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6
OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpzY3JvbGxC
eSk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29tcG9zaXRvcjo6dXBkYXRlVmlld3BvcnQp
OgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OnNjaGVkdWxlRGlzcGxheUlt
bWVkaWF0ZWx5KToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9yOjpmb3JjZVJl
cGFpbnQpOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaDoKKworMjAxNi0wNy0yNiAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKICAgICAgICAgW0Nvb3JkaW5hdGVkIEdy
YXBoaWNzXSBUZXN0IGZhc3QvZml4ZWQtbGF5b3V0L2ZpeGVkLWxheW91dC5odG1sIGNyYXNoZXMg
aW4gZGVidWcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MDExNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9D
b21wb3NpdGluZ1J1bkxvb3AuY3BwCmluZGV4IGRjZDg0ZWUuLmZiNDhlNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9z
aXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3Au
Y3BwCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGUodm9pZCog
Y29udGV4dCkKICAgICB7CiAgICAgICAgIGF1dG8gd29ya1F1ZXVlID0gbV93b3JrUXVldWVNYXAu
dGFrZShjb250ZXh0KTsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQod29ya1F1ZXVlKTsKKyAgICAg
ICAgQVNTRVJUKHdvcmtRdWV1ZSk7CiAgICAgICAgIGlmIChtX3dvcmtRdWV1ZU1hcC5pc0VtcHR5
KCkpIHsKICAgICAgICAgICAgIG1fc2hhcmVkV29ya1F1ZXVlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIG1fdGhyZWFkQ291bnQgPSAwOwpAQCAtODUsNyArODUsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgLy8gRklYTUU6IFRoaXMgaXMgT0sgZm9yIG5vdywgYW5kIGl0IHdvcmtzIGZvciBhIHNp
bmdsZS10aHJlYWQgbGltaXQuIEJ1dCBmb3IgY29uZmlndXJhdGlvbnMgd2hlcmUgbW9yZSAoYnV0
IG5vdCB1bmxpbWl0ZWQpCiAgICAgICAgICAgICAvLyB0aHJlYWRzIGNvdWxkIGJlIHVzZWQsIG9u
ZSBvcHRpb24gd291bGQgYmUgdG8gdXNlIGEgSGFzaFNldCBoZXJlIGFuZCBkaXNwZXJzZSB0aGUg
Y29udGV4dHMgYWNyb3NzIHRoZSBhdmFpbGFibGUgdGhyZWFkcy4KICAgICAgICAgICAgIGlmICht
X3RocmVhZENvdW50ID49IG1fdGhyZWFkQ291bnRMaW1pdCkgewotICAgICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKG1fc2hhcmVkV29ya1F1ZXVlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
bV9zaGFyZWRXb3JrUXVldWUpOwogICAgICAgICAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+
dmFsdWUgPSBtX3NoYXJlZFdvcmtRdWV1ZTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJv
cmcud2Via2l0LlRocmVhZGVkQ29tcG9zaXRvcldvcmtRdWV1ZSIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L0NvbXBvc2l0aW5nUnVuTG9vcC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCmluZGV4IGRm
NmQwZDMuLjUyYjVkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCiAKICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+
CisjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KQEAgLTM4LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIENvbXBv
c2l0aW5nUnVuTG9vcCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcG9zaXRpbmdSdW5M
b29wKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBlbnVtIFVw
ZGF0ZVRpbWluZyB7CiAgICAgICAgIEltbWVkaWF0ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZENvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKaW5kZXggYmFlMjg5
Yi4uMWViNTY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKQEAgLTQ4LDkgKzQ4LDkgQEAgUmVmPFRocmVhZGVk
Q29tcG9zaXRvcj4gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUoQ2xpZW50KiBjbGllbnQpCiAK
IFRocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCogY2xpZW50KQog
ICAgIDogbV9jbGllbnQoY2xpZW50KQotICAgICwgbV9jb21wb3NpdGluZ1J1bkxvb3AoW3RoaXNd
IHsgcmVuZGVyTGF5ZXJUcmVlKCk7IH0pCisgICAgLCBtX2NvbXBvc2l0aW5nUnVuTG9vcChzdGQ6
Om1ha2VfdW5pcXVlPENvbXBvc2l0aW5nUnVuTG9vcD4oW3RoaXNdIHsgcmVuZGVyTGF5ZXJUcmVl
KCk7IH0pKQogewotICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLnBlcmZvcm1UYXNrU3luYyhbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgbV9jb21wb3NpdGluZ1J1
bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpXSB7CiAgICAgICAgIG1fc2NlbmUgPSBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lKHRoaXMpKTsKICAgICAgICAgbV92aWV3cG9ydENvbnRyb2xsZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFNpbXBsZVZpZXdwb3J0Q29udHJvbGxlcj4odGhpcyk7CiAgICAgfSk7CkBAIC02NCwx
OSArNjQsMjAgQEAgVGhyZWFkZWRDb21wb3NpdG9yOjp+VGhyZWFkZWRDb21wb3NpdG9yKCkKIHZv
aWQgVGhyZWFkZWRDb21wb3NpdG9yOjppbnZhbGlkYXRlKCkKIHsKICAgICBtX3NjZW5lLT5kZXRh
Y2goKTsKLSAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC5zdG9wVXBkYXRlVGltZXIoKTsKLSAgICBt
X2NvbXBvc2l0aW5nUnVuTG9vcC5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0geworICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5zdG9wVXBkYXRl
VGltZXIoKTsKKyAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgbV9jb250ZXh0ID0g
bnVsbHB0cjsKICAgICAgICAgbV9zY2VuZSA9IG51bGxwdHI7CiAgICAgICAgIG1fdmlld3BvcnRD
b250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9KTsKKyAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcCA9
IG51bGxwdHI7CiAgICAgbV9jbGllbnQgPSBudWxscHRyOwogfQogCiB2b2lkIFRocmVhZGVkQ29t
cG9zaXRvcjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhh
bmRsZSkKIHsKLSAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC5zdG9wVXBkYXRlVGltZXIoKTsKLSAg
ICBtX2NvbXBvc2l0aW5nUnVuTG9vcC5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgaGFuZGxlXSB7CisgICAgbV9jb21wb3NpdGluZ1J1bkxvb3At
PnN0b3BVcGRhdGVUaW1lcigpOworICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFz
a1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaGFuZGxlXSB7CiAg
ICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSghIWhhbmRsZSk7CiAKICAgICAgICAgLy8gQSBuZXcg
bmF0aXZlIGhhbmRsZSBjYW4ndCBiZSBzZXQgd2l0aG91dCBkZXN0cm95aW5nIHRoZSBwcmV2aW91
cyBvbmUgZmlyc3QgaWYgYW55LgpAQCAtODksNyArOTAsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9z
aXRvcjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRs
ZSkKIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0
IHNjYWxlKQogewotICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLnBlcmZvcm1UYXNrKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHNjYWxlXSB7CisgICAgbV9jb21wb3NpdGlu
Z1J1bkxvb3AtPnBlcmZvcm1UYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIHNjYWxlXSB7CiAgICAgICAgIG1fZGV2aWNlU2NhbGVGYWN0b3IgPSBzY2FsZTsKICAgICAg
ICAgc2NoZWR1bGVEaXNwbGF5SW1tZWRpYXRlbHkoKTsKICAgICB9KTsKQEAgLTk3LDcgKzk4LDcg
QEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNj
YWxlKQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0RHJhd3NCYWNrZ3JvdW5kKGJvb2wg
ZHJhd3NCYWNrZ3JvdW5kKQogewotICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLnBlcmZvcm1UYXNr
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4oKnRoaXMpLCBk
cmF3c0JhY2tncm91bmRdIHsKKyAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2so
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWY8VGhyZWFkZWRDb21wb3NpdG9yPigqdGhpcyksIGRy
YXdzQmFja2dyb3VuZF0gewogICAgICAgICBtX2RyYXdzQmFja2dyb3VuZCA9IGRyYXdzQmFja2dy
b3VuZDsKICAgICAgICAgc2NoZWR1bGVEaXNwbGF5SW1tZWRpYXRlbHkoKTsKICAgICB9KTsKQEAg
LTEwNSwzNSArMTA2LDM1IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXREcmF3c0JhY2tn
cm91bmQoYm9vbCBkcmF3c0JhY2tncm91bmQpCiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpk
aWRDaGFuZ2VWaWV3cG9ydFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBtX2NvbXBv
c2l0aW5nUnVuTG9vcC5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgc2l6ZV0geworICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFz
a1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgc2l6ZV0gewogICAg
ICAgICBtX3ZpZXdwb3J0Q29udHJvbGxlci0+ZGlkQ2hhbmdlVmlld3BvcnRTaXplKHNpemUpOwog
ICAgIH0pOwogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6ZGlkQ2hhbmdlVmlld3BvcnRB
dHRyaWJ1dGUoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJiBhdHRyKQogewotICAgIG1fY29tcG9z
aXRpbmdSdW5Mb29wLnBlcmZvcm1UYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGF0dHJdIHsKKyAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2soW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYXR0cl0gewogICAgICAgICBtX3Zp
ZXdwb3J0Q29udHJvbGxlci0+ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGUoYXR0cik7CiAgICAg
fSk7CiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpkaWRDaGFuZ2VDb250ZW50c1NpemUo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC5wZXJmb3Jt
VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzaXplXSB7CisgICAg
bV9jb21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIHNpemVdIHsKICAgICAgICAgbV92aWV3cG9ydENvbnRyb2xsZXItPmRp
ZENoYW5nZUNvbnRlbnRzU2l6ZShzaXplKTsKICAgICB9KTsKIH0KIAogdm9pZCBUaHJlYWRlZENv
bXBvc2l0b3I6OnNjcm9sbFRvKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKIHsKLSAgICBtX2Nv
bXBvc2l0aW5nUnVuTG9vcC5wZXJmb3JtVGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBwb3NpdGlvbl0geworICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3Jt
VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwb3NpdGlvbl0gewog
ICAgICAgICBtX3ZpZXdwb3J0Q29udHJvbGxlci0+c2Nyb2xsVG8ocG9zaXRpb24pOwogICAgIH0p
OwogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYg
ZGVsdGEpCiB7Ci0gICAgbV9jb21wb3NpdGluZ1J1bkxvb3AucGVyZm9ybVRhc2soW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZGVsdGFdIHsKKyAgICBtX2NvbXBvc2l0aW5n
UnVuTG9vcC0+cGVyZm9ybVRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgZGVsdGFdIHsKICAgICAgICAgbV92aWV3cG9ydENvbnRyb2xsZXItPnNjcm9sbEJ5KGRlbHRh
KTsKICAgICB9KTsKIH0KQEAgLTE1OCwxMiArMTU5LDEyIEBAIHZvaWQgVGhyZWFkZWRDb21wb3Np
dG9yOjpjb21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5ZXJJRCwgY29uc3QgSW50U2l6ZSYg
b2ZmCiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjp1cGRhdGVWaWV3cG9ydCgpCiB7Ci0gICAg
bV9jb21wb3NpdGluZ1J1bkxvb3Auc3RhcnRVcGRhdGVUaW1lcihDb21wb3NpdGluZ1J1bkxvb3A6
OldhaXRVbnRpbE5leHRGcmFtZSk7CisgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnN0YXJ0VXBk
YXRlVGltZXIoQ29tcG9zaXRpbmdSdW5Mb29wOjpXYWl0VW50aWxOZXh0RnJhbWUpOwogfQogCiB2
b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2NoZWR1bGVEaXNwbGF5SW1tZWRpYXRlbHkoKQogewot
ICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLnN0YXJ0VXBkYXRlVGltZXIoQ29tcG9zaXRpbmdSdW5M
b29wOjpJbW1lZGlhdGUpOworICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5zdGFydFVwZGF0ZVRp
bWVyKENvbXBvc2l0aW5nUnVuTG9vcDo6SW1tZWRpYXRlKTsKIH0KIAogYm9vbCBUaHJlYWRlZENv
bXBvc2l0b3I6OnRyeUVuc3VyZUdMQ29udGV4dCgpCkBAIC0xOTgsNyArMTk5LDcgQEAgR0xDb250
ZXh0KiBUaHJlYWRlZENvbXBvc2l0b3I6OmdsQ29udGV4dCgpCiAKIHZvaWQgVGhyZWFkZWRDb21w
b3NpdG9yOjpmb3JjZVJlcGFpbnQoKQogewotICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLnBlcmZv
cm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAg
bV9jb21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIHJlbmRlckxheWVyVHJlZSgpOwogICAgIH0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVk
Q29tcG9zaXRvci5oCmluZGV4IGI3ZDcyZTIuLjNjMDAyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJl
YWRlZENvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKQEAgLTEwNSw3
ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kcmF3c0JhY2tncm91bmQgeyB0cnVlIH07
CiAgICAgdWludDY0X3QgbV9uYXRpdmVTdXJmYWNlSGFuZGxlIHsgMCB9OwogCi0gICAgQ29tcG9z
aXRpbmdSdW5Mb29wIG1fY29tcG9zaXRpbmdSdW5Mb29wOworICAgIHN0ZDo6dW5pcXVlX3B0cjxD
b21wb3NpdGluZ1J1bkxvb3A+IG1fY29tcG9zaXRpbmdSdW5Mb29wOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="308224"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>