BankLookup and AssetLookup pointers were not initialized to nullptr in FFMODAssetTable constructor so they contain garbage until FFMODAssetTable::Load is called. They are not accessed by the integration before doing so, but if the loading takes long enough time (in our case because of a slow server cooking assets on the fly), garbage collection may run before the FFMODAssetTable::Load method gets called and the BankLookup and AssetLookup pointers reference nonexistent objects which leads to a crash.
This fix simply initializes the pointers in the constructor to nullptr so that if the FFMODAssetTable::AddReferencedObjects method gets called before the FFMODAssetTable::Load method the asset table will not reference anything.
BankLookup and AssetLookup pointers were not initialized to nullptr in FFMODAssetTable constructor so they contain garbage until FFMODAssetTable::Load is called. They are not accessed by the integration before doing so, but if the loading takes long enough time (in our case because of a slow server cooking assets on the fly), garbage collection may run before the FFMODAssetTable::Load method gets called and the BankLookup and AssetLookup pointers reference nonexistent objects which leads to a crash.
This fix simply initializes the pointers in the constructor to nullptr so that if the FFMODAssetTable::AddReferencedObjects method gets called before the FFMODAssetTable::Load method the asset table will not reference anything.