MCPcopy Create free account
hub / github.com/beefytech/Beef / ParseTypeData

Method ParseTypeData

IDEHelper/Linker/BlPdbParser.cpp:215–284  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

213}
214
215void BlPdbParser::ParseTypeData()
216{
217 int sectionSize = 0;
218 mCvTypeSectionData = CvReadStream(2, &sectionSize);
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, &sectionSize);
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 }

Callers 1

ParseIPIDataMethod · 0.45

Calls 2

ScanTypeDataMethod · 0.80
resizeMethod · 0.45

Tested by

no test coverage detected