WebKit Bugzilla
Attachment 348708 Details for
Bug 189156
: [JSC] Clean up StructureStubClearingWatchpoint
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-189156-20180901152011.patch (text/plain), 5.06 KB, created by
Yusuke Suzuki
on 2018-08-31 23:20:12 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Yusuke Suzuki
Created:
2018-08-31 23:20:12 PDT
Size:
5.06 KB
patch
obsolete
>Subversion Revision: 235579 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index 4d5e2e36ff39eb349b80e45070cd2547f9139fdc..8b79f5abed43075b1ea66450f818fa6d15250ea5 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,21 @@ >+2018-08-31 Yusuke Suzuki <yusukesuzuki@slowstart.org> >+ >+ [JSC] Clean up StructureStubClearingWatchpoint >+ https://bugs.webkit.org/show_bug.cgi?id=189156 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Cleaning up StructureStubClearingWatchpoint by holding StructureStubClearingWatchpoint in Bag >+ in WatchpointsOnStructureStubInfo. This removes hacky linked list code for StructureStubClearingWatchpoint. >+ >+ * bytecode/StructureStubClearingWatchpoint.cpp: >+ (JSC::WatchpointsOnStructureStubInfo::addWatchpoint): >+ (JSC::StructureStubClearingWatchpoint::~StructureStubClearingWatchpoint): Deleted. >+ (JSC::StructureStubClearingWatchpoint::push): Deleted. >+ (JSC::WatchpointsOnStructureStubInfo::~WatchpointsOnStructureStubInfo): Deleted. >+ * bytecode/StructureStubClearingWatchpoint.h: >+ (JSC::StructureStubClearingWatchpoint::StructureStubClearingWatchpoint): >+ > 2018-08-31 Mark Lam <mark.lam@apple.com> > > Fix exception check accounting in constructJSWebAssemblyCompileError(). >diff --git a/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp b/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp >index 78163579b8781271ea4a16d6177a840a9800505e..648b1e8f58d68adc5f4ee6ddeee76911f9e77898 100644 >--- a/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp >+++ b/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp >@@ -34,20 +34,6 @@ > > namespace JSC { > >-StructureStubClearingWatchpoint::~StructureStubClearingWatchpoint() >-{ >- for (auto current = WTFMove(m_next); current; current = WTFMove(current->m_next)) { } >-} >- >-StructureStubClearingWatchpoint* StructureStubClearingWatchpoint::push( >- const ObjectPropertyCondition& key, >- WatchpointsOnStructureStubInfo& holder, >- std::unique_ptr<StructureStubClearingWatchpoint>& head) >-{ >- head = std::make_unique<StructureStubClearingWatchpoint>(key, holder, WTFMove(head)); >- return head.get(); >-} >- > void StructureStubClearingWatchpoint::fireInternal(VM& vm, const FireDetail&) > { > if (!m_key || !m_key.isWatchable(PropertyCondition::EnsureWatchability)) { >@@ -68,13 +54,9 @@ void StructureStubClearingWatchpoint::fireInternal(VM& vm, const FireDetail&) > m_key.object()->structure(vm)->addTransitionWatchpoint(this); > } > >-WatchpointsOnStructureStubInfo::~WatchpointsOnStructureStubInfo() >-{ >-} >- > StructureStubClearingWatchpoint* WatchpointsOnStructureStubInfo::addWatchpoint(const ObjectPropertyCondition& key) > { >- return StructureStubClearingWatchpoint::push(key, *this, m_head); >+ return m_watchpoints.add(key, *this); > } > > StructureStubClearingWatchpoint* WatchpointsOnStructureStubInfo::ensureReferenceAndAddWatchpoint( >diff --git a/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h b/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h >index 3c0a7fb4d612615811ab339b8ca95628bdc51130..07e1f746eda952c064275b926527fa987615b7c0 100644 >--- a/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h >+++ b/Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h >@@ -30,6 +30,7 @@ > > #if ENABLE(JIT) > >+#include <wtf/Bag.h> > #include <wtf/FastMalloc.h> > #include <wtf/Noncopyable.h> > >@@ -45,20 +46,11 @@ class StructureStubClearingWatchpoint : public Watchpoint { > public: > StructureStubClearingWatchpoint( > const ObjectPropertyCondition& key, >- WatchpointsOnStructureStubInfo& holder, >- std::unique_ptr<StructureStubClearingWatchpoint> next) >+ WatchpointsOnStructureStubInfo& holder) > : m_key(key) > , m_holder(holder) >- , m_next(WTFMove(next)) > { > } >- >- virtual ~StructureStubClearingWatchpoint(); >- >- static StructureStubClearingWatchpoint* push( >- const ObjectPropertyCondition& key, >- WatchpointsOnStructureStubInfo& holder, >- std::unique_ptr<StructureStubClearingWatchpoint>& head); > > protected: > void fireInternal(VM&, const FireDetail&) override; >@@ -66,7 +58,6 @@ class StructureStubClearingWatchpoint : public Watchpoint { > private: > ObjectPropertyCondition m_key; > WatchpointsOnStructureStubInfo& m_holder; >- std::unique_ptr<StructureStubClearingWatchpoint> m_next; > }; > > class WatchpointsOnStructureStubInfo { >@@ -79,8 +70,6 @@ class WatchpointsOnStructureStubInfo { > { > } > >- ~WatchpointsOnStructureStubInfo(); >- > StructureStubClearingWatchpoint* addWatchpoint(const ObjectPropertyCondition& key); > > static StructureStubClearingWatchpoint* ensureReferenceAndAddWatchpoint( >@@ -93,7 +82,7 @@ class WatchpointsOnStructureStubInfo { > private: > CodeBlock* m_codeBlock; > StructureStubInfo* m_stubInfo; >- std::unique_ptr<StructureStubClearingWatchpoint> m_head; >+ Bag<StructureStubClearingWatchpoint> m_watchpoints; > }; > > } // namespace JSC
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
saam
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 189156
:
348502
| 348708