Fixed some crashes caused by a memory overwrite
This commit is contained in:
@@ -75,7 +75,6 @@ void Thumbnail::_generateThumbnailImage () {
|
|||||||
th = options.maxThumbnailHeight;
|
th = options.maxThumbnailHeight;
|
||||||
|
|
||||||
// generate thumbnail image
|
// generate thumbnail image
|
||||||
|
|
||||||
Glib::ustring ext = getExtension (fname);
|
Glib::ustring ext = getExtension (fname);
|
||||||
if (ext=="")
|
if (ext=="")
|
||||||
return;
|
return;
|
||||||
@@ -83,8 +82,6 @@ void Thumbnail::_generateThumbnailImage () {
|
|||||||
cfs.exifValid = false;
|
cfs.exifValid = false;
|
||||||
cfs.timeValid = false;
|
cfs.timeValid = false;
|
||||||
|
|
||||||
delete tpp;
|
|
||||||
tpp = NULL;
|
|
||||||
if (ext.lowercase()=="jpg" || ext.lowercase()=="png" || ext.lowercase()=="tif" || ext.lowercase()=="tiff") {
|
if (ext.lowercase()=="jpg" || ext.lowercase()=="png" || ext.lowercase()=="tif" || ext.lowercase()=="tiff") {
|
||||||
tpp = rtengine::Thumbnail::loadFromImage (fname, tw, th, 1);
|
tpp = rtengine::Thumbnail::loadFromImage (fname, tw, th, 1);
|
||||||
if (tpp) {
|
if (tpp) {
|
||||||
@@ -112,7 +109,7 @@ void Thumbnail::_generateThumbnailImage () {
|
|||||||
quick = true;
|
quick = true;
|
||||||
tpp = rtengine::Thumbnail::loadQuickFromRaw (fname, ri, tw, th, 1, TRUE);
|
tpp = rtengine::Thumbnail::loadQuickFromRaw (fname, ri, tw, th, 1, TRUE);
|
||||||
}
|
}
|
||||||
if ( tpp == 0 )
|
if ( tpp == NULL )
|
||||||
{
|
{
|
||||||
quick = false;
|
quick = false;
|
||||||
tpp = rtengine::Thumbnail::loadFromRaw (fname, ri, tw, th, 1, TRUE);
|
tpp = rtengine::Thumbnail::loadFromRaw (fname, ri, tw, th, 1, TRUE);
|
||||||
@@ -123,17 +120,18 @@ void Thumbnail::_generateThumbnailImage () {
|
|||||||
infoFromImage (fname, &ri);
|
infoFromImage (fname, &ri);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tpp)
|
if (tpp)
|
||||||
{
|
{
|
||||||
_saveThumbnail ();
|
_saveThumbnail ();
|
||||||
cfs.supported = true;
|
cfs.supported = true;
|
||||||
}
|
|
||||||
needsReProcessing = true;
|
needsReProcessing = true;
|
||||||
|
|
||||||
cfs.save (getCacheFileName ("data")+".txt");
|
cfs.save (getCacheFileName ("data")+".txt");
|
||||||
|
|
||||||
generateExifDateTimeStrings ();
|
generateExifDateTimeStrings ();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool Thumbnail::isSupported () {
|
bool Thumbnail::isSupported () {
|
||||||
return cfs.supported;
|
return cfs.supported;
|
||||||
@@ -463,6 +461,8 @@ void Thumbnail::_loadThumbnail(bool firstTrial) {
|
|||||||
_generateThumbnailImage ();
|
_generateThumbnailImage ();
|
||||||
if (cfs.supported && firstTrial)
|
if (cfs.supported && firstTrial)
|
||||||
_loadThumbnail (false);
|
_loadThumbnail (false);
|
||||||
|
|
||||||
|
if (tpp==NULL) return;
|
||||||
}
|
}
|
||||||
else if (!succ) {
|
else if (!succ) {
|
||||||
delete tpp;
|
delete tpp;
|
||||||
|
Reference in New Issue
Block a user