You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Revert CL-7441982. This caused issues where multiple bunches could be marked as closing bunches, and cause crashes.
[at]Ryan.Gerleve, [at]Brian.Bekich #jira UE-81861 #rb Ryan.Gerleve #ROBOMERGE-SOURCE: CL 9732973 in //UE4/Release-4.24/... #ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v539-9700858) [CL 9732974 by jon nabozny in Main branch]
This commit is contained in:
@@ -553,12 +553,6 @@ bool UChannel::ReceivedNextBunch( FInBunch & Bunch, bool & bOutSkipAck )
|
||||
Connection->InReliable[Bunch.ChIndex] = Bunch.ChSequence;
|
||||
}
|
||||
|
||||
if (Bunch.bHasPackageMapExports && !Connection->InternalAck)
|
||||
{
|
||||
UE_LOG(LogNet, VeryVerbose, TEXT("Received new bunch. It only contained NetGUIDs and was processed in UChannel::ReceivedRawBunch(). PacketId %d. ChSequence %d. ChIndex %d"), Bunch.PacketId, Bunch.ChSequence, Bunch.ChIndex);
|
||||
return false;
|
||||
}
|
||||
|
||||
FInBunch* HandleBunch = &Bunch;
|
||||
if (Bunch.bPartial)
|
||||
{
|
||||
@@ -593,7 +587,7 @@ bool UChannel::ReceivedNextBunch( FInBunch & Bunch, bool & bOutSkipAck )
|
||||
}
|
||||
|
||||
InPartialBunch = new FInBunch(Bunch, false);
|
||||
if (ensureMsgf((!Bunch.bHasPackageMapExports && Bunch.GetBitsLeft() > 0), TEXT("Received new partial bunch with bHasPackageMapExports flag set to 1. This should not have happened. %s"), *Describe()))
|
||||
if ( !Bunch.bHasPackageMapExports && Bunch.GetBitsLeft() > 0 )
|
||||
{
|
||||
if ( Bunch.GetBitsLeft() % 8 != 0 )
|
||||
{
|
||||
@@ -606,6 +600,10 @@ bool UChannel::ReceivedNextBunch( FInBunch & Bunch, bool & bOutSkipAck )
|
||||
|
||||
LogPartialBunch(TEXT("Received new partial bunch."), Bunch, *InPartialBunch);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogPartialBunch(TEXT("Received New partial bunch. It only contained NetGUIDs."), Bunch, *InPartialBunch);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -972,13 +970,11 @@ FPacketIdRange UChannel::SendBunch( FOutBunch* Bunch, bool Merge )
|
||||
TArray<FOutBunch*>& OutgoingBunches = Connection->GetOutgoingBunches();
|
||||
OutgoingBunches.Reset();
|
||||
|
||||
int32 NumOfExportBunches = 0;
|
||||
// Add any export bunches
|
||||
// Replay connections will manage export bunches separately.
|
||||
if (!Connection->InternalAck)
|
||||
{
|
||||
AppendExportBunches( OutgoingBunches );
|
||||
NumOfExportBunches = OutgoingBunches.Num();
|
||||
}
|
||||
|
||||
if ( OutgoingBunches.Num() )
|
||||
@@ -1098,7 +1094,7 @@ FPacketIdRange UChannel::SendBunch( FOutBunch* Bunch, bool Merge )
|
||||
return PacketIdRange;
|
||||
}
|
||||
|
||||
UE_CLOG((OutgoingBunches.Num() > 1 + NumOfExportBunches), LogNetPartialBunch, Log, TEXT("Sending %d Bunches. Channel: %d %s"), OutgoingBunches.Num() - NumOfExportBunches, Bunch->ChIndex, *Describe());
|
||||
UE_CLOG((OutgoingBunches.Num() > 1), LogNetPartialBunch, Log, TEXT("Sending %d Bunches. Channel: %d %s"), OutgoingBunches.Num(), Bunch->ChIndex, *Describe());
|
||||
for( int32 PartialNum = 0; PartialNum < OutgoingBunches.Num(); ++PartialNum)
|
||||
{
|
||||
FOutBunch * NextBunch = OutgoingBunches[PartialNum];
|
||||
@@ -1118,12 +1114,12 @@ FPacketIdRange UChannel::SendBunch( FOutBunch* Bunch, bool Merge )
|
||||
NextBunch->bHasMustBeMappedGUIDs |= Bunch->bHasMustBeMappedGUIDs;
|
||||
}
|
||||
|
||||
if (OutgoingBunches.Num() > 1 + NumOfExportBunches)
|
||||
if (OutgoingBunches.Num() > 1)
|
||||
{
|
||||
NextBunch->bPartial = (PartialNum >= NumOfExportBunches ? 1 : 0); // do not set bPartial bit of export bunches to 1
|
||||
NextBunch->bPartialInitial = (PartialNum == NumOfExportBunches ? 1: 0);
|
||||
NextBunch->bPartial = 1;
|
||||
NextBunch->bPartialInitial = (PartialNum == 0 ? 1: 0);
|
||||
NextBunch->bPartialFinal = (PartialNum == OutgoingBunches.Num() - 1 ? 1: 0);
|
||||
NextBunch->bOpen &= (PartialNum == NumOfExportBunches); // Only the first bunch should have the bOpen bit set
|
||||
NextBunch->bOpen &= (PartialNum == 0); // Only the first bunch should have the bOpen bit set
|
||||
NextBunch->bClose = (Bunch->bClose && (OutgoingBunches.Num()-1 == PartialNum)); // Only last bunch should have bClose bit set
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user