From 97d1e56ca34797634226ebf52f0862393c8e678c Mon Sep 17 00:00:00 2001 From: Andreas Adelmann <andreas.adelmann@psi.ch> Date: Sun, 23 Jun 2024 19:39:28 +0200 Subject: [PATCH] illeal memory access when delete OpalData --- src/AbstractObjects/OpalData.h | 2 +- src/Main.cpp | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/AbstractObjects/OpalData.h b/src/AbstractObjects/OpalData.h index bcb83da83..3f7b2b4c7 100644 --- a/src/AbstractObjects/OpalData.h +++ b/src/AbstractObjects/OpalData.h @@ -258,7 +258,7 @@ public: private: static bool isInstantiated; - static OpalData* instance; + static OpalData* instance; // \todo should be a smart pointer and we then should get ridd of deleteInstance static std::stack<OpalData*> stashedInstances; OpalData(); diff --git a/src/Main.cpp b/src/Main.cpp index 8fbafa2ec..78fdd2d15 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -176,7 +176,8 @@ int main(int argc, char* argv[]) { if (is) { *gmsg << "Reading startup file '" << startup << "'" << endl; - parser.run(is); + parser. + run(is); *gmsg << "Finished reading startup file." << endl; } FileStream::setEcho(Options::echo); @@ -379,7 +380,9 @@ int main(int argc, char* argv[]) { } catch (EarlyLeaveException& ex) { // do nothing here - } catch (OpalException& ex) { + } + + catch (OpalException& ex) { Inform errorMsg("Error", std::cerr, INFORM_ALL_NODES); errorMsg << "\n*** User error detected by function \"" << ex.where() << "\"\n"; // stat->printWhere(errorMsg, true); @@ -489,10 +492,14 @@ int main(int argc, char* argv[]) { IpplTimings::print( std::string("timing.dat"), OpalData::getInstance()->getProblemCharacteristicValues()); + ippl::Comm->barrier(); Fieldmap::clearDictionary(); - OpalData::deleteInstance(); + + // \todo we should not need this OpalData::deleteInstance(); + delete gmsg; + ippl::finalize(); return 0; } } -- GitLab