bool FBuildPatchFileConstructor::InsertChunkData(const FChunkPartData& ChunkPart, FArchive& DestinationFile, FSHA1& HashState) { uint8* Data; uint8* DataStart; FChunkFile* ChunkFile = FBuildPatchChunkCache::Get().GetChunkFile( ChunkPart.Guid ); if( ChunkFile != NULL && !FBuildPatchInstallError::HasFatalError() ) { ChunkFile->GetDataLock( &Data, NULL ); DataStart = &Data[ ChunkPart.Offset ]; HashState.Update( DataStart, ChunkPart.Size ); DestinationFile.Serialize( DataStart, ChunkPart.Size ); ChunkFile->Dereference(); ChunkFile->ReleaseDataLock(); return true; } return false; }