diff --git a/source/WorldStorage/FastNBT.cpp b/source/WorldStorage/FastNBT.cpp index d5dc2b923..e55011069 100644 --- a/source/WorldStorage/FastNBT.cpp +++ b/source/WorldStorage/FastNBT.cpp @@ -505,6 +505,7 @@ void cFastNBTWriter::AddIntArray(const AString & a_Name, const int * a_Value, si Int32 len = htonl(a_NumElements); m_Result.append((const char *)&len, 4); #if defined(ANDROID_NDK) + // Android has alignment issues - cannot byteswap (htonl) an int that is not 32-bit-aligned, which happens in the regular version for (size_t i = 0; i < a_NumElements; i++) { int Element = htonl(a_Value[i]); diff --git a/source/WorldStorage/FastNBT.h b/source/WorldStorage/FastNBT.h index 1cae4879f..7323c29cb 100644 --- a/source/WorldStorage/FastNBT.h +++ b/source/WorldStorage/FastNBT.h @@ -190,6 +190,13 @@ public: return res; } + inline AString GetName(int a_Tag) const + { + AString res; + res.assign(m_Data + m_Tags[a_Tag].m_NameStart, m_Tags[a_Tag].m_NameLength); + return res; + } + protected: const char * m_Data; int m_Length;