mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-11-06 11:57:13 +00:00
test: the server mock keeps a copy of the last bitstream sent
The bitstreams sent are usually on the sender's stack, so the pointer it kept was dangling once Send returned. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,12 +17,16 @@ class dZoneManager;
|
|||||||
class AssetManager;
|
class AssetManager;
|
||||||
|
|
||||||
class dServerMock : public dServer {
|
class dServerMock : public dServer {
|
||||||
RakNet::BitStream* sentBitStream = nullptr;
|
// A copy: the bitstreams sent are usually on the sender's stack
|
||||||
|
std::unique_ptr<RakNet::BitStream> sentBitStream;
|
||||||
public:
|
public:
|
||||||
dServerMock() {};
|
dServerMock() {};
|
||||||
~dServerMock() {};
|
~dServerMock() {};
|
||||||
RakNet::BitStream* GetMostRecentBitStream() { return sentBitStream; };
|
RakNet::BitStream* GetMostRecentBitStream() { return sentBitStream.get(); };
|
||||||
void Send(RakNet::BitStream& bitStream, const SystemAddress& sysAddr, bool broadcast) override { sentBitStream = &bitStream; };
|
void Send(RakNet::BitStream& bitStream, const SystemAddress& sysAddr, bool broadcast) override {
|
||||||
|
sentBitStream = std::make_unique<RakNet::BitStream>(bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), true);
|
||||||
|
sentBitStream->SetWriteOffset(bitStream.GetNumberOfBitsUsed());
|
||||||
|
};
|
||||||
void SetZoneId(unsigned int zoneId) { mZoneID = zoneId; }
|
void SetZoneId(unsigned int zoneId) { mZoneID = zoneId; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user