rpms/kdelibs/devel kdelibs-4.1.1-bz#461725-regression.patch, NONE, 1.1 kdelibs.spec, 1.376, 1.377

Than Ngo than at fedoraproject.org
Wed Sep 17 09:46:00 UTC 2008


Author: than

Update of /cvs/extras/rpms/kdelibs/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv13656

Modified Files:
	kdelibs.spec 
Added Files:
	kdelibs-4.1.1-bz#461725-regression.patch 
Log Message:
#461725, revert the patch to fix the regression


kdelibs-4.1.1-bz#461725-regression.patch:

--- NEW FILE kdelibs-4.1.1-bz#461725-regression.patch ---
Index: khtml/khtml_part.cpp
===================================================================
--- khtml/khtml_part.cpp	(Revision 852920)
+++ khtml/khtml_part.cpp	(Revision 852919)
@@ -1080,7 +1080,8 @@
   if ( !d->m_frame->m_jscript )
     if (!createJScript(d->m_frame))
       return 0;
-   d->m_frame->m_jscript->setDebugEnabled(d->m_bJScriptDebugEnabled);
+  if (d->m_bJScriptDebugEnabled)
+    d->m_frame->m_jscript->setDebugEnabled(true);
 
   return d->m_frame->m_jscript;
 }
Index: khtml/ecma/debugger/debugwindow.cpp
===================================================================
--- khtml/ecma/debugger/debugwindow.cpp	(Revision 852920)
+++ khtml/ecma/debugger/debugwindow.cpp	(Revision 852919)
@@ -91,12 +91,23 @@
 using namespace KJSDebugger;
 
 DebugWindow* DebugWindow::s_debugger = 0;
+DebugWindow *DebugWindow::createInstance()
+{
+    Q_ASSERT(!s_debugger);
+    s_debugger = new DebugWindow();
+    return s_debugger;
+}
 
+void DebugWindow::destroyInstance()
+{
+    Q_ASSERT(s_debugger);
+    Q_ASSERT(s_debugger->m_activeSessionCtxs.isEmpty());
+    s_debugger->hide();
+    delete s_debugger;
+}
+
 DebugWindow * DebugWindow::window()
 {
-    if (!s_debugger)
-        s_debugger = new DebugWindow();
-
     return s_debugger;
 }
 
@@ -365,8 +376,6 @@
     assert(m_docsForIntrp.isEmpty());
     assert(m_docForSid.isEmpty());
     assert(m_docForIUKey.isEmpty());
-    assert(m_activeSessionCtxs.isEmpty());
-    s_debugger = 0;
 }
 
 void DebugWindow::closeEvent(QCloseEvent* event)
Index: khtml/ecma/debugger/debugwindow.h
===================================================================
--- khtml/ecma/debugger/debugwindow.h	(Revision 852920)
+++ khtml/ecma/debugger/debugwindow.h	(Revision 852919)
@@ -39,7 +39,6 @@
 #include "khtml_pagecache.h"
 #include "khtml_part.h"
 #include "dom/dom_misc.h"
-#include "misc/shared.h"
 
 #include <QStack>
 #include <QVector>
@@ -72,8 +71,7 @@
 *
 * There is only one debug window per program. This can be obtained by calling #instance
 */
-class DebugWindow : public KXmlGuiWindow, public KJS::Debugger, public KComponentData,
-                    public khtml::Shared<DebugWindow>
+class DebugWindow : public KXmlGuiWindow, public KJS::Debugger, public KComponentData
 {
     Q_OBJECT
 
@@ -81,6 +79,8 @@
     DebugWindow(QWidget *parent = 0);
     virtual ~DebugWindow();
 
+    static DebugWindow *createInstance();
+    static void destroyInstance();
     static DebugWindow *window();
 
     // Returns true if the debugger is active, and has blocked the execution
Index: khtml/ecma/kjs_proxy.cpp
===================================================================
--- khtml/ecma/kjs_proxy.cpp	(Revision 852920)
+++ khtml/ecma/kjs_proxy.cpp	(Revision 852919)
@@ -66,9 +66,9 @@
 
   void initScript();
   void applyUserAgent();
+
 private:
   KJS::ScriptInterpreter* m_script;
-  WTF::RefPtr<DebugWindow> m_debugWindow;
   bool m_debugEnabled;
 #ifndef NDEBUG
   static int s_count;
@@ -141,8 +141,8 @@
 #ifdef KJS_DEBUGGER
     if (inlineCode)
         filename = "(unknown file)";
-    if (m_debugWindow)
-        m_debugWindow->attach(m_script);
+    if (DebugWindow::window())
+        DebugWindow::window()->attach(m_script);
 #else
     Q_UNUSED(baseLine);
 #endif
@@ -202,8 +202,9 @@
   // (we used to delete and re-create it, previously)
     if (m_script) {
 #ifdef KJS_DEBUGGER
-        if (m_debugWindow)
-            m_debugWindow->clearInterpreter(m_script);
+        DebugWindow *debugWin = DebugWindow::window();
+        if (debugWin)
+            debugWin->clearInterpreter(m_script);
 #endif
         m_script->clear();
 
@@ -224,14 +225,6 @@
 	    ;
     JSLock::unlock();
   }
-
-#ifdef KJS_DEBUGGER
-  // Detach from debugging entirely if it's been turned off.
-  if (m_debugWindow && !m_debugEnabled) {
-    m_debugWindow->detach(m_script);
-    m_debugWindow = 0;
-  }
-#endif
 }
 
 DOM::EventListener *KJSProxyImpl::createHTMLEventHandler(QString sourceUrl, QString name, QString code, DOM::NodeImpl *node)
@@ -239,8 +232,8 @@
   initScript();
 
 #ifdef KJS_DEBUGGER
-    if (m_debugWindow)
-        m_debugWindow->attach(m_script);
+    if (DebugWindow::window())
+        DebugWindow::window()->attach(m_script);
 #else
     Q_UNUSED(sourceUrl);
 #endif
@@ -269,21 +262,30 @@
 {
 #ifdef KJS_DEBUGGER
   m_debugEnabled = enabled;
-
-  // Note that we attach to the debugger only before
-  // running a script. Detaches/disabling are done between
-  // documents, at clear. Both are done so the debugger
-  // see the entire session
-  if (enabled)
-    m_debugWindow = DebugWindow::window();
+  //if (m_script)
+  //    m_script->setDebuggingEnabled(enabled);
+  // NOTE: this is consistent across all KJSProxyImpl instances, as we only
+  // ever have 1 debug window
+    if (!enabled && DebugWindow::window())
+    {
+        DebugWindow::destroyInstance();
+    }
+    else if (enabled && !DebugWindow::window())
+    {
+        DebugWindow::createInstance();
+        initScript();
+        DebugWindow::window()->attach(m_script);
+    }
+#else
+    Q_UNUSED(enabled);
 #endif
 }
 
 void KJSProxyImpl::showDebugWindow(bool /*show*/)
 {
 #ifdef KJS_DEBUGGER
-    if (m_debugWindow)
-        m_debugWindow->show();
+    if (DebugWindow::window())
+        DebugWindow::window()->show();
 #else
     //Q_UNUSED(show);
 #endif


Index: kdelibs.spec
===================================================================
RCS file: /cvs/extras/rpms/kdelibs/devel/kdelibs.spec,v
retrieving revision 1.376
retrieving revision 1.377
diff -u -r1.376 -r1.377
--- kdelibs.spec	13 Sep 2008 15:48:35 -0000	1.376
+++ kdelibs.spec	17 Sep 2008 09:45:29 -0000	1.377
@@ -2,7 +2,7 @@
 
 Summary: K Desktop Environment 4 - Libraries
 Version: 4.1.1
-Release: 8%{?dist}
+Release: 9%{?dist}
 
 %if 0%{?fedora} > 8
 Name: kdelibs
@@ -78,6 +78,7 @@
 # fix running commands in kglobalconfig before KComponentData init (#455130)
 Patch19: kdelibs-4.1.0-#455130.patch
 Patch20: kdelibs-4.1.1-cmake.patch
+Patch21: kdelibs-4.1.1-bz#461725-regression.patch
 
 ## upstream patches
 Patch100: kdelibs-4.1.1-kde#169447-khtml-regression.patch
@@ -209,6 +210,7 @@
 %patch18 -p1 -b .kstandarddirs
 %patch19 -p1 -b .#455130
 %patch20 -p1 -b .cmake
+%patch21 -p0 -b .bz#461725-regression
 
 ## upstream patches
 %patch100 -p0 -b .kde#169447-khtml-regression
@@ -376,6 +378,9 @@
 
 
 %changelog
+* Wed Sep 17 2008 Than Ngo <than at redhat.com> 4.1.1-9
+- #461725, revert the patch to fix the regression
+
 * Sat Sep 13 2008 Than Ngo <than at redhat.com> 4.1.1-8
 - fix kdelibs-4.1.1-kdeui-widgets-fixes.patch
 




More information about the fedora-extras-commits mailing list