[Okular-devel] [Bug 243434] crash when painting (PagePainter::scalePixmapOnImage with no backbuffer)

Achim Schaefer achim_schaefer at gmx.de
Mon Jan 24 22:20:49 CET 2011


https://bugs.kde.org/show_bug.cgi?id=243434





--- Comment #35 from Achim Schaefer <achim_schaefer gmx de>  2011-01-24 22:20:47 ---
Hi,

as I saw this valgrind discussion, I run my one as well with valgrind.
What happens is:
after started once with valgrind, it works even without valgrind.
I got that for the pdf and the dvi output (details see bug 264168)
Here the valgrind output for the DVI version, but it did not crash, which I
could reproduce the crash before always.
 valgrind okular Lebenslauf.dvi
==359== Memcheck, a memory error detector
==359== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==359== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright
info
==359== Command: okular Lebenslauf.dvi
==359== 
==359== Conditional jump or move depends on uninitialised value(s)
==359==    at 0x59A3A2E: inflateReset2 (in /usr/lib/libz.so.1.2.3.4)
==359==    by 0x59A3B0C: inflateInit2_ (in /usr/lib/libz.so.1.2.3.4)
==359==    by 0x59A3B82: inflateInit_ (in /usr/lib/libz.so.1.2.3.4)
==359==    by 0x599E34E: uncompress (in /usr/lib/libz.so.1.2.3.4)
==359==    by 0x49FACAE: qUncompress(unsigned char const*, int)
(qbytearray.cpp:553)
==359==    by 0x456D5BD: KPixmapCache::Private::loadData(int, QPixmap&)
(qbytearray.h:586)
==359==    by 0x456E6E0: KPixmapCache::find(QString const&, QPixmap&)
(kpixmapcache.cpp:1354)
==359==    by 0x44AC1AA: KIconCache::find(QString const&, QPixmap&)
(kiconcache.cpp:292)
==359==    by 0x44ACFEF: KIconCache::find(QString const&, QPixmap&, QString*)
(kiconcache.cpp:277)
==359==    by 0x449F354: KIconLoader::loadIcon(QString const&,
KIconLoader::Group, int, int, QStringList const&, QString*, bool) const
(kiconloader.cpp:1092)
==359==    by 0x44A14CE: SmallIcon(QString const&, int, int, QStringList
const&) (kiconloader.cpp:1588)
==359==    by 0x45C9D1E: KLineEdit::updateClearButtonIcon(QString const&)
(klineedit.cpp:311)
==359== 
==359== Conditional jump or move depends on uninitialised value(s)
==359==    at 0x4FCC9E0: QX11PaintEngine::updateMatrix(QTransform const&)
(qpaintengine_x11.cpp:2050)
==359==    by 0x4FD853A: QX11PaintEngine::updateState(QPaintEngineState const&)
(qpaintengine_x11.cpp:1082)
==359==    by 0x4EFDBC3: QPainterPrivate::updateStateImpl(QPainterState*)
(qpainter.cpp:906)
==359==    by 0x4EFDC8B: QPainterPrivate::updateState(QPainterState*)
(qpainter.cpp:934)
==359==    by 0x4F09586: QPainter::drawLines(QLineF const*, int)
(qpainter.cpp:4639)
==359==    by 0x7E50690:
OxygenStyle::standardIconImplementation(QStyle::StandardPixmap, QStyleOption
const*, QWidget const*) const (qpainter.h:534)
==359==    by 0x7E365B3: OxygenStyle::qt_metacall(QMetaObject::Call, int,
void**) (oxygen.moc:80)
==359==    by 0x4AFD449: QMetaObject::metacall(QObject*, QMetaObject::Call,
int, void**) (qmetaobject.cpp:237)
==359==    by 0x4B00EF4: QMetaMethod::invoke(QObject*, Qt::ConnectionType,
QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument) const
(qmetaobject.cpp:1578)
==359==    by 0x4B0246F: QMetaObject::invokeMethod(QObject*, char const*,
Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)
(qmetaobject.cpp:1151)
==359==    by 0x50DAECB: QStyle::standardIcon(QStyle::StandardPixmap,
QStyleOption const*, QWidget const*) const (qstyle.cpp:2279)
==359==    by 0x529FBDD: QToolBarExtension::setOrientation(Qt::Orientation)
(qtoolbarextension.cpp:67)
==359== 
okular(359)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(359)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(359)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
==359== Conditional jump or move depends on uninitialised value(s)
==359==    at 0x59A3A2E: inflateReset2 (in /usr/lib/libz.so.1.2.3.4)
==359==    by 0x59A3B0C: inflateInit2_ (in /usr/lib/libz.so.1.2.3.4)
==359==    by 0x59A3B82: inflateInit_ (in /usr/lib/libz.so.1.2.3.4)
==359==    by 0x5F8FA50: png_create_read_struct_2 (in /lib/libpng12.so.0.44.0)
==359==    by 0x5F8FC19: png_create_read_struct (in /lib/libpng12.so.0.44.0)
==359==    by 0x4EAFA53: QPngHandlerPrivate::readPngHeader()
(qpnghandler.cpp:356)
==359==    by 0x4EB047A: QPngHandlerPrivate::readPngImage(QImage*)
(qpnghandler.cpp:427)
==359==    by 0x4E7888B: QImageReader::read(QImage*) (qimagereader.cpp:1205)
==359==    by 0x4E78E36: QImageReader::read() (qimagereader.cpp:1155)
==359==    by 0x4E900FA: QPixmapData::fromFile(QString const&, char const*,
QFlags<Qt::ImageConversionFlag>) (qpixmapdata.cpp:137)
==359==    by 0x4E8ACD8: QPixmap::load(QString const&, char const*,
QFlags<Qt::ImageConversionFlag>) (qpixmap.cpp:848)
==359==    by 0x4E8B14C: QPixmap::QPixmap(QString const&, char const*,
QFlags<Qt::ImageConversionFlag>) (qpixmap.cpp:260)
==359== 
==359== Conditional jump or move depends on uninitialised value(s)
==359==    at 0x7EF025F: PageView::resizeEvent(QResizeEvent*)
(pageview.cpp:1235)
==359==    by 0x4DEBC52: QWidget::event(QEvent*) (qwidget.cpp:8354)
==359==    by 0x520CF52: QFrame::event(QEvent*) (qframe.cpp:557)
==359==    by 0x52A97B1: QAbstractScrollArea::viewportEvent(QEvent*)
(qabstractscrollarea.cpp:1043)
==359==    by 0x7EF606F: PageView::viewportEvent(QEvent*) (pageview.cpp:2241)
==359==    by 0x52AC1F4: QAbstractScrollAreaFilter::eventFilter(QObject*,
QEvent*) (qabstractscrollarea_p.h:100)
==359==    by 0x4AF6ED9:
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
(qcoreapplication.cpp:847)
==359==    by 0x4D8DC48: QApplicationPrivate::notify_helper(QObject*, QEvent*)
(qapplication.cpp:4441)
==359==    by 0x4D93768: QApplication::notify(QObject*, QEvent*)
(qapplication.cpp:4410)
==359==    by 0x44DCBF9: KApplication::notify(QObject*, QEvent*)
(kapplication.cpp:302)
==359==    by 0x4AF777A: QCoreApplication::notifyInternal(QObject*, QEvent*)
(qcoreapplication.cpp:732)
==359==    by 0x4E41CD4: QWidgetPrivate::setGeometry_sys(int, int, int, int,
bool) (qcoreapplication.h:215)
==359== 
==359== Invalid read of size 4
==359==    at 0x7EDF19A: PagePainter::scalePixmapOnImage(QImage&, QPixmap
const*, int, int, QRect const&, QImage::Format) (pagepainter.cpp:755)
==359==    by 0x7EDF807: PagePainter::paintCroppedPageOnPainter(QPainter*,
Okular::Page const*, int, int, int, int, QRect const&, Okular::NormalizedRect
const&) (pagepainter.cpp:229)
==359==    by 0x7EF26AE: PageView::drawDocumentOnPainter(QRect const&,
QPainter*) (pageview.cpp:2395)
==359==    by 0x7EF2FC4: PageView::paintEvent(QPaintEvent*) (pageview.cpp:1206)
==359==    by 0x4DEBCC5: QWidget::event(QEvent*) (qwidget.cpp:8346)
==359==    by 0x520CF52: QFrame::event(QEvent*) (qframe.cpp:557)
==359==    by 0x52A97B1: QAbstractScrollArea::viewportEvent(QEvent*)
(qabstractscrollarea.cpp:1043)
==359==    by 0x7EF606F: PageView::viewportEvent(QEvent*) (pageview.cpp:2241)
==359==    by 0x52AC1F4: QAbstractScrollAreaFilter::eventFilter(QObject*,
QEvent*) (qabstractscrollarea_p.h:100)
==359==    by 0x4AF6ED9:
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
(qcoreapplication.cpp:847)
==359==    by 0x4D8DC48: QApplicationPrivate::notify_helper(QObject*, QEvent*)
(qapplication.cpp:4441)
==359==    by 0x4D93768: QApplication::notify(QObject*, QEvent*)
(qapplication.cpp:4410)
==359==  Address 0xe252de8 is not stack'd, malloc'd or (recently) free'd
==359== 
==359== 
==359== HEAP SUMMARY:
==359==     in use at exit: 287,532 bytes in 3,837 blocks
==359==   total heap usage: 264,135 allocs, 260,298 frees, 103,250,217 bytes
allocated
==359== 
==359== LEAK SUMMARY:
==359==    definitely lost: 583 bytes in 10 blocks
==359==    indirectly lost: 51,442 bytes in 538 blocks
==359==      possibly lost: 44,327 bytes in 768 blocks
==359==    still reachable: 191,180 bytes in 2,521 blocks
==359==         suppressed: 0 bytes in 0 blocks
==359== Rerun with --leak-check=full to see details of leaked memory
==359== 
==359== For counts of detected and suppressed errors, rerun with: -v
==359== Use --track-origins=yes to see where uninitialised values come from
==359== ERROR SUMMARY: 8952 errors from 5 contexts (suppressed: 290 from 11)

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the Okular-devel mailing list