| 213 | } |
| 214 | |
| 215 | void BlPdbParser::ParseTypeData() |
| 216 | { |
| 217 | int sectionSize = 0; |
| 218 | mCvTypeSectionData = CvReadStream(2, §ionSize); |
| 219 | uint8* data = mCvTypeSectionData; |
| 220 | uint8* sectionData = mCvTypeSectionData; |
| 221 | |
| 222 | int32 ver = GET(int32); |
| 223 | int32 headerSize = GET(int32); |
| 224 | int32 minVal = GET(int32); |
| 225 | int32 maxVal = GET(int32); |
| 226 | int32 followSize = GET(int32); |
| 227 | |
| 228 | int16 hashStream = GET(int16); |
| 229 | int16 hashStreamPadding = GET(int16); |
| 230 | int32 hashKey = GET(int32); |
| 231 | int32 hashBucketsSize = GET(int32); |
| 232 | int32 hashValsOffset = GET(int32); |
| 233 | int32 hashValsSize = GET(int32); |
| 234 | int32 hashTypeInfoOffset = GET(int32); |
| 235 | int32 hashTypeInfoSize = GET(int32); |
| 236 | int32 hashAdjOffset = GET(int32); |
| 237 | int32 hashAdjSize = GET(int32); |
| 238 | |
| 239 | mTypeSource->mTPI.mCvMinTag = minVal; |
| 240 | mTypeSource->mTPI.mCvMaxTag = maxVal; |
| 241 | //mCvTypeMap.clear(); |
| 242 | //mTypeSource->mTPI.mCvTagStartMap.clear(); |
| 243 | //mCvTypeMap.resize(maxVal - minVal); |
| 244 | mTypeSource->mTPI.mCvTagStartMap.resize(maxVal - minVal); |
| 245 | |
| 246 | //DbgDataMap dataMap(minVal, maxVal); |
| 247 | |
| 248 | mTypeSource->mTPI.mSectionData = data; |
| 249 | mTypeSource->mTPI.mSectionSize = sectionSize - (int)(data - sectionData); |
| 250 | mTypeSource->mTPI.ScanTypeData(); |
| 251 | mTypeSource->mTPI.ParseTypeData(); |
| 252 | |
| 253 | if (hashAdjSize > 0) |
| 254 | { |
| 255 | int sectionSize = 0; |
| 256 | uint8* data = CvReadStream(hashStream, §ionSize); |
| 257 | uint8* sectionData = data; |
| 258 | |
| 259 | data = sectionData + hashAdjOffset; |
| 260 | |
| 261 | GET_INTO(int32, adjustCount); |
| 262 | GET_INTO(int32, unk0); |
| 263 | GET_INTO(int32, unkCount); |
| 264 | for (int i = 0; i < unkCount; i++) |
| 265 | { |
| 266 | GET_INTO(int32, unk2); |
| 267 | } |
| 268 | GET_INTO(int32, unkCount2); |
| 269 | for (int i = 0; i < unkCount2; i++) |
| 270 | { |
| 271 | GET_INTO(int32, unk3); |
| 272 | } |
no test coverage detected