diff options
author | allen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 1999-03-09 12:00:17 +0000 |
---|---|---|
committer | allen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 1999-03-09 12:00:17 +0000 |
commit | 304dd8fa234b9825ed8ef506663c00f8b6847337 (patch) | |
tree | 1b8afe0caaf342108983eabf7c70bf7c5d6e83dc /src/main | |
parent | acd2933c903b54632facdd78577f59d51887ac19 (diff) |
Added a few more return values
git-svn-id: http://svn.cactuscode.org/flesh/trunk@389 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/Groups.c | 77 |
1 files changed, 61 insertions, 16 deletions
diff --git a/src/main/Groups.c b/src/main/Groups.c index c7e08f5e..4b1434b8 100644 --- a/src/main/Groups.c +++ b/src/main/Groups.c @@ -315,6 +315,7 @@ int CCTK_GetVarNum(const char *implementation, } } else + { group_num = CCTK_GetGroupNum(implementation, group_name); @@ -343,7 +344,7 @@ int CCTK_GetVarNum(const char *implementation, @date Mon Feb 8 12:04:01 1999 @author Tom Goodale @desc - Gets the maximum dimesion of all groups. + Gets the maximum dimension of all groups. @enddesc @calls @calledby @@ -415,8 +416,15 @@ char *CCTK_GetGroupFromVar(int var) char *retval; int group_num; - group_num = group_of_variable[var]; - retval = groups[group_num].name; + if (var<0 || var>total_variables-1) + { + retval = NULL; + } + else + { + group_num = group_of_variable[var]; + retval = groups[group_num].name; + } return retval; } @@ -440,8 +448,15 @@ char *CCTK_GetImplementationFromVar(int var) char *retval; int group_num; - group_num = group_of_variable[var]; - retval = groups[group_num].implementation; + if (var<0 || var>total_variables-1) + { + retval = NULL; + } + else + { + group_num = group_of_variable[var]; + retval = groups[group_num].implementation; + } return retval; } @@ -466,14 +481,22 @@ char *CCTK_GetFullName(int var) char *impname; char *varname; int group_num; - char *fullname; + char *fullname=NULL; varname = CCTK_GetVarName(var); - group_num = group_of_variable[var]; - impname = groups[group_num].implementation; + if (varname) + { + group_num = group_of_variable[var]; + impname = groups[group_num].implementation; - fullname = malloc((strlen(varname)+strlen(impname)+3)*sizeof(char)); - sprintf(fullname,"%s::%s",impname,varname); + fullname = malloc((strlen(varname)+strlen(impname)+3)*sizeof(char)); + if (fullname) + sprintf(fullname,"%s::%s",impname,varname); + } + else + { + fullname = NULL; + } return fullname; } @@ -493,10 +516,10 @@ char *CCTK_GetFullName(int var) @endhistory @@*/ -int *CCTK_ArrayGroupSize(cGH *GH, const char *group, int dim) +int *CCTK_ArrayGroupSize(cGH *GH, const char *group, int dir) { /* Quick fudge */ - return &(GH->local_shape[dim]); + return &(GH->local_shape[dir]); } /*@@ @@ -692,19 +715,41 @@ int CCTK_DecomposeGroupName(const char *fullname, char **implementation, char ** return CCTK_SplitString(implementation, name, fullname, "::"); } + + char *CCTK_GetGroupName(int group) { char *name; - name = malloc((strlen(groups[group].implementation)+strlen(groups[group].name)+3)*sizeof(char)); - sprintf(name, "%s::%s",groups[group].implementation, groups[group].name); - + if (group < 0 || group >= n_groups) + { + name = NULL; + } + else + { + name = malloc((strlen(groups[group].implementation)+strlen(groups[group].name)+3)*sizeof(char)); + if (name) + { + sprintf(name, "%s::%s",groups[group].implementation, groups[group].name); + } + else + { + name = NULL; + } + } return name; } int CCTK_GetFirstVarNum(int group) { - return groups[group].variables[0].number; + if (0 <= group && group<n_groups) + { + return groups[group].variables[0].number; + } + else + { + return -1; + } } int CCTK_GetVarGType(int var) |