[Lemon-commits] Balazs Dezso: Automatic GLPK env deallocation (#...
Lemon HG
hg at lemon.cs.elte.hu
Wed Mar 4 14:54:46 CET 2009
details: http://lemon.cs.elte.hu/hg/lemon/rev/ba124394367a
changeset: 560:ba124394367a
user: Balazs Dezso <deba [at] inf.elte.hu>
date: Mon Feb 23 23:44:29 2009 +0100
description:
Automatic GLPK env deallocation (#213)
diffstat:
4 files changed, 14 insertions(+), 10 deletions(-)
lemon/glpk.cc | 2 ++
lemon/glpk.h | 20 ++++++++++++--------
test/lp_test.cc | 1 -
test/mip_test.cc | 1 -
diffs (66 lines):
diff --git a/lemon/glpk.cc b/lemon/glpk.cc
--- a/lemon/glpk.cc
+++ b/lemon/glpk.cc
@@ -526,6 +526,8 @@
glp_free_env();
}
+ GlpkBase::FreeEnvHelper GlpkBase::freeEnvHelper;
+
// GlpkLp members
GlpkLp::GlpkLp()
diff --git a/lemon/glpk.h b/lemon/glpk.h
--- a/lemon/glpk.h
+++ b/lemon/glpk.h
@@ -100,16 +100,20 @@
virtual void _clear();
+ private:
+
+ static void freeEnv();
+
+ struct FreeEnvHelper {
+ ~FreeEnvHelper() {
+ freeEnv();
+ }
+ };
+
+ static FreeEnvHelper freeEnvHelper;
+
public:
- /// \brief Deallocates the globally allocated memory of GLPK.
-
- /// Deallocates the globally allocated memory of GLPK. \note
- /// Usually, it do not have to be called, because the GLPK use
- /// only a small amount of global memory, and it is deallocated
- /// automatically at the end of program.
- static void freeEnv();
-
///Pointer to the underlying GLPK data structure.
LPX *lpx() {return lp;}
///Const pointer to the underlying GLPK data structure.
diff --git a/test/lp_test.cc b/test/lp_test.cc
--- a/test/lp_test.cc
+++ b/test/lp_test.cc
@@ -366,7 +366,6 @@
lpTest(lp_glpk1);
aTest(lp_glpk2);
}
- GlpkLp::freeEnv();
#endif
#ifdef HAVE_CPLEX
diff --git a/test/mip_test.cc b/test/mip_test.cc
--- a/test/mip_test.cc
+++ b/test/mip_test.cc
@@ -115,7 +115,6 @@
GlpkMip mip1;
aTest(mip1);
}
- GlpkLp::freeEnv();
#endif
#ifdef HAVE_CPLEX
More information about the Lemon-commits
mailing list