diff --git a/apps/openmw_test_suite/lua/test_serialization.cpp b/apps/openmw_test_suite/lua/test_serialization.cpp index f8c6960c51..1983daa158 100644 --- a/apps/openmw_test_suite/lua/test_serialization.cpp +++ b/apps/openmw_test_suite/lua/test_serialization.cpp @@ -193,9 +193,9 @@ namespace table["y"] = TestStruct2{4, 3}; TestSerializer serializer; - EXPECT_ERROR(LuaUtil::serialize(table), "Unknown userdata"); + EXPECT_ERROR(LuaUtil::serialize(table), "Value is not serializable."); std::string serialized = LuaUtil::serialize(table, &serializer); - EXPECT_ERROR(LuaUtil::deserialize(lua, serialized), "Unknown type:"); + EXPECT_ERROR(LuaUtil::deserialize(lua, serialized), "Unknown type in serialized data:"); sol::table res = LuaUtil::deserialize(lua, serialized, &serializer); TestStruct1 rx = res.get("x"); diff --git a/components/lua/serialization.cpp b/components/lua/serialization.cpp index 53b6fe3b92..2e13cfe29f 100644 --- a/components/lua/serialization.cpp +++ b/components/lua/serialization.cpp @@ -43,7 +43,7 @@ namespace LuaUtil static T getValue(std::string_view& binaryData) { if (binaryData.size() < sizeof(T)) - throw std::runtime_error("Unexpected end"); + throw std::runtime_error("Unexpected end of serialized data."); T v; std::memcpy(&v, binaryData.data(), sizeof(T)); binaryData = binaryData.substr(sizeof(T)); @@ -107,15 +107,15 @@ namespace LuaUtil if (customSerializer && customSerializer->serialize(out, data)) return; else - throw std::runtime_error("Unknown userdata"); + throw std::runtime_error("Value is not serializable."); } static void serialize(BinaryData& out, const sol::object& obj, const UserdataSerializer* customSerializer, int recursionCounter) { if (obj.get_type() == sol::type::lightuserdata) - throw std::runtime_error("light userdata is not allowed to be serialized"); + throw std::runtime_error("Light userdata is not allowed to be serialized."); if (obj.is()) - throw std::runtime_error("functions are not allowed to be serialized"); + throw std::runtime_error("Functions are not allowed to be serialized."); else if (obj.is()) serializeUserdata(out, obj, customSerializer); else if (obj.is()) @@ -144,13 +144,13 @@ namespace LuaUtil appendType(out, SerializedType::BOOLEAN); out.push_back(v); } else - throw std::runtime_error("Unknown lua type"); + throw std::runtime_error("Unknown Lua type."); } static void deserializeImpl(sol::state& lua, std::string_view& binaryData, const UserdataSerializer* customSerializer) { if (binaryData.empty()) - throw std::runtime_error("Unexpected end"); + throw std::runtime_error("Unexpected end of serialized data."); unsigned char type = binaryData[0]; binaryData = binaryData.substr(1); if (type & (CUSTOM_COMPACT_FLAG | CUSTOM_FULL_FLAG)) @@ -170,7 +170,7 @@ namespace LuaUtil std::string_view data = binaryData.substr(typeNameSize, dataSize); binaryData = binaryData.substr(typeNameSize + dataSize); if (!customSerializer || !customSerializer->deserialize(typeName, data, lua)) - throw std::runtime_error("Unknown type: " + std::string(typeName)); + throw std::runtime_error("Unknown type in serialized data: " + std::string(typeName)); return; } if (type & SHORT_STRING_FLAG) @@ -205,12 +205,12 @@ namespace LuaUtil lua_settable(lua, -3); } if (binaryData.empty()) - throw std::runtime_error("Unexpected end"); + throw std::runtime_error("Unexpected end of serialized data."); binaryData = binaryData.substr(1); return; } case SerializedType::TABLE_END: - throw std::runtime_error("Unexpected table end"); + throw std::runtime_error("Unexpected end of table during deserialization."); case SerializedType::VEC2: { float x = getValue(binaryData); @@ -227,7 +227,7 @@ namespace LuaUtil return; } } - throw std::runtime_error("Unknown type: " + std::to_string(type)); + throw std::runtime_error("Unknown type in serialized data: " + std::to_string(type)); } BinaryData serialize(const sol::object& obj, const UserdataSerializer* customSerializer)