Fixed crash when editing an image in thumb browser without saving; see issue #620
This commit is contained in:
@@ -309,14 +309,18 @@ void FileBrowser::close () {
|
|||||||
Glib::Mutex::Lock lock(entryMutex);
|
Glib::Mutex::Lock lock(entryMutex);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
selected.clear ();
|
||||||
|
notifySelectionListener ();
|
||||||
|
|
||||||
|
// The listener merges parameters with old values, so delete afterwards
|
||||||
for (int i=0; i<fd.size(); i++)
|
for (int i=0; i<fd.size(); i++)
|
||||||
{
|
{
|
||||||
delete fd[i];
|
delete fd[i];
|
||||||
}
|
}
|
||||||
fd.clear ();
|
fd.clear ();
|
||||||
selected.clear ();
|
|
||||||
}
|
}
|
||||||
notifySelectionListener ();
|
|
||||||
lastClicked = NULL;
|
lastClicked = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -140,7 +140,10 @@ bool Thumbnail::isSupported () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const ProcParams& Thumbnail::getProcParams () {
|
const ProcParams& Thumbnail::getProcParams () {
|
||||||
//Glib::Mutex::Lock lock(mutex);
|
// TODO: Check for Linux
|
||||||
|
#ifdef WIN32
|
||||||
|
Glib::Mutex::Lock lock(mutex);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (pparamsValid)
|
if (pparamsValid)
|
||||||
return pparams;
|
return pparams;
|
||||||
@@ -161,7 +164,10 @@ const ProcParams& Thumbnail::getProcParams () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Thumbnail::loadProcParams () {
|
void Thumbnail::loadProcParams () {
|
||||||
//Glib::Mutex::Lock lock(mutex);
|
// TODO: Check for Linux
|
||||||
|
#ifdef WIN32
|
||||||
|
Glib::Mutex::Lock lock(mutex);
|
||||||
|
#endif
|
||||||
|
|
||||||
pparamsValid = false;
|
pparamsValid = false;
|
||||||
if (options.paramsLoadLocation==PLL_Input) {
|
if (options.paramsLoadLocation==PLL_Input) {
|
||||||
@@ -183,7 +189,10 @@ void Thumbnail::loadProcParams () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Thumbnail::clearProcParams (int whoClearedIt) {
|
void Thumbnail::clearProcParams (int whoClearedIt) {
|
||||||
//Glib::Mutex::Lock lock(mutex);
|
// TODO: Check for Linux
|
||||||
|
#ifdef WIN32
|
||||||
|
Glib::Mutex::Lock lock(mutex);
|
||||||
|
#endif
|
||||||
|
|
||||||
cfs.recentlySaved = false;
|
cfs.recentlySaved = false;
|
||||||
pparamsValid = false;
|
pparamsValid = false;
|
||||||
@@ -211,7 +220,10 @@ bool Thumbnail::hasProcParams () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Thumbnail::setProcParams (const ProcParams& pp, int whoChangedIt, bool updateCacheNow) {
|
void Thumbnail::setProcParams (const ProcParams& pp, int whoChangedIt, bool updateCacheNow) {
|
||||||
//Glib::Mutex::Lock lock(mutex);
|
// TODO: Check for Linux
|
||||||
|
#ifdef WIN32
|
||||||
|
Glib::Mutex::Lock lock(mutex);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (pparams!=pp)
|
if (pparams!=pp)
|
||||||
cfs.recentlySaved = false;
|
cfs.recentlySaved = false;
|
||||||
@@ -523,7 +535,10 @@ void Thumbnail::updateCache () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Thumbnail::~Thumbnail () {
|
Thumbnail::~Thumbnail () {
|
||||||
//Glib::Mutex::Lock lock(mutex);
|
// TODO: Check for Linux
|
||||||
|
#ifdef WIN32
|
||||||
|
Glib::Mutex::Lock lock(mutex);
|
||||||
|
#endif
|
||||||
|
|
||||||
delete [] lastImg;
|
delete [] lastImg;
|
||||||
delete tpp;
|
delete tpp;
|
||||||
|
Reference in New Issue
Block a user