WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
trying to get things to build
blah.patch (text/plain), 21.85 KB, created by
Filip Pizlo
on 2016-10-25 14:49:35 PDT
(
hide
)
Description:
trying to get things to build
Filename:
MIME Type:
Creator:
Filip Pizlo
Created:
2016-10-25 14:49:35 PDT
Size:
21.85 KB
patch
obsolete
>Index: Source/JavaScriptCore/ChangeLog >=================================================================== >--- Source/JavaScriptCore/ChangeLog (revision 207841) >+++ Source/JavaScriptCore/ChangeLog (working copy) >@@ -1,3 +1,56 @@ >+2016-10-25 Filip Pizlo <fpizlo@apple.com> >+ >+ HeapTimer should not hardcode all of its subclasses and USE(CF) shouldn't be a bizarre special case >+ https://bugs.webkit.org/show_bug.cgi?id=163947 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ I want to introduce another HeapTimer. Prior to this change, that would have meant writing >+ exact copies of that timer's logic for each platform that has a HeapTimer (CF, GLIB, and >+ EFL). That logic would in turn be a duplicate of the logic already present in >+ IncrementalSweeper and GCActivityCallback: all of the subclasses of HeapTimer have their >+ own code for scheduling timers, so a new subclass would have to duplicate that code. Then, >+ to add insult to injury, the USE(CF) version of HeapTimer would have to have an extra case >+ for that new subclass since it doesn't use virtual methods effectively. >+ >+ This changes HeapTimer on USE(CF) to know to get its runloop from Heap and to use virtual >+ methods effectively so that it doesn't have to know about all of its subclasses. >+ >+ This also moves IncrementalSweeper's code for scheduling timers into HeapTimer. This means >+ that future subclasses of HeapTimer could simply use that logic. >+ >+ This keeps changes to GCActivityCallback to a minimum. It still has a lot of >+ platform-specific code and I'm not sure that this code can be trivially deduplicated since >+ that code has more quirks. That's fine for now, since I mainly just need a sane way of >+ creating new timers that use IncrementalSweeper-like scheduling logic. >+ >+ * heap/EdenGCActivityCallback.cpp: >+ * heap/EdenGCActivityCallback.h: >+ * heap/FullGCActivityCallback.cpp: >+ * heap/FullGCActivityCallback.h: >+ * heap/GCActivityCallback.cpp: >+ (JSC::GCActivityCallback::GCActivityCallback): >+ * heap/GCActivityCallback.h: >+ * heap/Heap.cpp: >+ (JSC::Heap::Heap): >+ * heap/Heap.h: >+ (JSC::Heap::runLoop): >+ * heap/HeapTimer.cpp: >+ (JSC::HeapTimer::Context::retain): >+ (JSC::HeapTimer::Context::release): >+ (JSC::HeapTimer::HeapTimer): >+ (JSC::HeapTimer::timerDidFire): >+ (JSC::HeapTimer::scheduleTimer): >+ (JSC::HeapTimer::cancelTimer): >+ (JSC::IncrementalSweeper::scheduleTimer): >+ (JSC::retainAPILock): Deleted. >+ (JSC::releaseAPILock): Deleted. >+ * heap/HeapTimer.h: >+ * heap/IncrementalSweeper.cpp: >+ (JSC::IncrementalSweeper::scheduleTimer): >+ (JSC::IncrementalSweeper::cancelTimer): Deleted. >+ * heap/IncrementalSweeper.h: >+ > 2016-10-25 Konstantin Tokarev <annulen@yandex.ru> > > [cmake] Check if jscLib and WebKitGUID targets exist before using them >Index: Source/JavaScriptCore/heap/EdenGCActivityCallback.cpp >=================================================================== >--- Source/JavaScriptCore/heap/EdenGCActivityCallback.cpp (revision 207841) >+++ Source/JavaScriptCore/heap/EdenGCActivityCallback.cpp (working copy) >@@ -94,6 +94,6 @@ double EdenGCActivityCallback::gcTimeSli > return 0; > } > >-#endif // USE(CF) || PLATFORM(EFL) >+#endif // USE(CF) || USE(GLIB) > > } // namespace JSC >Index: Source/JavaScriptCore/heap/EdenGCActivityCallback.h >=================================================================== >--- Source/JavaScriptCore/heap/EdenGCActivityCallback.h (revision 207841) >+++ Source/JavaScriptCore/heap/EdenGCActivityCallback.h (working copy) >@@ -36,13 +36,6 @@ public: > void doCollection() override; > > protected: >-#if USE(CF) >- EdenGCActivityCallback(Heap* heap, CFRunLoopRef runLoop) >- : GCActivityCallback(heap, runLoop) >- { >- } >-#endif >- > double lastGCLength() override; > double gcTimeSlice(size_t bytes) override; > double deathRate() override; >Index: Source/JavaScriptCore/heap/FullGCActivityCallback.cpp >=================================================================== >--- Source/JavaScriptCore/heap/FullGCActivityCallback.cpp (revision 207841) >+++ Source/JavaScriptCore/heap/FullGCActivityCallback.cpp (working copy) >@@ -110,6 +110,6 @@ double FullGCActivityCallback::gcTimeSli > return 0; > } > >-#endif // USE(CF) || PLATFORM(EFL) >+#endif // USE(CF) || USE(GLIB) > > } // namespace JSC >Index: Source/JavaScriptCore/heap/FullGCActivityCallback.h >=================================================================== >--- Source/JavaScriptCore/heap/FullGCActivityCallback.h (revision 207841) >+++ Source/JavaScriptCore/heap/FullGCActivityCallback.h (working copy) >@@ -39,13 +39,6 @@ public: > void setDidSyncGCRecently() { m_didSyncGCRecently = true; } > > protected: >-#if USE(CF) >- FullGCActivityCallback(Heap* heap, CFRunLoopRef runLoop) >- : GCActivityCallback(heap, runLoop) >- { >- } >-#endif >- > double lastGCLength() override; > double gcTimeSlice(size_t bytes) override; > double deathRate() override; >Index: Source/JavaScriptCore/heap/GCActivityCallback.cpp >=================================================================== >--- Source/JavaScriptCore/heap/GCActivityCallback.cpp (revision 207841) >+++ Source/JavaScriptCore/heap/GCActivityCallback.cpp (working copy) >@@ -50,12 +50,7 @@ const double timerSlop = 2.0; // Fudge f > > #if USE(CF) > GCActivityCallback::GCActivityCallback(Heap* heap) >- : GCActivityCallback(heap->vm(), CFRunLoopGetCurrent()) >-{ >-} >- >-GCActivityCallback::GCActivityCallback(Heap* heap, CFRunLoopRef runLoop) >- : GCActivityCallback(heap->vm(), runLoop) >+ : GCActivityCallback(heap->vm()) > { > } > #elif PLATFORM(EFL) >Index: Source/JavaScriptCore/heap/GCActivityCallback.h >=================================================================== >--- Source/JavaScriptCore/heap/GCActivityCallback.h (revision 207841) >+++ Source/JavaScriptCore/heap/GCActivityCallback.h (working copy) >@@ -70,8 +70,8 @@ protected: > virtual double deathRate() = 0; > > #if USE(CF) >- GCActivityCallback(VM* vm, CFRunLoopRef runLoop) >- : HeapTimer(vm, runLoop) >+ GCActivityCallback(VM* vm) >+ : HeapTimer(vm) > , m_enabled(true) > , m_delay(s_decade) > { >@@ -101,10 +101,6 @@ protected: > > bool m_enabled; > >-#if USE(CF) >-protected: >- GCActivityCallback(Heap*, CFRunLoopRef); >-#endif > #if USE(CF) || USE(GLIB) > protected: > void cancelTimer(); >Index: Source/JavaScriptCore/heap/Heap.cpp >=================================================================== >--- Source/JavaScriptCore/heap/Heap.cpp (revision 207841) >+++ Source/JavaScriptCore/heap/Heap.cpp (working copy) >@@ -219,13 +219,12 @@ Heap::Heap(VM* vm, HeapType heapType) > // schedule the timer if we've never done a collection. > , m_lastFullGCLength(0.01) > , m_lastEdenGCLength(0.01) >+#if USE(CF) >+ , m_runLoop(CFRunLoopGetCurrent()) >+#endif // USE(CF) > , m_fullActivityCallback(GCActivityCallback::createFullTimer(this)) > , m_edenActivityCallback(GCActivityCallback::createEdenTimer(this)) >-#if USE(CF) >- , m_sweeper(std::make_unique<IncrementalSweeper>(this, CFRunLoopGetCurrent())) >-#else > , m_sweeper(std::make_unique<IncrementalSweeper>(this)) >-#endif > , m_deferralDepth(0) > #if USE(FOUNDATION) > , m_delayedReleaseRecursionCount(0) >Index: Source/JavaScriptCore/heap/Heap.h >=================================================================== >--- Source/JavaScriptCore/heap/Heap.h (revision 207841) >+++ Source/JavaScriptCore/heap/Heap.h (working copy) >@@ -270,6 +270,10 @@ public: > unsigned barrierThreshold() const { return m_barrierThreshold; } > const unsigned* addressOfBarrierThreshold() const { return &m_barrierThreshold; } > >+#if USE(CF) >+ CFRunLoopRef runLoop() const { return m_runLoop.get(); } >+#endif // USE(CF) >+ > private: > friend class AllocatingScope; > friend class CodeBlock; >@@ -444,6 +448,9 @@ private: > Vector<WeakBlock*> m_logicallyEmptyWeakBlocks; > size_t m_indexOfNextLogicallyEmptyWeakBlockToSweep { WTF::notFound }; > >+#if USE(CF) >+ RetainPtr<CFRunLoopRef> m_runLoop; >+#endif // USE(CF) > RefPtr<FullGCActivityCallback> m_fullActivityCallback; > RefPtr<GCActivityCallback> m_edenActivityCallback; > std::unique_ptr<IncrementalSweeper> m_sweeper; >Index: Source/JavaScriptCore/heap/HeapTimer.cpp >=================================================================== >--- Source/JavaScriptCore/heap/HeapTimer.cpp (revision 207841) >+++ Source/JavaScriptCore/heap/HeapTimer.cpp (working copy) >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2012 Apple Inc. All rights reserved. >+ * Copyright (C) 2012, 2016 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -46,69 +46,71 @@ namespace JSC { > > const CFTimeInterval HeapTimer::s_decade = 60 * 60 * 24 * 365 * 10; > >-static const void* retainAPILock(const void* info) >-{ >- static_cast<JSLock*>(const_cast<void*>(info))->ref(); >- return info; >-} >- >-static void releaseAPILock(const void* info) >+HeapTimer::HeapTimer(VM* vm) >+ : m_vm(vm) >+ , m_apiLock(&vm->apiLock()) > { >- static_cast<JSLock*>(const_cast<void*>(info))->deref(); >+ setRunLoop(vm->heap.runLoop()); > } > >-HeapTimer::HeapTimer(VM* vm, CFRunLoopRef runLoop) >- : m_vm(vm) >- , m_runLoop(runLoop) >+void HeapTimer::setRunLoop(CFRunLoopRef runLoop) > { >- memset(&m_context, 0, sizeof(CFRunLoopTimerContext)); >- m_context.info = &vm->apiLock(); >- m_context.retain = retainAPILock; >- m_context.release = releaseAPILock; >- m_timer = adoptCF(CFRunLoopTimerCreate(kCFAllocatorDefault, s_decade, s_decade, 0, 0, HeapTimer::timerDidFire, &m_context)); >- CFRunLoopAddTimer(m_runLoop.get(), m_timer.get(), kCFRunLoopCommonModes); >+ if (m_runLoop) { >+ CFRunLoopRemoveTimer(m_runLoop.get(), m_timer.get(), kCFRunLoopCommonModes); >+ CFRunLoopTimerInvalidate(m_timer.get()); >+ m_runLoop.clear(); >+ m_timer.clear(); >+ } >+ >+ if (runLoop) { >+ m_runLoop = runLoop; >+ memset(&m_context, 0, sizeof(CFRunLoopTimerContext)); >+ m_context.info = this; >+ m_timer = adoptCF(CFRunLoopTimerCreate(kCFAllocatorDefault, s_decade, s_decade, 0, 0, HeapTimer::timerDidFire, &m_context)); >+ CFRunLoopAddTimer(m_runLoop.get(), m_timer.get(), kCFRunLoopCommonModes); >+ } > } > > HeapTimer::~HeapTimer() > { >- CFRunLoopRemoveTimer(m_runLoop.get(), m_timer.get(), kCFRunLoopCommonModes); >- CFRunLoopTimerInvalidate(m_timer.get()); >+ setRunLoop(0); > } > >-void HeapTimer::timerDidFire(CFRunLoopTimerRef timer, void* context) >+void HeapTimer::timerDidFire(CFRunLoopTimerRef, void* contextPtr) > { >- JSLock* apiLock = static_cast<JSLock*>(context); >- apiLock->lock(); >+ HeapTimer* timer = static_cast<HeapTimer*>(contextPtr); >+ timer->m_apiLock->lock(); > >- RefPtr<VM> vm = apiLock->vm(); >+ RefPtr<VM> vm = timer->m_apiLock->vm(); > if (!vm) { > // The VM has been destroyed, so we should just give up. >- apiLock->unlock(); >+ timer->m_apiLock->unlock(); > return; > } > >- HeapTimer* heapTimer = 0; >- if (vm->heap.fullActivityCallback() && vm->heap.fullActivityCallback()->m_timer.get() == timer) >- heapTimer = vm->heap.fullActivityCallback(); >- else if (vm->heap.edenActivityCallback() && vm->heap.edenActivityCallback()->m_timer.get() == timer) >- heapTimer = vm->heap.edenActivityCallback(); >- else if (vm->heap.sweeper()->m_timer.get() == timer) >- heapTimer = vm->heap.sweeper(); >- else >- RELEASE_ASSERT_NOT_REACHED(); >- > { > JSLockHolder locker(vm.get()); >- heapTimer->doWork(); >+ timer->doWork(); > } > >- apiLock->unlock(); >+ timer->m_apiLock->unlock(); >+} >+ >+void HeapTimer::scheduleTimer(double intervalInSeconds) >+{ >+ CFRunLoopTimerSetNextFireDate(m_timer.get(), CFAbsoluteTimeGetCurrent() + intervalInSeconds); >+} >+ >+void HeapTimer::cancelTimer() >+{ >+ CFRunLoopTimerSetNextFireDate(m_timer.get(), CFAbsoluteTimeGetCurrent() + s_decade); > } > > #elif PLATFORM(EFL) > > HeapTimer::HeapTimer(VM* vm) > : m_vm(vm) >+ , m_apiLock(&vm->apiLock()) > , m_timer(0) > { > } >@@ -143,6 +145,19 @@ bool HeapTimer::timerEvent(void* info) > return ECORE_CALLBACK_CANCEL; > } > >+void HeapTimer::scheduleTimer(double intervalInSeconds) >+{ >+ if (ecore_timer_freeze_get(m_timer)) >+ ecore_timer_thaw(m_timer); >+ >+ double targetTime = currentTime() + intervalInSeconds; >+ ecore_timer_interval_set(m_timer, targetTime); >+} >+ >+void HeapTimer::cancelTimer() >+{ >+ ecore_timer_freeze(m_timer); >+} > #elif USE(GLIB) > > static GSourceFuncs heapTimerSourceFunctions = { >@@ -197,6 +212,19 @@ void HeapTimer::timerDidFire() > m_apiLock->unlock(); > } > >+void HeapTimer::scheduleTimer(double intervalInSeconds) >+{ >+ auto delayDuration = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::duration<double>(intervalInSeconds)); >+ gint64 currentTime = g_get_monotonic_time(); >+ gint64 targetTime = currentTime + std::min<gint64>(G_MAXINT64 - currentTime, delayDuration.count()); >+ ASSERT(targetTime >= currentTime); >+ g_source_set_ready_time(m_timer.get(), targetTime); >+} >+ >+void HeapTimer::cancelTimer() >+{ >+ g_source_set_ready_time(m_timer.get(), -1); >+} > #else > HeapTimer::HeapTimer(VM* vm) > : m_vm(vm) >@@ -211,6 +239,13 @@ void HeapTimer::invalidate() > { > } > >+void HeapTimer::scheduleTimer(double) >+{ >+} >+ >+void HeapTimer::cancelTimer() >+{ >+} > #endif > > >Index: Source/JavaScriptCore/heap/HeapTimer.h >=================================================================== >--- Source/JavaScriptCore/heap/HeapTimer.h (revision 207841) >+++ Source/JavaScriptCore/heap/HeapTimer.h (working copy) >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2012, 2015 Apple Inc. All rights reserved. >+ * Copyright (C) 2012, 2015-2016 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -27,6 +27,7 @@ > > #include <wtf/Lock.h> > #include <wtf/RetainPtr.h> >+#include <wtf/ThreadSafeRefCounted.h> > #include <wtf/Threading.h> > > #if USE(CF) >@@ -44,24 +45,31 @@ class VM; > > class HeapTimer { > public: >+ HeapTimer(VM*); > #if USE(CF) >- HeapTimer(VM*, CFRunLoopRef); > static void timerDidFire(CFRunLoopTimerRef, void*); >-#else >- HeapTimer(VM*); > #endif > > JS_EXPORT_PRIVATE virtual ~HeapTimer(); > virtual void doWork() = 0; >+ >+ void scheduleTimer(double intervalInSeconds); >+ void cancelTimer(); >+ >+#if USE(CF) >+ void setRunLoop(CFRunLoopRef); >+#endif // USE(CF) > > protected: > VM* m_vm; > >+ RefPtr<JSLock> m_apiLock; > #if USE(CF) > static const CFTimeInterval s_decade; > > RetainPtr<CFRunLoopTimerRef> m_timer; > RetainPtr<CFRunLoopRef> m_runLoop; >+ > CFRunLoopTimerContext m_context; > > Lock m_shutdownMutex; >@@ -72,7 +80,6 @@ protected: > Ecore_Timer* m_timer; > #elif USE(GLIB) > void timerDidFire(); >- RefPtr<JSLock> m_apiLock; > GRefPtr<GSource> m_timer; > #endif > >Index: Source/JavaScriptCore/heap/IncrementalSweeper.cpp >=================================================================== >--- Source/JavaScriptCore/heap/IncrementalSweeper.cpp (revision 207841) >+++ Source/JavaScriptCore/heap/IncrementalSweeper.cpp (working copy) >@@ -31,80 +31,25 @@ > #include "JSString.h" > #include "MarkedBlock.h" > #include "JSCInlines.h" >- >-#if PLATFORM(EFL) >-#include <Ecore.h> > #include <wtf/CurrentTime.h> >-#elif USE(GLIB) >-#include <glib.h> >-#endif > > namespace JSC { > >-#if USE(CF) || PLATFORM(EFL) || USE(GLIB) >- > static const double sweepTimeSlice = .01; // seconds > static const double sweepTimeTotal = .10; > static const double sweepTimeMultiplier = 1.0 / sweepTimeTotal; > >-#if USE(CF) >-IncrementalSweeper::IncrementalSweeper(Heap* heap, CFRunLoopRef runLoop) >- : HeapTimer(heap->vm(), runLoop) >- , m_currentAllocator(nullptr) >-{ >-} >- >-void IncrementalSweeper::scheduleTimer() >-{ >- CFRunLoopTimerSetNextFireDate(m_timer.get(), CFAbsoluteTimeGetCurrent() + (sweepTimeSlice * sweepTimeMultiplier)); >-} >- >-void IncrementalSweeper::cancelTimer() >-{ >- CFRunLoopTimerSetNextFireDate(m_timer.get(), CFAbsoluteTimeGetCurrent() + s_decade); >-} >-#elif PLATFORM(EFL) >-IncrementalSweeper::IncrementalSweeper(Heap* heap) >- : HeapTimer(heap->vm()) >- , m_currentAllocator(nullptr) >-{ >-} >- > void IncrementalSweeper::scheduleTimer() > { >- if (ecore_timer_freeze_get(m_timer)) >- ecore_timer_thaw(m_timer); >- >- double targetTime = currentTime() + (sweepTimeSlice * sweepTimeMultiplier); >- ecore_timer_interval_set(m_timer, targetTime); >+ HeapTimer::scheduleTimer(sweepTimeSlice * sweepTimeMultiplier); > } > >-void IncrementalSweeper::cancelTimer() >-{ >- ecore_timer_freeze(m_timer); >-} >-#elif USE(GLIB) > IncrementalSweeper::IncrementalSweeper(Heap* heap) > : HeapTimer(heap->vm()) > , m_currentAllocator(nullptr) > { > } > >-void IncrementalSweeper::scheduleTimer() >-{ >- auto delayDuration = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::duration<double>(sweepTimeSlice * sweepTimeMultiplier)); >- gint64 currentTime = g_get_monotonic_time(); >- gint64 targetTime = currentTime + std::min<gint64>(G_MAXINT64 - currentTime, delayDuration.count()); >- ASSERT(targetTime >= currentTime); >- g_source_set_ready_time(m_timer.get(), targetTime); >-} >- >-void IncrementalSweeper::cancelTimer() >-{ >- g_source_set_ready_time(m_timer.get(), -1); >-} >-#endif >- > void IncrementalSweeper::doWork() > { > doSweep(WTF::monotonicallyIncreasingTime()); >@@ -157,30 +102,4 @@ void IncrementalSweeper::willFinishSweep > cancelTimer(); > } > >-#else >- >-IncrementalSweeper::IncrementalSweeper(Heap* heap) >- : HeapTimer(heap->vm()) >-{ >-} >- >-void IncrementalSweeper::doWork() >-{ >-} >- >-void IncrementalSweeper::startSweeping() >-{ >-} >- >-void IncrementalSweeper::willFinishSweeping() >-{ >-} >- >-bool IncrementalSweeper::sweepNextBlock() >-{ >- return false; >-} >- >-#endif >- > } // namespace JSC >Index: Source/JavaScriptCore/heap/IncrementalSweeper.h >=================================================================== >--- Source/JavaScriptCore/heap/IncrementalSweeper.h (revision 207841) >+++ Source/JavaScriptCore/heap/IncrementalSweeper.h (working copy) >@@ -36,11 +36,7 @@ class MarkedAllocator; > class IncrementalSweeper : public HeapTimer { > WTF_MAKE_FAST_ALLOCATED; > public: >-#if USE(CF) >- JS_EXPORT_PRIVATE IncrementalSweeper(Heap*, CFRunLoopRef); >-#else >- explicit IncrementalSweeper(Heap*); >-#endif >+ JS_EXPORT_PRIVATE explicit IncrementalSweeper(Heap*); > > void startSweeping(); > >@@ -48,14 +44,11 @@ public: > bool sweepNextBlock(); > void willFinishSweeping(); > >-#if USE(CF) || PLATFORM(EFL) || USE(GLIB) > private: > void doSweep(double startTime); > void scheduleTimer(); >- void cancelTimer(); > > MarkedAllocator* m_currentAllocator; >-#endif > }; > > } // namespace JSC >Index: Source/WebCore/ChangeLog >=================================================================== >--- Source/WebCore/ChangeLog (revision 207841) >+++ Source/WebCore/ChangeLog (working copy) >@@ -1,3 +1,14 @@ >+2016-10-25 Filip Pizlo <fpizlo@apple.com> >+ >+ HeapTimer should not hardcode all of its subclasses and USE(CF) shouldn't be a bizarre special case >+ https://bugs.webkit.org/show_bug.cgi?id=163947 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ No new tests because no new behavior. >+ >+ * platform/ios/WebSafeGCActivityCallbackIOS.h: >+ > 2016-10-25 Wenson Hsieh <wenson_hsieh@apple.com> > > Support InputEvent.dataTransfer for the InputEvent spec >Index: Source/WebCore/platform/ios/WebSafeGCActivityCallbackIOS.h >=================================================================== >--- Source/WebCore/platform/ios/WebSafeGCActivityCallbackIOS.h (revision 207841) >+++ Source/WebCore/platform/ios/WebSafeGCActivityCallbackIOS.h (working copy) >@@ -43,8 +43,9 @@ public: > > private: > WebSafeFullGCActivityCallback(JSC::Heap* heap) >- : JSC::FullGCActivityCallback(heap, WebThreadRunLoop()) >+ : JSC::FullGCActivityCallback(heap) > { >+ setRunLoop(WebThreadRunLoop()); > } > }; > >@@ -59,8 +60,9 @@ public: > > private: > WebSafeEdenGCActivityCallback(JSC::Heap* heap) >- : JSC::EdenGCActivityCallback(heap, WebThreadRunLoop()) >+ : JSC::EdenGCActivityCallback(heap) > { >+ setRunLoop(WebThreadRunLoop()); > } > }; > } // namespace WebCore >Index: Source/WebCore/platform/ios/WebSafeIncrementalSweeperIOS.h >=================================================================== >--- Source/WebCore/platform/ios/WebSafeIncrementalSweeperIOS.h (revision 207841) >+++ Source/WebCore/platform/ios/WebSafeIncrementalSweeperIOS.h (working copy) >@@ -34,8 +34,9 @@ namespace WebCore { > class WebSafeIncrementalSweeper final : public JSC::IncrementalSweeper { > public: > explicit WebSafeIncrementalSweeper(JSC::Heap* heap) >- : JSC::IncrementalSweeper(heap, WebThreadRunLoop()) >+ : JSC::IncrementalSweeper(heap) > { >+ setRunLoop(WebThreadRunLoop()); > } > > ~WebSafeIncrementalSweeper() override { } >Index: Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h >=================================================================== >--- Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h (revision 207841) >+++ Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h (working copy) >@@ -245,8 +245,8 @@ typedef NS_ENUM(NSInteger, _WKImmediateA > > @property (nonatomic, readonly) BOOL _webProcessIsResponsive WK_API_AVAILABLE(macosx(10.12), ios(10.0)); > >-@property (nonatomic, setter=_setFullscreenDelegate:) id<_WKFullscreenDelegate> _fullscreenDelegate WK_API_AVAILABLE(macos(10.13)); >-@property (nonatomic, readonly) BOOL _isInFullscreen WK_API_AVAILABLE(macos(WK_MAC_TBA)); >+@property (nonatomic, setter=_setFullscreenDelegate:) id<_WKFullscreenDelegate> _fullscreenDelegate WK_API_AVAILABLE(macosx(10.13)); >+@property (nonatomic, readonly) BOOL _isInFullscreen WK_API_AVAILABLE(macosx(WK_MAC_TBA)); > > @end >
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
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 163947
:
292766
|
292783
|
292785
|
292788
|
292805
|
292807
|
292821
|
292822
|
292825
|
292832