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

Method containsList

erpcgen/src/CGenerator.cpp:3230–3270  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3228}
3229
3230bool CGenerator::containsList(DataType *dataType)
3231{
3232 if (dataType->getTrueDataType()->isList())
3233 {
3234 return true;
3235 }
3236 DataType *trueDataType = dataType->getTrueContainerDataType();
3237 switch (trueDataType->getDataType())
3238 {
3239 case DataType::data_type_t::kStructType:
3240 {
3241 StructType *s = dynamic_cast<StructType *>(trueDataType);
3242 assert(s);
3243 return s->containListMember();
3244 }
3245 case DataType::data_type_t::kUnionType:
3246 {
3247 UnionType *u = dynamic_cast<UnionType *>(trueDataType);
3248 assert(u);
3249 for (UnionCase *unionCase : u->getUniqueCases())
3250 {
3251 if (!unionCase->caseMemberIsVoid())
3252 {
3253 for (string unionCaseName : unionCase->getMemberDeclarationNames())
3254 {
3255 StructMember *unionCaseMember = unionCase->getUnionMemberDeclaration(unionCaseName);
3256 if (containsList(unionCaseMember->getDataType()))
3257 {
3258 return true;
3259 }
3260 }
3261 }
3262 }
3263 return false;
3264 }
3265 default:
3266 {
3267 return false;
3268 }
3269 }
3270}
3271
3272bool CGenerator::containsByrefParamToFree(DataType *dataType, set<DataType *> &dataTypes)
3273{

Callers

nothing calls this directly

Calls 9

getTrueDataTypeMethod · 0.80
containListMemberMethod · 0.80
getUniqueCasesMethod · 0.80
caseMemberIsVoidMethod · 0.80
isListMethod · 0.45
getDataTypeMethod · 0.45

Tested by

no test coverage detected