diff options
author | schnetter <> | 2003-08-15 07:34:00 +0000 |
---|---|---|
committer | schnetter <> | 2003-08-15 07:34:00 +0000 |
commit | 59b51723aa02b896c4bcd5fbde02038b005cb715 (patch) | |
tree | ef1be71308c5cc816cedcbe6b15788d700add858 /Carpet | |
parent | 0bc5df6a7a6d19cf3f46b0ee4ed9578835601336 (diff) |
Check whether the total number of grid points fits into an int.
darcs-hash:20030815073436-07bb3-9831a752d1a3d301651a5a40d72fa9aa9303d749.gz
Diffstat (limited to 'Carpet')
-rw-r--r-- | Carpet/Carpet/param.ccl | 2 | ||||
-rw-r--r-- | Carpet/Carpet/src/CarpetParamCheck.cc | 2 | ||||
-rw-r--r-- | Carpet/Carpet/src/SetupGH.cc | 13 |
3 files changed, 14 insertions, 3 deletions
diff --git a/Carpet/Carpet/param.ccl b/Carpet/Carpet/param.ccl index e8e0f7345..6742612e2 100644 --- a/Carpet/Carpet/param.ccl +++ b/Carpet/Carpet/param.ccl @@ -1,5 +1,5 @@ # Parameter definitions for thorn Carpet -# $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/param.ccl,v 1.32 2003/08/10 21:59:51 schnetter Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/param.ccl,v 1.33 2003/08/15 09:34:36 schnetter Exp $ shares: Cactus diff --git a/Carpet/Carpet/src/CarpetParamCheck.cc b/Carpet/Carpet/src/CarpetParamCheck.cc index ba3e4ebcd..038113bb2 100644 --- a/Carpet/Carpet/src/CarpetParamCheck.cc +++ b/Carpet/Carpet/src/CarpetParamCheck.cc @@ -8,7 +8,7 @@ #include "carpet.hh" extern "C" { - static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/CarpetParamCheck.cc,v 1.7 2003/07/22 20:09:05 schnetter Exp $"; + static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/CarpetParamCheck.cc,v 1.8 2003/08/15 09:34:36 schnetter Exp $"; CCTK_FILEVERSION(Carpet_Carpet_CarpetParamCheck_cc); } diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc index e1fd46355..0fd45e49d 100644 --- a/Carpet/Carpet/src/SetupGH.cc +++ b/Carpet/Carpet/src/SetupGH.cc @@ -1,4 +1,5 @@ #include <assert.h> +#include <limits.h> #include <stdlib.h> #include <string.h> @@ -19,7 +20,7 @@ #include "carpet.hh" extern "C" { - static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/SetupGH.cc,v 1.51 2003/07/20 21:03:43 schnetter Exp $"; + static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/SetupGH.cc,v 1.52 2003/08/15 09:34:36 schnetter Exp $"; CCTK_FILEVERSION(Carpet_Carpet_SetupGH_cc); } @@ -180,6 +181,16 @@ namespace Carpet { } else { npoints = vect<int,dim>(global_nsize, global_nsize, global_nsize); } + // Sanity check + // (if this fails, someone requested an insane amount of memory) + assert (all(npoints <= INT_MAX / maxreflevelfact)); + { + int max = INT_MAX; + for (int d=0; d<dim; ++d) { + assert (npoints[d] * maxreflevelfact <= max); + max /= npoints[d] * maxreflevelfact; + } + } const vect<int,dim> str(stride); const vect<int,dim> lb(0); |