From f7d65091f83abe1cb1a70d6823291df8accbe6ab Mon Sep 17 00:00:00 2001 From: Rafael Reilova Date: Sun, 16 Nov 2014 21:52:24 -0500 Subject: 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 --- src/util/serialize.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/util/serialize.cpp') 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 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 buf2(s_size); is.read(&buf2[0], s_size); - std::string s; s.reserve(s_size); s.append(&buf2[0], s_size); return s; -- cgit v1.2.3