Bug 125153 - crashes when starting a xhtml strict page
Summary: crashes when starting a xhtml strict page
Status: RESOLVED FIXED
Alias: None
Product: quanta
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: András Manţia
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-04-08 07:08 UTC by Christopher Leaver
Modified: 2006-09-02 01:05 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christopher Leaver 2006-04-08 07:08:25 UTC
Version:           3.5.2 (using KDE 3.5.2, Gentoo)
Compiler:          gcc version 3.3.6 (Gentoo 3.3.6, ssp-3.3.6-1.0, pie-8.7.8)
OS:                Linux (i686) release 2.6.12-gentoo-r4

I open a brand new project,  set XHTML-Strict and UTF-8 as project defaults.  Click the "standard" area, then click "close all" from the tab at the bottom.


Here's the backtra(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 11771)]
[KCrash handler]
#6  0xb78feeae in KHTMLPart::view () from /usr/kde/3.5/lib/libkhtml.so.4
#7  0x0833f36b in KafkaDocument::staticMetaObject ()
#8  0x0834e1db in KafkaDocument::staticMetaObject ()
#9  0x080a253d in QDict<KFileItem>::deleteItem ()
#10 0x08188e81 in QMapPrivate<QString, bool>::clear ()
#11 0x080d1450 in QString::~QString ()
#12 0x08102409 in QMapIterator<QString, bool>::dec ()
#13 0x08104b5d in QMapIterator<QString, bool>::dec ()
#14 0xb687a639 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#15 0xb7ebaf90 in KMdiMainFrm::viewActivated ()
   from /usr/kde/3.5/lib/libkmdi.so.1
#16 0xb7ebbc0e in KMdiMainFrm::qt_emit () from /usr/kde/3.5/lib/libkmdi.so.1
#17 0x080eeca1 in QString::~QString ()
#18 0xb687a671 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#19 0xb7eabb3e in KMdiChildView::activated ()
   from /usr/kde/3.5/lib/libkmdi.so.1
#20 0xb7eadbfb in KMdiChildView::activate ()
   from /usr/kde/3.5/lib/libkmdi.so.1
#21 0x08101ec6 in QMapIterator<QString, bool>::dec ()
#22 0x08103b91 in QMapIterator<QString, bool>::dec ()
#23 0x08104bdb in QMapIterator<QString, bool>::dec ()
#24 0xb687a639 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#25 0xb6b9acfd in QSignal::signal () from /usr/qt/3/lib/libqt-mt.so.3
#26 0xb689333d in QSignal::activate () from /usr/qt/3/lib/libqt-mt.so.3
#27 0xb6977bd2 in QPopupMenu::mouseReleaseEvent ()
   from /usr/qt/3/lib/libqt-mt.so.3
#28 0xb7110257 in KPopupMenu::mouseReleaseEvent ()
   from /usr/kde/3.5/lib/libkdeui.so.4
#29 0xb68ae211 in QWidget::event () from /usr/qt/3/lib/libqt-mt.so.3
#30 0xb682273c in QApplication::internalNotify ()
   from /usr/qt/3/lib/libqt-mt.so.3
#31 0xb6821c03 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
#32 0xb6e39566 in KApplication::notify ()
   from /usr/kde/3.5/lib/libkdecore.so.4
#33 0xb67bba09 in QETWidget::translateMouseEvent ()
   from /usr/qt/3/lib/libqt-mt.so.3
#34 0xb67b9a21 in QApplication::x11ProcessEvent ()
   from /usr/qt/3/lib/libqt-mt.so.3
#35 0xb67d05b5 in QEventLoop::processEvents ()
   from /usr/qt/3/lib/libqt-mt.so.3
#36 0xb6833df0 in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3
#37 0xb682299f in QApplication::enter_loop () from /usr/qt/3/lib/libqt-mt.so.3
#38 0xb697a955 in QPopupMenu::exec () from /usr/qt/3/lib/libqt-mt.so.3
#39 0x081040f2 in QMapIterator<QString, bool>::dec ()
#40 0x08104c0a in QMapIterator<QString, bool>::dec ()
#41 0xb687a639 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#42 0xb7274833 in KTabWidget::contextMenu ()
   from /usr/kde/3.5/lib/libkdeui.so.4
#43 0xb7273908 in KTabWidget::contextMenu ()
   from /usr/kde/3.5/lib/libkdeui.so.4
#44 0xb7274d17 in KTabWidget::qt_invoke () from /usr/kde/3.5/lib/libkdeui.so.4
#45 0xb7ecd805 in KMdiDocumentViewTabWidget::qt_invoke ()
   from /usr/kde/3.5/lib/libkmdi.so.1
#46 0xb687a639 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#47 0xb7270fe8 in KTabBar::contextMenu () from /usr/kde/3.5/lib/libkdeui.so.4
#48 0xb726fcd5 in KTabBar::mousePressEvent ()
   from /usr/kde/3.5/lib/libkdeui.so.4
#49 0xb68ae200 in QWidget::event () from /usr/qt/3/lib/libqt-mt.so.3
#50 0xb6997b52 in QTabBar::event () from /usr/qt/3/lib/libqt-mt.so.3
#51 0xb682273c in QApplication::internalNotify ()
   from /usr/qt/3/lib/libqt-mt.so.3
#52 0xb6821c03 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
#53 0xb6e39566 in KApplication::notify ()
   from /usr/kde/3.5/lib/libkdecore.so.4
#54 0xb67bbe0a in QETWidget::translateMouseEvent ()
   from /usr/qt/3/lib/libqt-mt.so.3
#55 0xb67b9a21 in QApplication::x11ProcessEvent ()
   from /usr/qt/3/lib/libqt-mt.so.3
#56 0xb67d05b5 in QEventLoop::processEvents ()
   from /usr/qt/3/lib/libqt-mt.so.3
#57 0xb6833df0 in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3
#58 0xb6833cb2 in QEventLoop::exec () from /usr/qt/3/lib/libqt-mt.so.3
#59 0xb6822947 in QApplication::exec () from /usr/qt/3/lib/libqt-mt.so.3
#60 0x080a80d9 in QPtrList<char>::deleteItem ()
#61 0xb612a51d in __libc_start_main () from /lib/libc.so.6
#62 0x0808f021 in ?? ()
ce:
Comment 1 András Manţia 2006-04-23 21:05:26 UTC
> open a brand new project, set XHTML-Strict and UTF-8 as project
> defaults. Click the "standard" area, then click "close all" from the
> tab at the bottom.


What is that "standard" area? Did you switch to VPL?
I did the following and couldn't reproduce:
- create new project, use XHTML Strcit and UTF-* for the project
- right click on the Untitled1 tab and select Close All
Comment 2 András Manţia 2006-09-02 01:05:06 UTC
SVN commit 579903 by amantia:

Don't crash when closing a document in VPL mode.
Should fix the following bugs:

BUGS: 133082, 126585, 125153

 M  +1 -0      ChangeLog  
 M  +7 -9      src/quantaview.cpp  
 M  +8 -8      src/viewmanager.cpp  


--- branches/KDE/3.5/kdewebdev/quanta/ChangeLog #579902:579903
@@ -7,6 +7,7 @@
       - fix Save As problems, possibly #131728
       - add some more special characters to the list [#130513, #124628]
       - crash fix in CSS editor [#131849]
+      - don't crash when closing a document in VPL mode [#133082, #126585, #125153]
 
 Version 3.5.4 (Release date: 02-08-2006; Started 24-06-2005):
  - bugfixes:
--- branches/KDE/3.5/kdewebdev/quanta/src/quantaview.cpp #579902:579903
@@ -136,6 +136,7 @@
         m_customWidget->reparent(0L, 0, QPoint(), false);
     if (!saveModified())
           return false;
+    slotSetSourceLayout();
     if (static_cast<QuantaView *>(quantaApp->activeWindow()) == this)
     {
         parser->setSAParserEnabled(false);
@@ -143,8 +144,6 @@
         delete baseNode;
         baseNode = 0L;
         kdDebug(24000) << "Node objects after delete :" << NN << " baseNode= " << baseNode << endl;
-        if (m_kafkaDocument && m_kafkaDocument->getKafkaWidget() && m_kafkaDocument->getKafkaWidget()->view())
-          m_kafkaDocument->getKafkaWidget()->view()->reparent(0, 0, QPoint(), false);
     }
     if (m_document)
     {
@@ -152,8 +151,6 @@
       Project::ref()->saveBookmarks(url, dynamic_cast<KTextEditor::MarkInterface*>(m_document->doc()));
       emit eventHappened("before_close", url.url(), QString::null);
       m_currentViewsLayout = -1;
-      //slotSetSourceLayout(); //set the layout to source only, otherwise it crashes...
-     // m_kafkaDocument->getKafkaWidget()->view()->reparent(0, 0, QPoint(), false);
 //      m_document->closeTempFile();
       if (!m_document->isUntitled() && url.isLocalFile())
       {
@@ -161,7 +158,7 @@
 //        kdDebug(24000) << "removeFile[mayRemove]: " << url.path() << endl;
       }
       Project::ref()->saveCursorPosition(url, dynamic_cast<KTextEditor::ViewCursorInterface*>(m_document->view()));
-    
+
       quantaApp->menuBar()->activateItemAt(-1);
       quantaApp->guiFactory()->removeClient(m_document->view());
       emit eventHappened("after_close", url.url(), QString::null);
@@ -372,6 +369,7 @@
 
 //show the document if full size
    m_splitter->hide();
+   m_kafkaDocument->getKafkaWidget()->view()->reparent(0, 0, QPoint(), false);
    m_document->view()->reparent(m_documentArea, 0, QPoint(), true);
    m_document->view()->resize(m_documentArea->size());
    m_viewLayout->addWidget(m_documentArea, 1, 0);
@@ -751,20 +749,20 @@
 {
   if (m_document)
   {
-    if (m_currentFocus == QuantaView::VPLFocus || 
+    if (m_currentFocus == QuantaView::VPLFocus ||
         (m_currentFocus == QuantaView::SourceFocus && qConfig.smartTagInsertion))
       insertOutputInTheNodeTree("", "", quantaApp->showTagDialogAndReturnNode(tag, attr));
     else
     {
       QString selection;
-      if (m_document->selectionIf)  
+      if (m_document->selectionIf)
         selection = m_document->selectionIf->selection();
       TagDialog *dlg = new TagDialog(QuantaCommon::tagFromDTD(m_document->getDTDIdentifier(), tag), selection, attr, baseURL());
       if (dlg->exec())
       {
         dlg->insertTag(m_document, insertInLine);
       }
-  
+
       delete dlg;
     }
   }
@@ -996,7 +994,7 @@
        resize(width(), height());
   } else
   {
-/*    
+/*
     kdDebug(24000) << "m_documentArea->height(): " << m_documentArea->height() << endl;
     kdDebug(24000) << "ToolbarTabWidget::ref()->height(): " << ToolbarTabWidget::ref()->height() << " hidden: " << ToolbarTabWidget::ref()->isHidden() << " visible: " << ToolbarTabWidget::ref()->isVisible() << endl;
     kdDebug(24000) <<"sum: " << m_documentArea->height() + ToolbarTabWidget::ref()->height() << endl;
--- branches/KDE/3.5/kdewebdev/quanta/src/viewmanager.cpp #579902:579903
@@ -235,7 +235,7 @@
   if (w && !w->isUntitled())
   {
     emit viewActivated(w->url());
-    
+
     bool flag = TagActionManager::canIndentDTD(w->defaultDTD()->name);
     quantaApp->actionCollection()->action("apply_source_indentation")->setEnabled(flag);
   }
@@ -304,7 +304,7 @@
       return;  //save aborted
     }
   }
-  
+
   for (childIt = children.begin(); childIt != children.end(); ++childIt)
   {
       view = *childIt;
@@ -477,7 +477,7 @@
   disconnect(quantaApp, SIGNAL(viewActivated (KMdiChildView *)), this, SLOT(slotViewActivated(KMdiChildView*)));
   disconnect(quantaApp, SIGNAL(lastChildViewClosed()), this, SLOT(slotLastViewClosed()));
   ToolbarTabWidget::ref()->reparent(0L, 0, QPoint(), false);
-  
+
   for (childIt = children.begin(); childIt != children.end(); ++childIt)
   {
       view = dynamic_cast<QuantaView*>(*childIt);
@@ -525,7 +525,7 @@
       quantaApp->slotNewStatus();
   }
   emit filesClosed(true);
-  return true; 
+  return true;
 }
 
 bool ViewManager::isOneModified()
@@ -587,10 +587,10 @@
    if (m_separatorVisible)
        m_tabPopup->removeItemAt(SEPARATOR_INDEX);
    m_separatorVisible = false;
-   m_contextView = dynamic_cast<QuantaView*>(widget);   
+   m_contextView = dynamic_cast<QuantaView*>(widget);
    Document *w = 0L;
    if (m_contextView)
-    w = m_contextView->document();       
+    w = m_contextView->document();
    if (w)
    {
        if (!w->isUntitled())
@@ -620,7 +620,7 @@
    bool bookmarksFound = false;
    if (w && w->markIf)
    {
-     m_bookmarks->setDocument(w);           
+     m_bookmarks->setDocument(w);
      QPtrList<KTextEditor::Mark> m = w->markIf->marks();
      QPtrListIterator<KTextEditor::Mark> it(m);
      for(; *it; ++it)
@@ -631,7 +631,7 @@
          break;
        }
      }
-   }  
+   }
    m_tabPopup->setItemVisible(m_bookmarksMenuId, bookmarksFound);
 #ifdef ENABLE_CVSSERVICE
    if (w && w->url().isLocalFile() && !w->isUntitled() && CVSService::ref()->exists())