Crash in the projection

Cyrille Berger cberger at cberger.net
Mon Mar 12 22:27:11 CET 2007


Hi,

I suspect it only happens on multicore system, and it's not easy to reproduce 
(especially when you are unlucky it happens when you don't want, and doesn't 
happen when you want :/ ). But I don't know enought of the multithreated 
projection system, I hope someone who knows can do something with the 
valgrind output in attachement. I am of course ready to help debugging if 
needed.

-- 
Cyrille Berger
-------------- next part --------------
==5972==
==5972== Thread 3:
==5972== Invalid read of size 4
==5972==    at 0x53C9E65: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qregion_unix.cpp:837)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==    by 0x5BF180E: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (Job.cpp:131)
==5972==  Address 0x17140414 is 23,052 bytes inside a block of size 32,768 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C9B82: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qrect.h:223)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==    by 0x5BF180E: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (Job.cpp:131)
==5972==  Address 0x1714041C is 23,060 bytes inside a block of size 32,768 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C9B90: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qregion_unix.cpp:779)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==    by 0x5BF180E: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (Job.cpp:131)
==5972==  Address 0x1714042C is 23,076 bytes inside a block of size 32,768 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C9DAD: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qregion_unix.cpp:803)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==    by 0x5BF180E: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (Job.cpp:131)
==5972==  Address 0x1714041C is 23,060 bytes inside a block of size 32,768 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C9DF7: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qrect.h:223)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==    by 0x5BF180E: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (Job.cpp:131)
==5972==  Address 0x1714041C is 23,060 bytes inside a block of size 32,768 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C9C69: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qrect.h:229)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==    by 0x5BF180E: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (Job.cpp:131)
==5972==  Address 0x17140424 is 23,068 bytes inside a block of size 32,768 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C93BA: miSubtractO(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int) (qrect.h:220)
==5972==    by 0x53C9E3B: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qregion_unix.cpp:828)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==  Address 0x17140418 is 23,056 bytes inside a block of size 32,768 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C94B5: miSubtractO(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int) (qrect.h:226)
==5972==    by 0x53C9E3B: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qregion_unix.cpp:828)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==  Address 0x17140420 is 23,064 bytes inside a block of size 32,768 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Thread 10:
==5972== Invalid read of size 4
==5972==    at 0x53C9C91: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qregion_unix.cpp:837)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==    by 0x5BF180E: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (Job.cpp:131)
==5972==  Address 0x16FED684 is 5,340 bytes inside a block of size 65,536 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C9BD7: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qrect.h:223)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==    by 0x5BF180E: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (Job.cpp:131)
==5972==  Address 0x16FED69C is 5,364 bytes inside a block of size 65,536 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C9BFA: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qrect.h:229)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==    by 0x5BF180E: ThreadWeaver::Job::execute(ThreadWeaver::Thread*) (Job.cpp:131)
==5972==  Address 0x16FED6A4 is 5,372 bytes inside a block of size 65,536 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C8F50: miSubtractNonO1(QRegionPrivate&, QRect const*, QRect const*, int, int) (qrect.h:226)
==5972==    by 0x53C9C34: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qregion_unix.cpp:799)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==  Address 0x16FED6A0 is 5,368 bytes inside a block of size 65,536 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C8F53: miSubtractNonO1(QRegionPrivate&, QRect const*, QRect const*, int, int) (qrect.h:397)
==5972==    by 0x53C9C34: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qregion_unix.cpp:799)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==  Address 0x16FED698 is 5,360 bytes inside a block of size 65,536 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==
==5972== Invalid read of size 4
==5972==    at 0x53C9515: miSubtractO(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int) (qregion_unix.cpp:1193)
==5972==    by 0x53C9E3B: miRegionOp(QRegionPrivate&, QRegionPrivate const*, QRegionPrivate const*, void (*)(QRegionPrivate&, QRect const*, QRect const*, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int), void (*)(QRegionPrivate&, QRect const*, QRect const*, int, int)) (qregion_unix.cpp:828)
==5972==    by 0x53CA069: SubtractRegion(QRegionPrivate*, QRegionPrivate*, QRegionPrivate&) (qregion_unix.cpp:1296)
==5972==    by 0x53CB0A6: QRegion::subtract(QRegion const&) const (qregion_unix.cpp:2775)
==5972==    by 0x5398B2F: QRegion::operator-(QRegion const&) const (qregion.h:82)
==5972==    by 0x5398B82: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)
==5972==  Address 0x16FEFFC0 is 15,896 bytes inside a block of size 65,536 free'd
==5972==    at 0x4020FB0: free (vg_replace_malloc.c:233)
==5972==    by 0x49B60FC: qFree(void*) (qglobal.cpp:1819)
==5972==    by 0x5377DFC: QVector<QRect>::free(QVectorTypedData<QRect>*) (qvector.h:377)
==5972==    by 0x53CAB61: QRegion::cleanUp(QRegion::QRegionData*) (qvector.h:76)
==5972==    by 0x53CABAA: QRegion::operator=(QRegion const&) (qregion_unix.cpp:2548)
==5972==    by 0x5398B91: QRegion::operator-=(QRegion const&) (qregion.cpp:462)
==5972==    by 0x42765D5: KisLayer::setClean(QRect) (kis_layer.cc:151)
==5972==    by 0x426B3B2: KisMergeVisitor::visit(KisPaintLayer*) (kis_merge_visitor.h:198)
==5972==    by 0x42878C7: KisPaintLayer::accept(KisLayerVisitor&) (kis_paint_layer.h:66)
==5972==    by 0x428069E: KisGroupLayer::updateProjection(QRect const&) (kis_group_layer.cc:417)
==5972==    by 0x42285B2: ProjectionJob::run() (kis_projection.cc:45)
==5972==    by 0x5BF1593: ThreadWeaver::JobRunHelper::runTheJob(ThreadWeaver::Thread*, ThreadWeaver::Job*) (Job.cpp:105)


More information about the kimageshop mailing list