MCPcopy Create free account
hub / github.com/bulletphysics/bullet3 / resolvePointers

Method resolvePointers

Extras/Serialize/BulletFileLoader/bFile.cpp:1391–1437  ·  view source on GitHub ↗

Resolve pointers replaces the original pointers in structures, and linked lists by the new in-memory structures

Source from the content-addressed store, hash-verified

1389
1390///Resolve pointers replaces the original pointers in structures, and linked lists by the new in-memory structures
1391void bFile::resolvePointers(int verboseMode)
1392{
1393 bParse::bDNA *fileDna = mFileDNA ? mFileDNA : mMemoryDNA;
1394
1395 //char *dataPtr = mFileBuffer+mDataStart;
1396
1397 if (1) //mFlags & (FD_BITS_VARIES | FD_VERSION_VARIES))
1398 {
1399 resolvePointersMismatch();
1400 }
1401
1402 {
1403 if (verboseMode & FD_VERBOSE_EXPORT_XML)
1404 {
1405 printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
1406 int numitems = m_chunks.size();
1407 printf("<bullet_physics version=%d itemcount = %d>\n", btGetVersion(), numitems);
1408 }
1409 for (int i = 0; i < m_chunks.size(); i++)
1410 {
1411 const bChunkInd &dataChunk = m_chunks.at(i);
1412
1413 if (!mFileDNA || fileDna->flagEqual(dataChunk.dna_nr))
1414 {
1415 //dataChunk.len
1416 short int *oldStruct = fileDna->getStruct(dataChunk.dna_nr);
1417 char *oldType = fileDna->getType(oldStruct[0]);
1418
1419 if (verboseMode & FD_VERBOSE_EXPORT_XML)
1420 printf(" <%s pointer=%p>\n", oldType, dataChunk.oldPtr);
1421
1422 resolvePointersChunk(dataChunk, verboseMode);
1423
1424 if (verboseMode & FD_VERBOSE_EXPORT_XML)
1425 printf(" </%s>\n", oldType);
1426 }
1427 else
1428 {
1429 //printf("skipping mStruct\n");
1430 }
1431 }
1432 if (verboseMode & FD_VERBOSE_EXPORT_XML)
1433 {
1434 printf("</bullet_physics>\n");
1435 }
1436 }
1437}
1438
1439// ----------------------------------------------------- //
1440void *bFile::findLibPointer(void *ptr)

Callers

nothing calls this directly

Calls 6

btGetVersionFunction · 0.85
sizeMethod · 0.45
atMethod · 0.45
flagEqualMethod · 0.45
getStructMethod · 0.45
getTypeMethod · 0.45

Tested by

no test coverage detected