| 256 | } |
| 257 | |
| 258 | StructMember *Generator::findParamReferencedFromUnion(const StructType::member_vector_t &members, |
| 259 | const string &referenceName) |
| 260 | { |
| 261 | for (StructMember *structMember : members) |
| 262 | { |
| 263 | DataType *trueDataType = structMember->getDataType()->getTrueDataType(); |
| 264 | if (trueDataType->isUnion()) |
| 265 | { |
| 266 | UnionType *unionType = dynamic_cast<UnionType *>(trueDataType); |
| 267 | assert(unionType); |
| 268 | if (unionType->isNonEncapsulatedUnion()) |
| 269 | { |
| 270 | string lengthName = getAnnStringValue(structMember, DISCRIMINATOR_ANNOTATION); |
| 271 | if (strcmp(lengthName.c_str(), referenceName.c_str()) == 0) |
| 272 | { |
| 273 | return structMember; |
| 274 | } |
| 275 | } |
| 276 | else |
| 277 | { |
| 278 | if (strcmp(unionType->getDiscriminatorName().c_str(), referenceName.c_str()) == 0) |
| 279 | { |
| 280 | return structMember; |
| 281 | } |
| 282 | } |
| 283 | } |
| 284 | } |
| 285 | return nullptr; |
| 286 | } |
| 287 | |
| 288 | StructMember *Generator::findParamReferencedFrom(const StructType::member_vector_t &members, |
| 289 | const string &referenceName) |
nothing calls this directly
no test coverage detected