Bug #: 4580
authoreseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 22 Aug 2005 18:17:53 +0000 (18:17 +0000)
committereseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 22 Aug 2005 18:17:53 +0000 (18:17 +0000)
Submitted by: eseidel
Reviewed by: darin
        * ksvg2/impl/SVGScriptElementImpl.cpp:
        (SVGScriptElementImpl::executeScript):
        Added necessary Interpreter::lock()/unlock() calls to prevent
        assertion failure when loading SVGs with JavaScript.
        http://bugzilla.opendarwin.org/show_bug.cgi?id=4580

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

WebCore/ChangeLog-2005-08-23
WebCore/ksvg2/svg/SVGScriptElementImpl.cpp

index ca83900..3d0ec8d 100644 (file)
@@ -2,6 +2,16 @@
 
         Reviewed by darin.
 
+        * ksvg2/impl/SVGScriptElementImpl.cpp:
+        (SVGScriptElementImpl::executeScript):
+        Added necessary Interpreter::lock()/unlock() calls to prevent
+        assertion failure when loading SVGs with JavaScript.
+        http://bugzilla.opendarwin.org/show_bug.cgi?id=4580
+
+2005-08-22  Eric Seidel  <eseidel@apple.com>
+
+        Reviewed by darin.
+
         * WebCore.xcodeproj/project.pbxproj:
         Applied Darin's nmedit workaround/build-speedup to WebCore+SVG.
         http://bugzilla.opendarwin.org/show_bug.cgi?id=4577
index 919ecf1..22f8f62 100644 (file)
@@ -83,6 +83,10 @@ void SVGScriptElementImpl::executeScript(KDOM::DocumentImpl *document, const KDO
        KDOM::Ecma *ecmaEngine = document->ecmaEngine();
        if(!ecmaEngine)
                return;
+                
+#ifdef APPLE_CHANGES
+    KJS::Interpreter::lock();
+#endif
 
        // Run script
        KJS::Completion comp = ecmaEngine->evaluate(jsCode.string(), ecmaEngine->globalObject());
@@ -118,6 +122,10 @@ void SVGScriptElementImpl::executeScript(KDOM::DocumentImpl *document, const KDO
                kdDebug() << "[SVGScriptElement] Return value: " << comp.value()->toString(ecmaEngine->globalExec()).qstring() << endl;
        else if(comp.complType() == KJS::Normal)
                kdDebug() << "[SVGScriptElement] Evaluated ecma script!" << endl;
+    
+#ifdef APPLE_CHANGES
+    KJS::Interpreter::unlock();
+#endif
 }
 
 // vim:ts=4:noet