diff options
author | Rafael Reilova <rafael7@users.noreply.github.com> | 2014-11-16 21:52:24 -0500 |
---|---|---|
committer | Craig Robbins <kde.psych@gmail.com> | 2014-11-21 22:33:48 +1000 |
commit | f7d65091f83abe1cb1a70d6823291df8accbe6ab (patch) | |
tree | 6955cb513a7d92e9db775e33e18389dfc2738667 /src/util/serialize.cpp | |
parent | d406ac994b8092c5bd2dc32eda1a2eafbf95a30c (diff) | |
download | minetest-f7d65091f83abe1cb1a70d6823291df8accbe6ab.tar.gz minetest-f7d65091f83abe1cb1a70d6823291df8accbe6ab.tar.bz2 minetest-f7d65091f83abe1cb1a70d6823291df8accbe6ab.zip |
serialize.h: use machine native byte swapping if available, fall-back to previous generic method if not (supported for GCC using endian.h, detection done in cmake) write/readARGB8() - just write 32-bit color in one op, instead of 4 1-byte ops cleanup: removed unneeded buffer init for some serialize-out functions use a #define for the fixed point factor in read/writeF1000()
nodemetadata.cpp, nodetimer.cpp
optimzation: simpler deserialize node position method
staticobject.cpp:
cleanup: use util/serialize.h inlines instead of its own de/serialization
serialize.cpp:
minor optimization/cleanup: avoid generation of unneeded string temporary
CMakeLists.txt, cmake_config.h.in: detection of endian.h
config.h: added HAVE_ENDIAN_H
Commits due to feedback squashed
Signed-off-by: Craig Robbins <kde.psych@gmail.com>
Diffstat (limited to 'src/util/serialize.cpp')
-rw-r--r-- | src/util/serialize.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/util/serialize.cpp b/src/util/serialize.cpp index 8779ee634..8a108a0ff 100644 --- a/src/util/serialize.cpp +++ b/src/util/serialize.cpp @@ -68,11 +68,11 @@ std::string deSerializeString(std::istream &is) if(is.gcount() != 2) throw SerializationError("deSerializeString: size not read"); u16 s_size = readU16((u8*)buf); + std::string s; if(s_size == 0) - return ""; + return s; Buffer<char> buf2(s_size); is.read(&buf2[0], s_size); - std::string s; s.reserve(s_size); s.append(&buf2[0], s_size); return s; @@ -86,9 +86,9 @@ std::wstring deSerializeWideString(std::istream &is) if(is.gcount() != 2) throw SerializationError("deSerializeString: size not read"); u16 s_size = readU16((u8*)buf); - if(s_size == 0) - return L""; std::wstring s; + if(s_size == 0) + return s; s.reserve(s_size); for(u32 i=0; i<s_size; i++) { @@ -118,11 +118,11 @@ std::string deSerializeLongString(std::istream &is) if(is.gcount() != 4) throw SerializationError("deSerializeLongString: size not read"); u32 s_size = readU32((u8*)buf); + std::string s; if(s_size == 0) - return ""; + return s; Buffer<char> buf2(s_size); is.read(&buf2[0], s_size); - std::string s; s.reserve(s_size); s.append(&buf2[0], s_size); return s; |