Fixed some crashes caused by a memory overwrite

This commit is contained in:
Oliver Duis
2011-04-13 21:13:12 +02:00
parent 1e31a821e5
commit af91e3bfb5

View File

@@ -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;