Fixed network error, leaving try block in place for the time being
It seems that the union type Packet didn't initialize Packet::type to PacketType::NONE using in class initialization. I've fixed this by moving the initialization of Packet::type to Packet::Packet(). This might actually be a compiler error, I might need to let someone know.
This commit is contained in:
@@ -13,10 +13,10 @@ static std::deque<Packet> queue;
|
||||
|
||||
int networkQueue(void*) {
|
||||
UDPNetworkUtility* netUtil = ServiceLocator<UDPNetworkUtility>::Get();
|
||||
Packet p;
|
||||
for(;;) {
|
||||
SDL_SemWait(lock);
|
||||
while(netUtil->Receive()) {
|
||||
Packet p;
|
||||
memcpy(&p, netUtil->GetInData(), sizeof(Packet));
|
||||
queue.push_back(p);
|
||||
}
|
||||
|
||||
@@ -81,8 +81,8 @@ struct PlayerMove {
|
||||
};
|
||||
|
||||
union Packet {
|
||||
Packet() {};
|
||||
PacketType type = PacketType::NONE;
|
||||
Packet() { type = PacketType::NONE; };
|
||||
PacketType type;
|
||||
|
||||
Ping ping;
|
||||
Pong pong;
|
||||
|
||||
+3
-11
@@ -1,19 +1,11 @@
|
||||
#include "packet_type.hpp"
|
||||
#include "service_locator.hpp"
|
||||
#include "foobar.hpp"
|
||||
|
||||
#include "vector2.hpp"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
ServiceLocator<int>::Set(new int(42));
|
||||
ServiceLocator<Packet>::Set(new Packet());
|
||||
|
||||
cout << FooBar() << endl;
|
||||
|
||||
ServiceLocator<int>::Set(nullptr);
|
||||
ServiceLocator<Packet>::Set(nullptr);
|
||||
Packet p;
|
||||
cout << int(p.type) << endl;
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user