From a8569cd218d3d9aa7c690ad71a6ee9467fa0e1d4 Mon Sep 17 00:00:00 2001 From: hinder Date: Fri, 30 Nov 2012 17:36:20 +0000 Subject: Make data parameter of expression evaluation functions const data is a pointer to user-supplied data used for evaluating the expression. It should not be modified by the evaluation. Note that this modifies the flesh API to the (undocumented) thorn-visible function Util_ExpressionEvaluate. git-svn-id: http://svn.cactuscode.org/flesh/trunk@4922 17b73243-c579-4c4c-a9d2-2d5706c11dac --- src/include/util_Expression.h | 4 ++-- src/main/Groups.c | 4 ++-- src/main/Parameters.c | 14 +++++++------- src/util/Expression.c | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/include/util_Expression.h b/src/include/util_Expression.h index c8b524c4..f16b2d91 100644 --- a/src/include/util_Expression.h +++ b/src/include/util_Expression.h @@ -37,8 +37,8 @@ uExpression Util_ExpressionParse(const char *expression); int Util_ExpressionEvaluate(const uExpression buffer, uExpressionValue *retval, - int (*eval)(int, const char * const *, uExpressionValue *, void *), - void *data); + int (*eval)(int, const char * const *, uExpressionValue *, const void *), + const void *data); void Util_ExpressionFree(uExpression buffer); diff --git a/src/main/Groups.c b/src/main/Groups.c index 6716692f..f8125787 100644 --- a/src/main/Groups.c +++ b/src/main/Groups.c @@ -2810,7 +2810,7 @@ const int *CCTKi_GroupLengthAsPointer(const char *fullgroupname) @endvar @var data @vdesc Data passed from expression evaluator - @vtype void * + @vtype const void * @vio in @vcomment Should be a char * with the thorn name. @@ -2824,7 +2824,7 @@ const int *CCTKi_GroupLengthAsPointer(const char *fullgroupname) static int IntParameterEvaluator(int nvars, const char * const *vars, uExpressionValue *vals, - void *data) + const void *data) { int i; diff --git a/src/main/Parameters.c b/src/main/Parameters.c index fcb4e7c0..1daf0bc8 100644 --- a/src/main/Parameters.c +++ b/src/main/Parameters.c @@ -185,11 +185,11 @@ static int ParameterSetSentence (t_param *param, const char *value); static int ParameterSetInteger (t_param *param, const char *value); static int ParameterSetReal (t_param *param, const char *value); static int ParameterSetBoolean (t_param *param, const char *value); -static int SetVarEvaluator(int nvars, const char * const *vars, uExpressionValue *vals, void *data); +static int SetVarEvaluator(int nvars, const char * const *vars, uExpressionValue *vals, const void *data); static void GetBaseName(const char *name, char **basename, int *array_index); static char *ArrayParamName(const char *basename,int array_index); -static int AccVarEvaluator(int nvars, const char * const *vars, uExpressionValue *vals, void *data); +static int AccVarEvaluator(int nvars, const char * const *vars, uExpressionValue *vals, const void *data); static void AddAccumulators(t_param *base, t_param *extra, const char *thorn, @@ -1938,7 +1938,7 @@ static int ParameterSetAccumulator(t_param *param) retval = Util_ExpressionEvaluate(parsed_expression, &value, AccVarEvaluator, - (void *)xy); + xy); xy[0] = value; } @@ -2574,7 +2574,7 @@ static char *ArrayParamName(const char *basename,int array_index) @endvar @var data @vdesc Data passed from expression evaluator - @vtype void * + @vtype const void * @vio in @vcomment Should be an array of two uExpressionValues, @@ -2586,7 +2586,7 @@ static char *ArrayParamName(const char *basename,int array_index) 0 @endreturndesc @@*/ -static int AccVarEvaluator(int nvars, const char * const *vars, uExpressionValue *vals, void *data) +static int AccVarEvaluator(int nvars, const char * const *vars, uExpressionValue *vals, const void *data) { int i; uExpressionValue *exps; @@ -2647,7 +2647,7 @@ static int AccVarEvaluator(int nvars, const char * const *vars, uExpressionValue @endvar @var data @vdesc Data passed from expression evaluator - @vtype void * + @vtype const void * @vio in @vcomment Not used. @@ -2658,7 +2658,7 @@ static int AccVarEvaluator(int nvars, const char * const *vars, uExpressionValue 0 @endreturndesc @@*/ -static int SetVarEvaluator(int nvars, const char * const *vars, uExpressionValue *vals, void *data) +static int SetVarEvaluator(int nvars, const char * const *vars, uExpressionValue *vals, const void *data) { const int restype = *(int *)data; int retval = 0; diff --git a/src/util/Expression.c b/src/util/Expression.c index 96b5ccb4..2d80522c 100644 --- a/src/util/Expression.c +++ b/src/util/Expression.c @@ -252,7 +252,7 @@ uExpression Util_ExpressionParse(const char *expression) @endvar @var eval @vdesc Variable evaluation function - @vtype int (*eval)(int, const char * const *, uExpressionValue *, void *), + @vtype int (*eval)(int, const char * const *, uExpressionValue *, const void *), @vio in @vcomment This function is called with an array of variables to determine the values of @@ -275,8 +275,8 @@ uExpression Util_ExpressionParse(const char *expression) @@*/ int Util_ExpressionEvaluate(const uExpression buffer, uExpressionValue *retval, - int (*eval)(int, const char * const *, uExpressionValue *, void *), - void *data) + int (*eval)(int, const char * const *, uExpressionValue *, const void *), + const void *data) { int retcode; uExpressionValue stack[MAX_STACK_SIZE]; -- cgit v1.2.3