Sharpening twice

Boudewijn Rempt boud at valdyas.org
Thu Mar 10 16:32:58 CET 2005


Running the sharpen filter twice makes Krita crash -- curiously enough in the 
display code, as if the filter leaves the paint device somehow in a wrong 
state. More worrying is that running the sharpen filter with valgrind 
--tool=memcheck gives. Lots of invalid reads... And running the filter 
changes the extent of the layer a lot. I've tried in vain to fix this today 
-- maybe anyone else has an idea?

<... snip ...>

==6226== Invalid read of size 4
==6226==    at 0x1DC39899: 
KisConvolutionPainter::applyConvolutionColorTransformation(KisMatrix<int, 3, 
3>*, KSharedPtr<KisPaintDevice>) (kis_convolution_painter.cc:250)
==6226==    by 0x1EE62FA3: 
KisConvolutionFilter::process(KSharedPtr<KisPaintDevice>, 
KSharedPtr<KisPaintDevice>, KisFilterConfiguration*, QRect const&, 
KisTileCommand*) (kis_convolution_filter.cc:43)
==6226==    by 0x1DC4D36D: KisFilter::process(KSharedPtr<KisPaintDevice>, 
KisFilterConfiguration*, QRect const&, KisTileCommand*) (kis_filter.h:137)
==6226==    by 0x1DC4CB90: KisFilter::slotActivated() (kis_filter.cc:97)
==6226==  Address 0x1E8CE198 is not stack'd, malloc'd or (recently) free'd
==6226==
==6226== Invalid read of size 4
==6226==    at 0x1DC398E8: 
KisConvolutionPainter::applyConvolutionColorTransformation(KisMatrix<int, 3, 
3>*, KSharedPtr<KisPaintDevice>) (kis_convolution_painter.cc:250)
==6226==    by 0x1EE62FA3: 
KisConvolutionFilter::process(KSharedPtr<KisPaintDevice>, 
KSharedPtr<KisPaintDevice>, KisFilterConfiguration*, QRect const&, 
KisTileCommand*) (kis_convolution_filter.cc:43)
==6226==    by 0x1DC4D36D: KisFilter::process(KSharedPtr<KisPaintDevice>, 
KisFilterConfiguration*, QRect const&, KisTileCommand*) (kis_filter.h:137)
==6226==    by 0x1DC4CB90: KisFilter::slotActivated() (kis_filter.cc:97)
==6226==  Address 0x1E8CE188 is 0 bytes after a block of size 144 alloc'd
==6226==    at 0x1B905F70: operator new[](unsigned) 
(in /usr/lib/valgrind/vgpreload_memcheck.so)
==6226==    by 0x1EE5BA8B: KisSharpenFilter::KisSharpenFilter(KisView*) 
(convolutionfilters.cc:140)
==6226==    by 0x1EE5F692: KSharedPtr<KisFilter> 
createFilter<KisSharpenFilter>(KisView*) (kis_filter.h:49)
==6226==    by 0x1EE5A3E4: 
KritaConvolutionFilters::KritaConvolutionFilters(QObject*, char const*, 
QStringList const&) (convolutionfilters.cc:75)
==6226==
==6226== More than 30000 total errors detected.  I'm not reporting any more.
==6226== Final error counts will be inaccurate.  Go fix your program!
==6226== Rerun with --error-limit=no to disable this cutoff.  Note
==6226== that errors may occur in your program without prior warning from
==6226== Valgrind, because errors are no longer being displayed.


Stacktrace (running without valgrind):

#7  0x00000031 in ?? ()
#8  0x40084624 in KShared::_KShared_unref (this=0x81e10d8) at ksharedptr.h:68
#9  0x41bb5b08 in ~KSharedPtr (this=0xbfffbef0) at ksharedptr.h:126
#10 0x41bb4a6d in KisPaintDevice::profile (this=0x8588fb8)
    at ../../../koffice/krita/core/kis_paint_device.cc:453
#11 0x41bea4b6 in KisPainter::bitBlt (this=0xbfffc140, dx=0, dy=0, 
    op=COMPOSITE_COPY, srcdev={ptr = 0x8588fb8}, opacity=255 'ÿ', sx=0, sy=0, 
    sw=128, sh=128) at ../../../koffice/krita/core/kis_painter.cc:157
#12 0x41bbed51 in KisPainter::bitBlt (this=0xbfffc140, dx=0, dy=0, 
    op=COMPOSITE_COPY, src=) at kis_painter.h:120
#13 0x41bbc4a7 in KisImage::renderToProjection (this=0x8588de0, x=0, y=0, 
    w=128, h=128) at ../../../koffice/krita/core/kis_image.cc:965
#14 0x41bbc6a9 in KisImage::renderToPainter (this=0x8588de0, x1=0, y1=0, 
    x2=250, y2=250, painter=@0xbfffc390, profile={ptr = 0x81e6c10})
    at ../../../koffice/krita/core/kis_image.cc:996
#15 0x41bc6ed3 in KisDoc::paintContent (this=0x81c1e48, painter=@0xbfffc390, 
    rect=@0xbfffc4c0, profile={ptr = 0x81e6c10})
    at ../../../koffice/krita/core/kis_doc.cc:1038
#16 0x41bd4918 in KisView::paintView (this=0x82dc4e0, r=@0xbfffc560)
    at ../../../koffice/krita/core/kis_view.cc:1254
#17 0x41bd4d01 in KisView::updateCanvas (this=0x82dc4e0, rc=@0xbfffc560)
    at ../../../koffice/krita/core/kis_view.cc:1310
#18 0x41bd4cc6 in KisView::updateCanvas (this=0x82dc4e0, rc=@0xbfffc710)
    at ../../../koffice/krita/core/kis_view.cc:1305
#19 0x41bddd81 in KisView::imgUpdated (this=0x82dc4e0, img=)
    at ../../../koffice/krita/core/kis_view.cc:2972
#20 0x41be169a in KisView::qt_invoke (this=0x82dc4e0, _id=133, _o=0xbfffc670)
    at kis_view.moc:615
#21 0x40f4031e in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#22 0x41bbd037 in KisImage::update (this=0x8588de0, t0={ptr = 0x8588de0}, 
    t1=@0xbfffc710) at kis_image.moc:194
#23 0x41bbc8b0 in KisImage::notify (this=0x8588de0, rc=@0xbfffc710)
    at ../../../koffice/krita/core/kis_image.cc:1019
#24 0x41bbc861 in KisImage::notify (this=0x8588de0, x=0, y=0, width=250, 
    height=250) at ../../../koffice/krita/core/kis_image.cc:1013
#25 0x41bbc81b in KisImage::notify (this=0x8588de0)
    at ../../../koffice/krita/core/kis_image.cc:1008
#26 0x41c09dce in KisFilter::slotActivated (this=0x88c4f88)
    at ../../../koffice/krita/core/kis_filter.cc:104
#27 0x41c09ff7 in KisFilter::qt_invoke (this=0x88c4f88, _id=2, _o=0xbfffc8b0)
    at kis_filter.moc:86
#28 0x40f4031e in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#29 0x40f40ac6 in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#30 0x407c0df9 in KAction::activated () from /opt/kde3/lib/libkdeui.so.4
#31 0x408d468a in KAction::slotActivated () from /opt/kde3/lib/libkdeui.so.4
#32 0x408d3c8d in KAction::slotPopupActivated ()
   from /opt/kde3/lib/libkdeui.so.4
#33 0x408d3e6d in KAction::qt_invoke () from /opt/kde3/lib/libkdeui.so.4
#34 0x40f4031e in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#35 0x41292132 in QSignal::signal () from /usr/lib/qt3/lib/libqt-mt.so.3
#36 0x40f5d873 in QSignal::activate () from /usr/lib/qt3/lib/libqt-mt.so.3
#37 0x41050b68 in QPopupMenu::mouseReleaseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#38 0x408f4394 in KPopupMenu::mouseReleaseEvent ()
   from /opt/kde3/lib/libkdeui.so.4
#39 0x40f76905 in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#40 0x40eddbaf in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#41 0x40edff56 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#42 0x40b695d1 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#43 0x40e7b4db in QETWidget::translateMouseEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#44 0x40e7a116 in QApplication::x11ProcessEvent ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#45 0x40e8ab08 in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#46 0x40ef5b41 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#47 0x40ef5986 in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#48 0x40edf63f in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#49 0x4001a16b in kdemain (argc=1, argv=0xbfffd7b4)
    at ../../koffice/krita/main.cc:40
#50 0x08048766 in main (argc=1, argv=0xbfffd7b4)
    at ../../koffice/krita/krita.la.cc:2

Debug (note the size of the layers):

krita: Filter activated: Sharpen
krita: Going to process filter Sharpen
krita: Layer extent: x,y: 0, 0, W,H: 256, 256
krita: KisMatrixT::dump()
krita: m_values[0][0]=0
krita: m_values[0][1]=-2
krita: m_values[0][2]=0
krita: m_values[1][0]=-2
krita: m_values[1][1]=11
krita: m_values[1][2]=-2
krita: m_values[2][0]=0
krita: m_values[2][1]=-2
krita: m_values[2][2]=0
krita: Convolution painter: extent x,y= 0, 0 w,h = 256, 256
krita: Done processing filter Sharpen
krita: Layer extent: x,y: 0, 0, W,H: 256, 320
krita: Going to notify image of changes
krita: Blitting: Layer 1 dx: 0 dy: 0 sx: 0 sy: 0 w: 128 h 128
krita: Blitting: Layer 1 dx: 128 dy: 0 sx: 128 sy: 0 w: 122 h 128
krita: Blitting: Layer 1 dx: 0 dy: 128 sx: 0 sy: 128 w: 128 h 122
krita: Blitting: Layer 1 dx: 128 dy: 128 sx: 128 sy: 128 w: 122 h 122
krita: Done notifying image of changes


krita: Filter activated: Sharpen
krita: Going to process filter Sharpen
krita: Layer extent: x,y: 0, 0, W,H: 256, 320
krita: KisMatrixT::dump()
krita: m_values[0][0]=0
krita: m_values[0][1]=-2
krita: m_values[0][2]=0
krita: m_values[1][0]=-2
krita: m_values[1][1]=11
krita: m_values[1][2]=-2
krita: m_values[2][0]=0
krita: m_values[2][1]=-2
krita: m_values[2][2]=0
krita: Convolution painter: extent x,y= 0, 0 w,h = 256, 320
krita: Done processing filter Sharpen
krita: Layer extent: x,y: 0, 0, W,H: 256, 384
krita: Going to notify image of changes
KCrash: Application 'krita' crashing...




-- 
Boudewijn Rempt 
http://www.valdyas.org/fading/index.cgi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kimageshop/attachments/20050310/fdb463f1/attachment.pgp


More information about the kimageshop mailing list