[Digikam-devel] [digikam] [Bug 326525] Severe memory leak during maintainance scan for rebuild thumbnails

Gilles Caulier caulier.gilles at gmail.com
Fri Nov 8 07:54:32 GMT 2013


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

--- Comment #63 from Gilles Caulier <caulier.gilles at gmail.com> ---
Raphael,

All memory leak from libpgf are disappear with revision #122, but multiple
conditional jump or move depends on uninitialized values (more than revision
#121). Look below. This can be false warnings, but this must be checked :

==8229== Thread 17:
==8229== Conditional jump or move depends on uninitialised value(s)
==8229==    at 0x80C5B55: CSubband::Quantize(int) (Subband.cpp:137)
==8229==    by 0x80C6B0E: CWaveletTransform::ForwardTransform(int, int)
(WaveletTransform.cpp:164)
==8229==    by 0x80BDBA7: CPGFImage::WriteHeader(CPGFStream*)
(PGFimage.cpp:961)
==8229==    by 0x80BE720: CPGFImage::Write(CPGFStream*, unsigned int*, bool
(*)(double, bool, void*), void*) (PGFimage.cpp:1167)
==8229==    by 0x80C9F2E: Digikam::PGFUtils::writePGFImageDataToStream(QImage
const&, CPGFStream&, int, unsigned int&, bool) (pgfutils.cpp:288)
==8229==    by 0x80C938A: Digikam::PGFUtils::writePGFImageData(QImage const&,
QByteArray&, int, bool) (pgfutils.cpp:184)
==8229==    by 0x80AA259:
Digikam::ThumbnailCreator::storeInDatabase(Digikam::ThumbnailInfo const&,
Digikam::ThumbnailImage const&) const (thumbnailcreator.cpp:695)
==8229==    by 0x80A7BD8: Digikam::ThumbnailCreator::load(QString const&, QRect
const&, bool) const (thumbnailcreator.cpp:267)
==8229==    by 0x80A7785: Digikam::ThumbnailCreator::load(QString const&) const
(thumbnailcreator.cpp:199)
==8229==    by 0x80B6665: Digikam::ThumbnailLoadingTask::execute()
(thumbnailtask.cpp:172)
==8229==    by 0x8091530: Digikam::LoadSaveThread::run()
(loadsavethread.cpp:136)
==8229==    by 0x80CF279: Digikam::DynamicThread::DynamicThreadPriv::run()
(dynamicthread.cpp:186)

==8229== Conditional jump or move depends on uninitialised value(s)
==8229==    at 0x80B9DDD: CEncoder::WriteValue(CSubband*, int)
(Encoder.cpp:328)
==8229==    by 0x80B9AA4: CEncoder::Partition(CSubband*, int, int, int, int)
(Encoder.cpp:259)
==8229==    by 0x80C5D81: CSubband::ExtractTile(CEncoder&, bool, unsigned int,
unsigned int) (Subband.cpp:190)
==8229==    by 0x80BE25E: CPGFImage::WriteLevel() (PGFimage.cpp:1051)
==8229==    by 0x80BE5EF: CPGFImage::WriteImage(CPGFStream*, bool (*)(double,
bool, void*), void*) (PGFimage.cpp:1125)
==8229==    by 0x80BE73B: CPGFImage::Write(CPGFStream*, unsigned int*, bool
(*)(double, bool, void*), void*) (PGFimage.cpp:1170)
==8229==    by 0x80C9F2E: Digikam::PGFUtils::writePGFImageDataToStream(QImage
const&, CPGFStream&, int, unsigned int&, bool) (pgfutils.cpp:288)
==8229==    by 0x80C938A: Digikam::PGFUtils::writePGFImageData(QImage const&,
QByteArray&, int, bool) (pgfutils.cpp:184)
==8229==    by 0x80AA259:
Digikam::ThumbnailCreator::storeInDatabase(Digikam::ThumbnailInfo const&,
Digikam::ThumbnailImage const&) const (thumbnailcreator.cpp:695)
==8229==    by 0x80A7BD8: Digikam::ThumbnailCreator::load(QString const&, QRect
const&, bool) const (thumbnailcreator.cpp:267)
==8229==    by 0x80A7785: Digikam::ThumbnailCreator::load(QString const&) const
(thumbnailcreator.cpp:199)
==8229==    by 0x80B6665: Digikam::ThumbnailLoadingTask::execute()
(thumbnailtask.cpp:172)

==8229== Conditional jump or move depends on uninitialised value(s)
==8229==    at 0x80BA7B8: CEncoder::CMacroBlock::DecomposeBitplane(unsigned
int, unsigned int, unsigned int, unsigned int*, unsigned int*, unsigned int*,
unsigned int&, unsigned int&) (Encoder.cpp:654)
==8229==    by 0x80BA307: CEncoder::CMacroBlock::BitplaneEncode()
(Encoder.cpp:520)
==8229==    by 0x80B9E52: CEncoder::EncodeBuffer(ROIBlockHeader)
(Encoder.cpp:348)
==8229==    by 0x80B9D74: CEncoder::WriteValue(CSubband*, int)
(Encoder.cpp:324)
==8229==    by 0x80B9AA4: CEncoder::Partition(CSubband*, int, int, int, int)
(Encoder.cpp:259)
==8229==    by 0x80C5D81: CSubband::ExtractTile(CEncoder&, bool, unsigned int,
unsigned int) (Subband.cpp:190)
==8229==    by 0x80BE25E: CPGFImage::WriteLevel() (PGFimage.cpp:1051)
==8229==    by 0x80BE5EF: CPGFImage::WriteImage(CPGFStream*, bool (*)(double,
bool, void*), void*) (PGFimage.cpp:1125)
==8229==    by 0x80BE73B: CPGFImage::Write(CPGFStream*, unsigned int*, bool
(*)(double, bool, void*), void*) (PGFimage.cpp:1170)
==8229==    by 0x80C9F2E: Digikam::PGFUtils::writePGFImageDataToStream(QImage
const&, CPGFStream&, int, unsigned int&, bool) (pgfutils.cpp:288)
==8229==    by 0x80C938A: Digikam::PGFUtils::writePGFImageData(QImage const&,
QByteArray&, int, bool) (pgfutils.cpp:184)
==8229==    by 0x80AA259:
Digikam::ThumbnailCreator::storeInDatabase(Digikam::ThumbnailInfo const&,
Digikam::ThumbnailImage const&) const (thumbnailcreator.cpp:695)

==8229== Thread 16:
==8229== Conditional jump or move depends on uninitialised value(s)
==8229==    at 0x80BA9F6: CEncoder::CMacroBlock::NumberOfBitplanes()
(Encoder.cpp:747)
==8229==    by 0x80BA219: CEncoder::CMacroBlock::BitplaneEncode()
(Encoder.cpp:502)
==8229==    by 0x80B9E52: CEncoder::EncodeBuffer(ROIBlockHeader)
(Encoder.cpp:348)
==8229==    by 0x80B9D03: CEncoder::Flush() (Encoder.cpp:314)
==8229==    by 0x80BE687: CPGFImage::WriteImage(CPGFStream*, bool (*)(double,
bool, void*), void*) (PGFimage.cpp:1135)
==8229==    by 0x80BE73B: CPGFImage::Write(CPGFStream*, unsigned int*, bool
(*)(double, bool, void*), void*) (PGFimage.cpp:1170)
==8229==    by 0x80C9F2E: Digikam::PGFUtils::writePGFImageDataToStream(QImage
const&, CPGFStream&, int, unsigned int&, bool) (pgfutils.cpp:288)
==8229==    by 0x80C938A: Digikam::PGFUtils::writePGFImageData(QImage const&,
QByteArray&, int, bool) (pgfutils.cpp:184)
==8229==    by 0x80AA259:
Digikam::ThumbnailCreator::storeInDatabase(Digikam::ThumbnailInfo const&,
Digikam::ThumbnailImage const&) const (thumbnailcreator.cpp:695)
==8229==    by 0x80A7BD8: Digikam::ThumbnailCreator::load(QString const&, QRect
const&, bool) const (thumbnailcreator.cpp:267)
==8229==    by 0x80A7785: Digikam::ThumbnailCreator::load(QString const&) const
(thumbnailcreator.cpp:199)
==8229==    by 0x80B6665: Digikam::ThumbnailLoadingTask::execute()
(thumbnailtask.cpp:172)
==8229== 
==8229== Conditional jump or move depends on uninitialised value(s)
==8229==    at 0x80BAA27: CEncoder::CMacroBlock::NumberOfBitplanes()
(Encoder.cpp:748)
==8229==    by 0x80BA219: CEncoder::CMacroBlock::BitplaneEncode()
(Encoder.cpp:502)
==8229==    by 0x80B9E52: CEncoder::EncodeBuffer(ROIBlockHeader)
(Encoder.cpp:348)
==8229==    by 0x80B9D03: CEncoder::Flush() (Encoder.cpp:314)
==8229==    by 0x80BE687: CPGFImage::WriteImage(CPGFStream*, bool (*)(double,
bool, void*), void*) (PGFimage.cpp:1135)
==8229==    by 0x80BE73B: CPGFImage::Write(CPGFStream*, unsigned int*, bool
(*)(double, bool, void*), void*) (PGFimage.cpp:1170)
==8229==    by 0x80C9F2E: Digikam::PGFUtils::writePGFImageDataToStream(QImage
const&, CPGFStream&, int, unsigned int&, bool) (pgfutils.cpp:288)
==8229==    by 0x80C938A: Digikam::PGFUtils::writePGFImageData(QImage const&,
QByteArray&, int, bool) (pgfutils.cpp:184)
==8229==    by 0x80AA259:
Digikam::ThumbnailCreator::storeInDatabase(Digikam::ThumbnailInfo const&,
Digikam::ThumbnailImage const&) const (thumbnailcreator.cpp:695)
==8229==    by 0x80A7BD8: Digikam::ThumbnailCreator::load(QString const&, QRect
const&, bool) const (thumbnailcreator.cpp:267)
==8229==    by 0x80A7785: Digikam::ThumbnailCreator::load(QString const&) const
(thumbnailcreator.cpp:199)
==8229==    by 0x80B6665: Digikam::ThumbnailLoadingTask::execute()
(thumbnailtask.cpp:172)

Gilles Caulier

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



More information about the Digikam-devel mailing list