Bug 81442 - Konqueror crashes when viewing 2 pdf files in different tabs
Summary: Konqueror crashes when viewing 2 pdf files in different tabs
Status: RESOLVED FIXED
Alias: None
Product: kpdf
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: RedHat Enterprise Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Christophe Devriese
URL:
Keywords:
: 80622 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-05-12 19:26 UTC by Dan
Modified: 2004-08-26 18:54 UTC (History)
1 user (show)

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 Dan 2004-05-12 19:26:08 UTC
Version:            (using KDE KDE 3.2.2)
Installed from:    RedHat RPMs
OS:                Linux

Go to http://www.sophos.com/support/docs/#smtp

Right-click on "SMTP on UNIX" under "Installation guides", choose "Open in new tab". When asked whether to
save or open, choose "Open".
Do the same with the link "SMTP on UNIX" under "User manuals" (ie open in new tab).

Go to the next tab (the installation guide), browse the file using either the space key or the "Next page" button in the toolbar. After scrolling 
down a few pages, close this tab. The next tab should now be active (the user manual pdf file).
Try to browse this file as well (again with the space key or with the "Next page" button). That's when it crashes.

Here is the backtrace:

(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...[New Thread 16384 (LWP 6885)]

(no debugging symbols found)...(no debugging symbols found)...
0x411e5876 in waitpid () from /lib/libpthread.so.0
#0  0x411e5876 in waitpid () from /lib/libpthread.so.0
#1  0x4087adc4 in KCrash::defaultCrashHandler(int) ()
   from /usr/lib/libkdecore.so.4
#2  0x411e45cd in __pthread_sighandler () from /lib/libpthread.so.0
#3  <signal handler called>
#4  0x420d405d in NameToCharCode::lookup(char const*) ()
   from /usr/lib/kde3/libkpdfpart.so
#5  0x420c37a9 in GlobalParams::mapNameToUnicode(char*) ()
   from /usr/lib/kde3/libkpdfpart.so
#6  0x420b2162 in Gfx8BitFont::Gfx8BitFont(XRef*, char const*, Ref, GString*, GfxFontType, Dict*) () from /usr/lib/kde3/libkpdfpart.so
#7  0x420af92f in GfxFont::makeFont(XRef*, char const*, Ref, Dict*) ()
   from /usr/lib/kde3/libkpdfpart.so
#8  0x420b5cf2 in GfxFontDict::GfxFontDict(XRef*, Dict*) ()
   from /usr/lib/kde3/libkpdfpart.so
#9  0x420a6fa4 in GfxResources::GfxResources(XRef*, Dict*, GfxResources*) ()
   from /usr/lib/kde3/libkpdfpart.so
#10 0x420a7795 in Gfx::Gfx(XRef*, OutputDev*, int, Dict*, double, PDFRectangle*, int, PDFRectangle*, int, int (*)(void*), void*) ()
   from /usr/lib/kde3/libkpdfpart.so
#11 0x420df89b in Page::displaySlice(OutputDev*, double, int, int, int, int, int, Links*, Catalog*, int (*)(void*), void*) () from /usr/lib/kde3/libkpdfpart.so
#12 0x420df6e4 in Page::display(OutputDev*, double, int, Links*, Catalog*, int (*)(void*), void*) () from /usr/lib/kde3/libkpdfpart.so
#13 0x420d5c9e in PDFDoc::displayPage(OutputDev*, int, double, int, int, int (*)(void*), void*) () from /usr/lib/kde3/libkpdfpart.so
#14 0x4208c423 in KPDF::PageWidget::updatePixmap() ()
   from /usr/lib/kde3/libkpdfpart.so
#15 0x4208bebb in KPDF::PageWidget::setPage(int) ()
   from /usr/lib/kde3/libkpdfpart.so
#16 0x4208bd0a in KPDF::PageWidget::nextPage() ()
   from /usr/lib/kde3/libkpdfpart.so
#17 0x4208937c in KPDF::Part::nextPage() () from /usr/lib/kde3/libkpdfpart.so
#18 0x42088f87 in KPDF::Part::slotReadDown() ()
   from /usr/lib/kde3/libkpdfpart.so
#19 0x42086881 in KPDF::Part::qt_invoke(int, QUObject*) ()
   from /usr/lib/kde3/libkpdfpart.so
#20 0x40c3e42c in QObject::activate_signal(QConnectionList*, QUObject*) ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#21 0x40c3e264 in QObject::activate_signal(int) ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#22 0x4208b31e in KPDF::PageWidget::spacePressed() ()
   from /usr/lib/kde3/libkpdfpart.so
#23 0x4208c1b6 in KPDF::PageWidget::keyPressEvent(QKeyEvent*) ()
   from /usr/lib/kde3/libkpdfpart.so
#24 0x40c73c95 in QWidget::event(QEvent*) ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#25 0x40be2eff in QApplication::internalNotify(QObject*, QEvent*) ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#26 0x40be29fe in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#27 0x407e832d in KApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libkdecore.so.4
#28 0x40b7c60d in QETWidget::translateKeyEvent(_XEvent const*, bool) ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#29 0x40b784ad in QApplication::x11ProcessEvent(_XEvent*) ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#30 0x40b8ed81 in QEventLoop::processEvents(unsigned) ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#31 0x40bf4f98 in QEventLoop::enterLoop() ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#32 0x40bf4e48 in QEventLoop::exec() () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#33 0x40be3151 in QApplication::exec() ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#34 0x4006aaac in kdemain () from /usr/lib/libkdeinit_konqueror.so
#35 0x080485db in kdemain ()
#36 0x4133c62d in __libc_start_main () from /lib/libc.so.6
Comment 1 Tommi Tervo 2004-05-26 11:22:58 UTC
*** Bug 80622 has been marked as a duplicate of this bug. ***
Comment 2 Albert Astals Cid 2004-08-26 18:54:11 UTC
CVS commit by aacid: 

globalParam is only one variable, so we can't delete it when there are two instances of the part running.
That fixes bug 81442
CCMAIL:81442-done@bugs.kde.org


  M +6 -1      kpdf_part.cpp   1.58
  M +2 -0      kpdf_part.h   1.27


--- kdegraphics/kpdf/kpdf/kpdf_part.cpp  #1.57:1.58
@@ -37,4 +37,6 @@ K_EXPORT_COMPONENT_FACTORY(libkpdfpart, 
 using namespace KPDF;
 
+unsigned int Part::m_count = 0;
+
 Part::Part(QWidget *parentWidget, const char *widgetName,
            QObject *parent, const char *name,
@@ -145,10 +147,13 @@ Part::Part(QWidget *parentWidget, const 
   readSettings();
   updateActionPage();
+  m_count++;
 }
 
 Part::~Part()
 {
-    delete globalParams;
+    m_count--;
+    if (m_count == 0) delete globalParams;
     writeSettings();
+    delete m_doc;
 }
 

--- kdegraphics/kpdf/kpdf/kpdf_part.h  #1.26:1.27
@@ -136,4 +136,6 @@ namespace KPDF
     int m_nextThumbnail;
 
+    static unsigned int m_count;
+
   private slots:
     void slotFitToWidthToggled();