diff options
author | Cedric Borgese <cedric.borgese@gmail.com> | 2005-09-27 13:31:15 +0000 |
---|---|---|
committer | Cedric Borgese <cedric.borgese@gmail.com> | 2005-09-27 13:31:15 +0000 |
commit | 8225942307f8290e5941cdeaff5c7b212f978390 (patch) | |
tree | a60d0efb5eaeec89a002d8a58ee485de190e8615 /src/net/messageout.cpp | |
parent | d56c142c43939657df13f3b7246defe8f181306e (diff) | |
download | Mana-8225942307f8290e5941cdeaff5c7b212f978390.tar.gz Mana-8225942307f8290e5941cdeaff5c7b212f978390.tar.bz2 Mana-8225942307f8290e5941cdeaff5c7b212f978390.tar.xz Mana-8225942307f8290e5941cdeaff5c7b212f978390.zip |
Dont crash if there is an unknown error at login.
Remove a bug that do x86_64 arch fail to connect to server : long is 8 bytes on that arch, use int for 4 bytes integer.
Diffstat (limited to 'src/net/messageout.cpp')
-rw-r--r-- | src/net/messageout.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/net/messageout.cpp b/src/net/messageout.cpp index 00a37b67..713d49be 100644 --- a/src/net/messageout.cpp +++ b/src/net/messageout.cpp @@ -77,16 +77,19 @@ void MessageOut::writeShort(short value) out_size += sizeof(short); } -void MessageOut::writeLong(long value) +/* + writeLong should use an int because long is 8 bytes in x86_64 arch ! +*/ +void MessageOut::writeLong(int value) { - expand(mPos + sizeof(long)); + expand(mPos + sizeof(int)); #if SDL_BYTEORDER == SDL_BIG_ENDIAN - (*(long *)(mData + mPos)) = SDL_Swap32(value); + (*(int *)(mData + mPos)) = SDL_Swap32(value); #else - (*(long *)(mData + mPos)) = value; + (*(int *)(mData + mPos)) = value; #endif - mPos += sizeof(long); - out_size += sizeof(long); + mPos += sizeof(int); + out_size += sizeof(int); } void MessageOut::writeString(const std::string &string, int length) |