[Digikam-devel] [digikam] [Bug 318873] digiKam crashes when clicking on image in thumbnails [patch]

Simon Munton simon.j.munton at gmail.com
Fri Apr 26 20:04:09 BST 2013


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

--- Comment #13 from Simon Munton <simon.j.munton at gmail.com> ---
(In reply to comment #7)
> My question is: from where it rotate() called? For exif-rotation of
> previews, it is called from the loading thread before it is distributed
> (previewtask.cpp 117)

Seems to be called from previewtask.cpp 186:
#0  0x00007ffff4aecc98 in Digikam::DImg::rotate (this=0x5b34cd0,
angle=<optimized out>)
    at /home/simon/build/kde4/digikam-3.1.0/core/libs/dimg/dimg.cpp:2419
#1  0x00007ffff4aecf1a in Digikam::DImg::rotateAndFlip (this=0x5b34cd0,
orientation=-1580573)
    at /home/simon/build/kde4/digikam-3.1.0/core/libs/dimg/dimg.cpp:2635
#2  0x00007ffff4c9c116 in Digikam::LoadSaveThread::exifRotate (image=...,
filePath=...)
    at
/home/simon/build/kde4/digikam-3.1.0/core/libs/threadimageio/loadsavethread.cpp:329
#3  0x00007ffff4cac9ee in Digikam::PreviewLoadingTask::execute (this=0x5b34ad0)
    at
/home/simon/build/kde4/digikam-3.1.0/core/libs/threadimageio/previewtask.cpp:186
#4  0x00007ffff4c9beae in Digikam::LoadSaveThread::run (this=0x120aca0)
    at
/home/simon/build/kde4/digikam-3.1.0/core/libs/threadimageio/loadsavethread.cpp:136
#5  0x00007ffff4cd495e in Digikam::DynamicThread::DynamicThreadPriv::run
(this=0x120ada0)
    at
/home/simon/build/kde4/digikam-3.1.0/core/libs/threads/dynamicthread.cpp:186
#6  0x00007ffff0112fad in QThreadPoolThread::run (this=0x3964550) at
concurrent/qthreadpool.cpp:107
#7  0x00007ffff011f33c in QThreadPrivate::start (arg=0x3964550) at
thread/qthread_unix.cpp:338
#8  0x00007fffefe7eeae in start_thread () from /lib64/libpthread.so.0
#9  0x00007fffeec05fed in clone () from /lib64/libc.so.6
for this (rotate) thread: 
print m_priv.d->data
$20 = (unsigned char *) 
    0x7fff25dc3010 

While in another thread:
#0  Digikam::ImageHistogram::calculate (this=0x5a72ef0)
    at
/home/simon/build/kde4/digikam-3.1.0/core/libs/dimg/filters/levels/imagehistogram.cpp:164
#1  0x00007ffff4cd495e in Digikam::DynamicThread::DynamicThreadPriv::run
(this=0x4692bc0)
    at
/home/simon/build/kde4/digikam-3.1.0/core/libs/threads/dynamicthread.cpp:186
#2  0x00007ffff0112fad in QThreadPoolThread::run (this=0x39460b0) at
concurrent/qthreadpool.cpp:107
#3  0x00007ffff011f33c in QThreadPrivate::start (arg=0x39460b0) at
thread/qthread_unix.cpp:338
#4  0x00007fffefe7eeae in start_thread () from /lib64/libpthread.so.0
#5  0x00007fffeec05fed in clone () from /lib64/libc.so.6
in this (histogram) thread:
print d.img.m_priv.d->data
$21 = (unsigned char *) 
    0x7fff25dc3010

So both threads are processing the same image data.

If I let the program continue, I end up with a total of four threads all
calculating the histogram on the same image data.

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Digikam-devel mailing list