| 4309 | } |
| 4310 | |
| 4311 | void COFF::PopulateType(DbgType* dbgType) |
| 4312 | { |
| 4313 | uint8* data = CvGetTagData(dbgType->mTagIdx, false); |
| 4314 | CvAutoReleaseTempData releaseTempData(this, data); |
| 4315 | |
| 4316 | uint8* dataStart = data; |
| 4317 | uint16 trLeafType = GET(uint16); |
| 4318 | |
| 4319 | switch (trLeafType) |
| 4320 | { |
| 4321 | case LF_ENUM: |
| 4322 | { |
| 4323 | lfEnum& enumInfo = *(lfEnum*)dataStart; |
| 4324 | CvParseMembers(dbgType, enumInfo.field, false); |
| 4325 | } |
| 4326 | break; |
| 4327 | case LF_CLASS: |
| 4328 | case LF_STRUCTURE: |
| 4329 | { |
| 4330 | lfClass& classInfo = *(lfClass*)dataStart; |
| 4331 | CvParseMembers(dbgType, classInfo.field, false); |
| 4332 | } |
| 4333 | break; |
| 4334 | |
| 4335 | case LF_CLASS_EX: |
| 4336 | case LF_STRUCTURE_EX: |
| 4337 | { |
| 4338 | auto property = GET(CV_prop_t); |
| 4339 | auto extra = GET(int16); |
| 4340 | auto field = GET(CV_typ_t); |
| 4341 | CvParseMembers(dbgType, field, false); |
| 4342 | } |
| 4343 | break; |
| 4344 | |
| 4345 | case LF_UNION: |
| 4346 | { |
| 4347 | lfUnion& classInfo = *(lfUnion*)dataStart; |
| 4348 | CvParseMembers(dbgType, classInfo.field, false); |
| 4349 | } |
| 4350 | break; |
| 4351 | default: |
| 4352 | BF_FATAL("Invalid type"); |
| 4353 | } |
| 4354 | } |
| 4355 | |
| 4356 | void COFF::PopulateTypeGlobals(DbgType* dbgType) |
| 4357 | { |
no outgoing calls
no test coverage detected