diff --git a/src/stubser/cfile.c b/src/stubser/cfile.c index f18ea34..8d3d657 100644 --- a/src/stubser/cfile.c +++ b/src/stubser/cfile.c @@ -129,3 +129,35 @@ int8_t cfile_hasVaList(cfile_t *aFile) } return -1; } + +/*! + * @brief Checks if at least one variable or function parameter is a pointer + * @retval -2 Null pointer parameter + * @retval -1 Has no pointer + * @retval 0 At least on pointer + */ +int8_t cfile_hasPointerParameter(cfile_t *aFile) +{ + cfunction_t *function = aFile->functions.head; + cfunction_parameterList_t *paraList = NULL; + cfunction_parameter_t *parameter; + if (NULL == aFile) + { + return -2; + } + while(function) + { + paraList = &function->parameter; + parameter = paraList->head; + while(parameter) + { + if (NULL != strstr(parameter->dataType, "*") || NULL != parameter->array) + { + return 0; + } + parameter = parameter->next; + } + function = function->next; + } + return -1; +} diff --git a/src/stubser/cfile_if.h b/src/stubser/cfile_if.h index 3b8a90c..e8286c2 100644 --- a/src/stubser/cfile_if.h +++ b/src/stubser/cfile_if.h @@ -71,5 +71,6 @@ int8_t cfile_freeVariables(cfile_variableList_t *aVariable); void cfile_free(cfile_t *aCfile); void cfile_print(cfile_t *aCfile); int8_t cfile_hasVaList(cfile_t *aFile); +int8_t cfile_hasPointerParameter(cfile_t *aFile); #endif /* STUBSER_CFILE_IF_H_ */