diff options
author | tradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2003-07-15 13:20:20 +0000 |
---|---|---|
committer | tradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2003-07-15 13:20:20 +0000 |
commit | 07e6e93bcfbb250786361485aa4ff47eb8b80fb6 (patch) | |
tree | 4c2205b233a58cade5553e10c3ea2e746704f163 /src/main/GroupsOnGH.c | |
parent | e0795ec8aea49ef240f390a67efa65c91e37d672 (diff) |
Check for valid variable index in CCTK_NumTimeLevelsFromVarI().
This closes PR Cactus/1133.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@3276 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/main/GroupsOnGH.c')
-rw-r--r-- | src/main/GroupsOnGH.c | 40 |
1 files changed, 14 insertions, 26 deletions
diff --git a/src/main/GroupsOnGH.c b/src/main/GroupsOnGH.c index 54bd1e5e..4894c098 100644 --- a/src/main/GroupsOnGH.c +++ b/src/main/GroupsOnGH.c @@ -209,6 +209,8 @@ void *CCTK_VarDataPtr(const cGH *GH, int timelevel, const char *varname) int vindex; void *retval; + + retval = NULL; vindex = CCTK_VarIndex(varname); if (vindex >= 0) { @@ -221,14 +223,12 @@ void *CCTK_VarDataPtr(const cGH *GH, int timelevel, const char *varname) CCTK_VWarn(1,__LINE__,__FILE__,"Cactus", "Invalid timelevel %d for variable '%s' in CCTK_VarDataPtr", timelevel, varname); - retval = NULL; } } else { CCTK_VWarn(1,__LINE__,__FILE__,"Cactus", "Invalid variable name '%s' in CCTK_VarDataPtr", varname); - retval = NULL; } #ifdef DEBUG_GROUPS @@ -256,11 +256,10 @@ void *CCTK_VarDataPtr(const cGH *GH, int timelevel, const char *varname) @vio in @endvar - @var vari + @var vindex @vdesc Index of grid variable @vtype int @vio in - @vcomment Assumed to be in correct range @endvar @var timelevel @@ -275,27 +274,29 @@ void *CCTK_VarDataPtr(const cGH *GH, int timelevel, const char *varname) @@*/ void *CCTK_VarDataPtrI(const cGH *GH, int timelevel, int vindex) { + int numtimelevels; void *retval; retval = NULL; - if (vindex >= 0) + numtimelevels = CCTK_NumTimeLevelsFromVarI (vindex); + if (numtimelevels > 0) { - if (timelevel >= 0 && timelevel < CCTK_NumTimeLevelsFromVarI (vindex)) + if (timelevel >= 0 && timelevel < numtimelevels) { retval = GH->data[vindex][timelevel]; } else { CCTK_VWarn(1,__LINE__,__FILE__,"Cactus", - "Invalid timelevel %d for variable '%s' in CCTK_VarDataPtrI", + "CCTK_VarDataPtrI: Invalid timelevel %d for variable '%s'", timelevel, CCTK_VarName (vindex)); } } else { - CCTK_Warn(1,__LINE__,__FILE__,"Cactus", - "CCTK_VarPtrDataI: Calling CCTK_VarDataPtrI with negative index"); + CCTK_VWarn(1,__LINE__,__FILE__,"Cactus", + "CCTK_VarPtrDataI: Invalid index %d given", vindex); } return retval; @@ -364,17 +365,13 @@ int CCTK_EnableGroupCommI(const cGH *GH, int group) int retcode; char *group_name; + retcode = 0; group_name = CCTK_GroupName(group); if(group_name) { retcode = CCTK_EnableGroupComm(GH, group_name); - free(group_name); } - else - { - retcode = 0; - } return retcode; } @@ -392,6 +389,7 @@ int CCTK_EnableGroupStorageI(const cGH *GH, int group) int retcode; char *group_name; + retcode = 0; group_name = CCTK_GroupName(group); if(group_name) { @@ -402,10 +400,6 @@ int CCTK_EnableGroupStorageI(const cGH *GH, int group) free(group_name); } - else - { - retcode = 0; - } return retcode; } @@ -423,6 +417,7 @@ int CCTK_DisableGroupCommI(const cGH *GH, int group) int retcode; char *group_name; + retcode = 0; group_name = CCTK_GroupName(group); if(group_name) { @@ -433,10 +428,6 @@ int CCTK_DisableGroupCommI(const cGH *GH, int group) free(group_name); } - else - { - retcode = 0; - } return retcode; } @@ -454,6 +445,7 @@ int CCTK_DisableGroupStorageI(const cGH *GH, int group) int retcode; char *group_name; + retcode = 0; group_name = CCTK_GroupName(group); if(group_name) { @@ -461,10 +453,6 @@ int CCTK_DisableGroupStorageI(const cGH *GH, int group) free(group_name); } - else - { - retcode = 0; - } return retcode; } |