| 3081 | } |
| 3082 | |
| 3083 | void 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 | |
| 3115 | data_map CGenerator::allocateCall(const string &name, Symbol *symbol) |
| 3116 | { |
nothing calls this directly
no test coverage detected