aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2008-02-18 17:19:55 -0600
committerIan Hinder <hinder@paulaner.gravity.psu.edu>2008-02-19 19:28:22 -0500
commit50012e6633cb55699aa3332513df9aef4d607906 (patch)
tree72d78290db8d8b2a0881fa2995f60cdcbadbc7eb /Tools
parent2cdfa990faec4f0f3567fc1a476752ddcbdd7cc0 (diff)
Correct memory leak in boundary conditions:
Create option tables only once, then re-use them
Diffstat (limited to 'Tools')
-rw-r--r--Tools/CodeGen/Thorn.m50
1 files changed, 29 insertions, 21 deletions
diff --git a/Tools/CodeGen/Thorn.m b/Tools/CodeGen/Thorn.m
index d905e7f..ca43637 100644
--- a/Tools/CodeGen/Thorn.m
+++ b/Tools/CodeGen/Thorn.m
@@ -691,7 +691,7 @@ CreateMoLBoundariesSource[spec_] :=
" ierr = CartSymGN(cctkGH, \"" <> fullgroupname <> "\");\n",
" if (ierr < 0)\n",
- " CCTK_WARN(-1, \"Failed to apply symmetry BC for " <> fullgroupname <> "!\");\n"}
+ " CCTK_WARN(0, \"Failed to apply symmetry BC for " <> fullgroupname <> "!\");\n"}
];
*)
@@ -712,7 +712,7 @@ CreateMoLBoundariesSource[spec_] :=
" \"" <> fullgroupname <> "\", " <> boundpar <> ");\n",
" if (ierr < 0)\n",
- " CCTK_WARN(-1, \"Failed to register "<>boundpar<>" BC for "<>fullgroupname<>"!\");\n",
+ " CCTK_WARN(0, \"Failed to register "<>boundpar<>" BC for "<>fullgroupname<>"!\");\n",
"}\n"}];
@@ -734,7 +734,7 @@ CreateMoLBoundariesSource[spec_] :=
" \"" <> fullgfname <> "\", " <> boundpar <> ");\n",
" if (ierr < 0)\n",
- " CCTK_WARN(-1, \"Failed to register "<>boundpar<>" BC for "<>fullgfname<>"!\");\n",
+ " CCTK_WARN(0, \"Failed to register "<>boundpar<>" BC for "<>fullgfname<>"!\");\n",
"}\n"}];
@@ -750,22 +750,24 @@ CreateMoLBoundariesSource[spec_] :=
"if (CCTK_EQUALS(" <> boundpar <> ", \"radiative\"))\n",
"{\n /* apply radiation boundary condition */\n ",
- DefineVariable[myhandle, "CCTK_INT", "Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE)"],
+ DefineVariable[myhandle, "static CCTK_INT", "-1"],
- " if ("<>myhandle<>" < 0) CCTK_WARN(-1, \"could not create table!\");\n",
+ " if ("<>myhandle<>" < 0) "<>myhandle<>" = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);\n",
+
+ " if ("<>myhandle<>" < 0) CCTK_WARN(0, \"could not create table!\");\n",
" if (Util_TableSetReal("<>myhandle<>" , "<> boundpar <>"_limit, \"LIMIT\") < 0)\n",
- " CCTK_WARN(-1, \"could not set LIMIT value in table!\");\n",
+ " CCTK_WARN(0, \"could not set LIMIT value in table!\");\n",
" if (Util_TableSetReal("<>myhandle<>" ," <> boundpar <> "_speed, \"SPEED\") < 0)\n",
- " CCTK_WARN(-1, \"could not set SPEED value in table!\");\n",
+ " CCTK_WARN(0, \"could not set SPEED value in table!\");\n",
"\n",
" ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, "<>myhandle<>", \n",
" \"" <> fullgroupname <> "\", \"Radiation\");\n\n",
" if (ierr < 0)\n",
- " CCTK_WARN(-1, \"Failed to register Radiation BC for "<>fullgroupname<>"!\");\n",
+ " CCTK_WARN(0, \"Failed to register Radiation BC for "<>fullgroupname<>"!\");\n",
"\n}\n"}];
@@ -782,22 +784,24 @@ CreateMoLBoundariesSource[spec_] :=
"if (CCTK_EQUALS(" <> boundpar <> ", \"radiative\"))\n",
"{\n /* apply radiation boundary condition */\n ",
- DefineVariable[myhandle, "CCTK_INT", "Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE)"],
+ DefineVariable[myhandle, "static CCTK_INT", "-1"],
+
+ " if ("<>myhandle<>" < 0) "<>myhandle<>" = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);\n",
- " if ("<>myhandle<>" < 0) CCTK_WARN(-1, \"could not create table!\");\n",
+ " if ("<>myhandle<>" < 0) CCTK_WARN(0, \"could not create table!\");\n",
" if (Util_TableSetReal("<>myhandle<>" , "<> boundpar <>"_limit, \"LIMIT\") < 0)\n",
- " CCTK_WARN(-1, \"could not set LIMIT value in table!\");\n",
+ " CCTK_WARN(0, \"could not set LIMIT value in table!\");\n",
" if (Util_TableSetReal("<>myhandle<>" ," <> boundpar <> "_speed, \"SPEED\") < 0)\n",
- " CCTK_WARN(-1, \"could not set SPEED value in table!\");\n",
+ " CCTK_WARN(0, \"could not set SPEED value in table!\");\n",
"\n",
" ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, "<>myhandle<>", \n",
" \"" <> fullgfname <> "\", \"Radiation\");\n\n",
" if (ierr < 0)\n",
- " CCTK_WARN(-1, \"Failed to register Radiation BC for "<>fullgfname<>"!\");\n",
+ " CCTK_WARN(0, \"Failed to register Radiation BC for "<>fullgfname<>"!\");\n",
"\n}\n"}];
@@ -812,19 +816,21 @@ CreateMoLBoundariesSource[spec_] :=
"if (CCTK_EQUALS(" <> boundpar <> ", \"scalar\"))\n",
"{\n /* apply scalar boundary condition */\n ",
- DefineVariable[myhandle, "CCTK_INT", "Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE)"],
+ DefineVariable[myhandle, "static CCTK_INT", "-1"],
- " if ("<>myhandle<>" < 0) CCTK_WARN(-1, \"could not create table!\");\n",
+ " if ("<>myhandle<>" < 0) "<>myhandle<>" = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);\n",
+
+ " if ("<>myhandle<>" < 0) CCTK_WARN(0, \"could not create table!\");\n",
" if (Util_TableSetReal("<>myhandle<>" ," <> boundpar <> "_scalar, \"SCALAR\") < 0)\n",
- " CCTK_WARN(-1, \"could not set SCALAR value in table!\");\n",
+ " CCTK_WARN(0, \"could not set SCALAR value in table!\");\n",
"\n",
" ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, "<>myhandle<>", \n",
" \"" <> fullgroupname <> "\", \"scalar\");\n\n",
" if (ierr < 0)\n",
- " CCTK_WARN(-1, \"Failed to register Scalar BC for "<>fullgroupname<>"!\");\n",
+ " CCTK_WARN(0, \"Failed to register Scalar BC for "<>fullgroupname<>"!\");\n",
"\n}\n"}];
@@ -840,19 +846,21 @@ CreateMoLBoundariesSource[spec_] :=
"if (CCTK_EQUALS(" <> boundpar <> ", \"scalar\"))\n",
"{\n /* apply scalar boundary condition */\n ",
- DefineVariable[myhandle, "CCTK_INT", "Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE)"],
+ DefineVariable[myhandle, "static CCTK_INT", "-1"],
+
+ " if ("<>myhandle<>" < 0) "<>myhandle<>" = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);\n",
- " if ("<>myhandle<>" < 0) CCTK_WARN(-1, \"could not create table!\");\n",
+ " if ("<>myhandle<>" < 0) CCTK_WARN(0, \"could not create table!\");\n",
" if (Util_TableSetReal("<>myhandle<>" ," <> boundpar <> "_scalar, \"SCALAR\") < 0)\n",
- " CCTK_WARN(-1, \"could not set SCALAR value in table!\");\n",
+ " CCTK_WARN(0, \"could not set SCALAR value in table!\");\n",
"\n",
" ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, "<>myhandle<>", \n",
" \"" <> fullgfname <> "\", \"scalar\");\n\n",
" if (ierr < 0)\n",
- " CCTK_WARN(-1, \"Error in registering Scalar BC for "<>fullgfname<>"!\");\n",
+ " CCTK_WARN(0, \"Error in registering Scalar BC for "<>fullgfname<>"!\");\n",
"\n}\n"}];