Unreviewed, rolling out r149338.
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 30 Apr 2013 10:43:55 +0000 (10:43 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 30 Apr 2013 10:43:55 +0000 (10:43 +0000)
http://trac.webkit.org/changeset/149338
https://bugs.webkit.org/show_bug.cgi?id=115409

Broke layout/perf/API tests on non-Mac:
ThreadSpecific<RefPtr<RunLoop>> does not initialize RunLoop
(Requested by rakuco on #webkit).

* platform/RunLoop.cpp:
(WebCore::RunLoop::current):
* platform/RunLoop.h:
(RunLoop):
* platform/cf/RunLoopCF.cpp:
(WebCore::RunLoop::initializeMainRunLoop):
(WebCore::RunLoop::current):
(WebCore::RunLoop::~RunLoop):
* platform/efl/RunLoopEfl.cpp:
(WebCore::RunLoop::~RunLoop):
* platform/gtk/RunLoopGtk.cpp:
(WebCore::RunLoop::~RunLoop):
* platform/win/RunLoopWin.cpp:
(WebCore::RunLoop::~RunLoop):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@149358 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/RunLoop.cpp
Source/WebCore/platform/RunLoop.h
Source/WebCore/platform/cf/RunLoopCF.cpp
Source/WebCore/platform/efl/RunLoopEfl.cpp
Source/WebCore/platform/gtk/RunLoopGtk.cpp
Source/WebCore/platform/win/RunLoopWin.cpp

index 45c1763d5abb3e85ecf7a39ab6c0a4be298ac7d5..e4e49438933ead81758d139f1b36bc725c03ea7f 100644 (file)
@@ -1,3 +1,28 @@
+2013-04-30  Commit Queue  <rniwa@webkit.org>
+
+        Unreviewed, rolling out r149338.
+        http://trac.webkit.org/changeset/149338
+        https://bugs.webkit.org/show_bug.cgi?id=115409
+
+        Broke layout/perf/API tests on non-Mac:
+        ThreadSpecific<RefPtr<RunLoop>> does not initialize RunLoop
+        (Requested by rakuco on #webkit).
+
+        * platform/RunLoop.cpp:
+        (WebCore::RunLoop::current):
+        * platform/RunLoop.h:
+        (RunLoop):
+        * platform/cf/RunLoopCF.cpp:
+        (WebCore::RunLoop::initializeMainRunLoop):
+        (WebCore::RunLoop::current):
+        (WebCore::RunLoop::~RunLoop):
+        * platform/efl/RunLoopEfl.cpp:
+        (WebCore::RunLoop::~RunLoop):
+        * platform/gtk/RunLoopGtk.cpp:
+        (WebCore::RunLoop::~RunLoop):
+        * platform/win/RunLoopWin.cpp:
+        (WebCore::RunLoop::~RunLoop):
+
 2013-04-30  Alberto Garcia  <agarcia@igalia.com>
 
         ImageBufferData: add BlackBerry header
index 5d858f3a248b04b0b9365fb4dac05e02913eb285..7c02c0c8ac3ca9e9e1ce72e5f9cdbfc409a89eab 100644 (file)
@@ -43,8 +43,8 @@ void RunLoop::initializeMainRunLoop()
 
 RunLoop* RunLoop::current()
 {
-    DEFINE_STATIC_LOCAL(WTF::ThreadSpecific<RefPtr<RunLoop> >, runLoopData, ());
-    return runLoopData->get();
+    DEFINE_STATIC_LOCAL(WTF::ThreadSpecific<RunLoop>, runLoopData, ());
+    return &*runLoopData;
 }
 
 RunLoop* RunLoop::main()
index 793ab3bd5b470d1571e6679ef93cbaf0969c8a44..b3ed5767a9fdda4fdba73f58c259d72ecea17029 100644 (file)
@@ -45,7 +45,7 @@
 
 namespace WebCore {
 
-class RunLoop : public ThreadSafeRefCounted<RunLoop> {
+class RunLoop {
 public:
     // Must be called from the main thread (except for the Mac platform, where it
     // can be called from any thread).
@@ -56,7 +56,6 @@ public:
 
     static RunLoop* current();
     static RunLoop* main();
-    ~RunLoop();
 
     void dispatch(const Function<void()>&);
 
@@ -134,6 +133,7 @@ private:
     friend class WTF::ThreadSpecific<RunLoop>;
 
     RunLoop();
+    ~RunLoop();
 
     void performWork();
 
index a0fb8f4d60c4f0a823565617cf7f30023ef4af87..acdf0e1161b8d403b4a42cd4f85e8f8d79f0d973 100644 (file)
@@ -38,7 +38,7 @@ void RunLoop::initializeMainRunLoop()
 {
     static dispatch_once_t onceToken;
     dispatch_once(&onceToken, ^{
-        s_mainRunLoop = adoptRef(new RunLoop(CFRunLoopGetMain())).leakRef();
+        s_mainRunLoop = new RunLoop(CFRunLoopGetMain());
     });
 }
 
@@ -47,8 +47,8 @@ RunLoop* RunLoop::current()
     if (pthread_main_np())
         return RunLoop::main();
     
-    DEFINE_STATIC_LOCAL(WTF::ThreadSpecific<RefPtr<RunLoop> >, runLoopData, ());
-    return runLoopData->get();
+    DEFINE_STATIC_LOCAL(WTF::ThreadSpecific<RunLoop>, runLoopData, ());
+    return &*runLoopData;
 }
 
 RunLoop* RunLoop::main()
@@ -88,8 +88,7 @@ RunLoop::RunLoop(CFRunLoopRef runLoop)
 
 RunLoop::~RunLoop()
 {
-    ASSERT(this != main());
-
+    // FIXME: Tear down the work item queue here.
     CFRunLoopSourceInvalidate(m_runLoopSource);
     CFRelease(m_runLoopSource);
 }
index 762e6e4ed4bcca63613dac1dab6e05fadd5d161b..a381b367d33807cfff9373ba7309fee2e765a156 100644 (file)
@@ -46,7 +46,6 @@ RunLoop::RunLoop()
 
 RunLoop::~RunLoop()
 {
-    ASSERT(this != main());
 }
 
 void RunLoop::run()
index 3a758f0d4f10ad83745d9a023799459ac8ad7e6a..190f35ca66d220b40d4f63f7d9f6c9842757771d 100644 (file)
@@ -46,8 +46,6 @@ RunLoop::RunLoop()
 
 RunLoop::~RunLoop()
 {
-    ASSERT(this != main());
-
     for (int i = m_runLoopMainLoops.size() - 1; i >= 0; --i) {
         if (!g_main_loop_is_running(m_runLoopMainLoops[i].get()))
             continue;
index 8f78b7ea79a00bc6e79a6119e7b5ee533cc367ff..17d6845e9ffdc3928c067c7c15883aab90d29a68 100644 (file)
@@ -107,7 +107,6 @@ RunLoop::RunLoop()
 RunLoop::~RunLoop()
 {
     // FIXME: Tear down the work item queue here.
-    ASSERT(this != main());
 }
 
 void RunLoop::wakeUp()