Bulk Data - use correct package ID

#rb enrique.garcia
#rnx
#preflight 63721846bf76990b71f3dc58

[CL 23116678 by per larsson in ue5-main branch]
This commit is contained in:
per larsson
2022-11-14 08:10:08 -05:00
parent 43647b0e3a
commit 5264ba61a4
2 changed files with 7 additions and 3 deletions

View File

@@ -1228,6 +1228,7 @@ void FBulkData::Serialize(FArchive& Ar, UObject* Owner, bool bAttemptFileMapping
check(IsInSeparateFile());
check(Package != nullptr);
BulkMeta.SetFlags(EBulkDataFlags(BulkMeta.GetFlags() | BULKDATA_UsesIoDispatcher));
BulkChunkId = CreateBulkDataIoChunkId(BulkMeta, Owner);
}
}
else
@@ -1238,6 +1239,11 @@ void FBulkData::Serialize(FArchive& Ar, UObject* Owner, bool bAttemptFileMapping
{
LinkerLoad = FLinkerLoad::FindExistingLinkerForPackage(Package);
}
if (LinkerLoad != nullptr)
{
BulkChunkId = CreateBulkDataIoChunkId(BulkMeta, Owner);
}
#if WITH_EDITOR
Linker = LinkerLoad;
if (bCanLazyLoad)
@@ -1250,8 +1256,6 @@ void FBulkData::Serialize(FArchive& Ar, UObject* Owner, bool bAttemptFileMapping
}
}
BulkChunkId = CreateBulkDataIoChunkId(BulkMeta, Owner);
if (IsInlined())
{
checkf(bAttemptFileMapping == false || bIsUsingIoDispatcher == false, TEXT("Trying to memory map inline bulk data '%s' which is not supported when loading from I/O store"), *Owner->GetPackage()->GetFName().ToString());

View File

@@ -191,7 +191,7 @@ FIoChunkId CreateBulkDataIoChunkId(const FBulkMetaData& BulkMeta, UObject* Owner
const uint16 ChunkIndex = EnumHasAnyFlags(BulkMeta.GetMetaFlags(), FBulkMetaData::EMetaFlags::OptionalPackage) ? 1 : 0;
return CreateIoChunkId(Pkg->GetPackageId().Value(), ChunkIndex, ChunkType);
return CreateIoChunkId(Pkg->GetPackageIdToLoad().Value(), ChunkIndex, ChunkType);
}
else
{