[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

mjs mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:47:46 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit b352e6308fae2361bd89e1d99db48cb4a1cec7a1
Author: mjs <mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Jul 17 18:55:17 2003 +0000

            Reviewed by John.
    
    	- fixed 3283076 - crash when doing 2nd query on the eBay channel (Sherlock) -- JavaScript locking issue?
    
    	I added a bit of minimal extra locking to WebCore to make sure
    	multithreaded apps that use WebKit on the main thread but do
    	JavaScript on other threads as well continue to work nicely.
    
            * khtml/ecma/kjs_proxy.cpp:
            (KJSProxyImpl::initScript): Lock interpreter around possible allocations or collections.
            * khtml/ecma/kjs_window.cpp:
            (Window::clear): Lock interpreter around possible allocations or collections.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4666 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index a4d4b54..6da8775 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,18 @@
+2003-07-17  Maciej Stachowiak  <mjs at apple.com>
+
+        Reviewed by John.
+
+	- fixed 3283076 - crash when doing 2nd query on the eBay channel (Sherlock) -- JavaScript locking issue?
+
+	I added a bit of minimal extra locking to WebCore to make sure
+	multithreaded apps that use WebKit on the main thread but do
+	JavaScript on other threads as well continue to work nicely.
+
+        * khtml/ecma/kjs_proxy.cpp:
+        (KJSProxyImpl::initScript): Lock interpreter around possible allocations or collections.
+        * khtml/ecma/kjs_window.cpp:
+        (Window::clear): Lock interpreter around possible allocations or collections.
+
 2003-07-17  Ken Kocienda  <kocienda at apple.com>
 
         Reviewed by John
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index a4d4b54..6da8775 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,18 @@
+2003-07-17  Maciej Stachowiak  <mjs at apple.com>
+
+        Reviewed by John.
+
+	- fixed 3283076 - crash when doing 2nd query on the eBay channel (Sherlock) -- JavaScript locking issue?
+
+	I added a bit of minimal extra locking to WebCore to make sure
+	multithreaded apps that use WebKit on the main thread but do
+	JavaScript on other threads as well continue to work nicely.
+
+        * khtml/ecma/kjs_proxy.cpp:
+        (KJSProxyImpl::initScript): Lock interpreter around possible allocations or collections.
+        * khtml/ecma/kjs_window.cpp:
+        (Window::clear): Lock interpreter around possible allocations or collections.
+
 2003-07-17  Ken Kocienda  <kocienda at apple.com>
 
         Reviewed by John
diff --git a/WebCore/khtml/ecma/kjs_proxy.cpp b/WebCore/khtml/ecma/kjs_proxy.cpp
index b6a66bc..5ac049f 100644
--- a/WebCore/khtml/ecma/kjs_proxy.cpp
+++ b/WebCore/khtml/ecma/kjs_proxy.cpp
@@ -26,6 +26,7 @@
 #include <khtml_part.h>
 #include <kprotocolmanager.h>
 #include <kdebug.h>
+#include <kjs/collector.h>
 
 using namespace KJS;
 
@@ -262,7 +263,9 @@ void KJSProxyImpl::initScript()
     return;
 
   // Build the global object - which is a Window instance
+  KJS::Interpreter::lock();
   Object globalObject( new Window(m_part) );
+  KJS::Interpreter::unlock();
 
   // Create a KJS interpreter for this part
   m_script = new KJS::ScriptInterpreter(globalObject, m_part);
diff --git a/WebCore/khtml/ecma/kjs_window.cpp b/WebCore/khtml/ecma/kjs_window.cpp
index eee407d..4787078 100644
--- a/WebCore/khtml/ecma/kjs_window.cpp
+++ b/WebCore/khtml/ecma/kjs_window.cpp
@@ -1034,6 +1034,7 @@ JSEventListener *Window::getJSEventListener(const Value& val, bool html)
 
 void Window::clear( ExecState *exec )
 {
+  KJS::Interpreter::lock();
   kdDebug(6070) << "Window::clear " << this << endl;
   delete winq;
   winq = new WindowQObject(this);;
@@ -1044,6 +1045,7 @@ void Window::clear( ExecState *exec )
   // Now recreate a working global object for the next URL that will use us
   KJS::Interpreter *interpreter = KJSProxy::proxy( m_part )->interpreter();
   interpreter->initGlobalObject();
+  KJS::Interpreter::unlock();
 }
 
 void Window::setCurrentEvent( DOM::Event *evt )

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list