MCPcopy Create free account
hub / github.com/EmbeddedRPC/erpc / setCallingFreeFunctions

Method setCallingFreeFunctions

erpcgen/src/CGenerator.cpp:3083–3113  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3081}
3082
3083void CGenerator::setCallingFreeFunctions(Symbol *symbol, data_map &info, bool returnType)
3084{
3085 StructMember *structMember = dynamic_cast<StructMember *>(symbol);
3086 assert(structMember);
3087 DataType *trueDataType = structMember->getDataType()->getTrueDataType();
3088 data_map firstFreeingCall1;
3089 firstFreeingCall1["firstFreeingCall"] = "";
3090 firstFreeingCall1["freeName"] = "";
3091 // When true then function parameter, else return type
3092 if (!findAnnotation(symbol, SHARED_ANNOTATION) && generateServerFreeFunctions(structMember))
3093 {
3094 if (!returnType)
3095 {
3096 if (trueDataType->isStruct() || trueDataType->isUnion())
3097 {
3098 string name = getOutputName(structMember, false);
3099 firstFreeingCall1["firstFreeingCall"] = m_templateData["freeData"];
3100 firstFreeingCall1["freeName"] = name;
3101 }
3102 }
3103 else
3104 {
3105 if (trueDataType->isArray() || trueDataType->isStruct() || trueDataType->isUnion())
3106 {
3107 firstFreeingCall1["firstFreeingCall"] = m_templateData["freeData"];
3108 firstFreeingCall1["freeName"] = "result";
3109 }
3110 }
3111 }
3112 info["firstFreeingCall1"] = firstFreeingCall1;
3113}
3114
3115data_map CGenerator::allocateCall(const string &name, Symbol *symbol)
3116{

Callers

nothing calls this directly

Calls 5

getTrueDataTypeMethod · 0.80
isStructMethod · 0.80
isUnionMethod · 0.80
isArrayMethod · 0.80
getDataTypeMethod · 0.45

Tested by

no test coverage detected