| Summary: | Static instance of G4StateManager is not cleared on destroy. | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | andrey.nakin |
| Component: | run | Assignee: | asai |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | andrey.nakin |
| Priority: | P4 | ||
| Version: | 10.4 | ||
| Hardware: | All | ||
| OS: | All | ||
|
Description
andrey.nakin
2018-10-08 17:07:16 CEST
Suggested fix:
File: G4StateManager.cc
Method: G4StateManager::~G4StateManager()
G4StateManager::~G4StateManager()
{
G4VStateDependent* state=0;
while (theDependentsList.size()>0)
{
state = theDependentsList.back();
theDependentsList.pop_back();
for (std::vector<G4VStateDependent*>::iterator
i=theDependentsList.begin(); i!=theDependentsList.end();)
{
if (*i==state)
{
i = theDependentsList.erase(i);
}
else
{
++i;
}
}
if ( state ) { delete state; }
}
theStateManager = 0; // <-- this is the patch
#ifdef G4MULTITHREADED_DEACTIVATE
G4iosFinalization();
#endif
}
Thanks. This is now fixed in the development version and will be available in the next release. |