[Digikam-devel] [Bug 109946] Crash when saving a picture after normalization
Gilles Caulier
caulier.gilles at free.fr
Tue Aug 9 19:27:01 BST 2005
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=109946
------- Additional Comments From caulier.gilles free fr 2005-08-09 20:27 -------
SVN commit 444324 by cgilles:
Patch from Owen Hirst to fix crash when histogram is visible.
The histogram thread holds a pointer to the image data. Under certain
conditions, for eg, saving of image and reloading of image data, this image
data pointer is invalidated. Since the thread still holds a pointer to the
invalid pointer and tries to do calculations on it, the application crashes.
Attached patch deletes the histogram thread before reloading the image
CCMAIL: digikam-devel kde org
CCBUGS: 109946
M +14 -7 canvas.cpp
--- trunk/extragear/graphics/digikam/utilities/imageeditor/canvas.cpp #444323:444324
@ -346,6 +346,12 @
emit signalSelected(false);
}
+ if (d->imageHistogram)
+ {
+ delete d->imageHistogram;
+ d->imageHistogram = 0;
+ }
+
viewport()->setUpdatesEnabled(false);
d->tileCache.clear();
@ -362,7 +368,7 @
viewport()->setUpdatesEnabled(true);
viewport()->update();
if (d->showHistogram)
- updateHistogram(true);
+ updateHistogram(true);
emit signalChanged(false, false);
emit signalZoomChanged(d->zoom);
@ -453,11 +459,12 @
*/
bool Canvas::updateHistogram(bool invalidate)
{
- if (invalidate && d->imageHistogram) {
- delete d->imageHistogram;
- d->imageHistogram = 0;
+ if (invalidate && d->imageHistogram)
+ {
+ delete d->imageHistogram;
+ d->imageHistogram = 0;
}
-
+
if (d->imageHistogram == 0) {
d->histogramReady = false;
d->imageHistogram = new ImageHistogram(d->im->getData(),
@ -710,9 +717,9 @
void Canvas::paintHistogram(const QRect& cr)
{
if (!d->showHistogram)
- return;
+ return;
if (!d->histogramPixmap)
- return;
+ return;
QRect rcexposed, rc, rctmp;
More information about the Digikam-devel
mailing list