浏览代码

Fix crash on using JsonDeserializer on JsonNode without valid mod scope

Ivan Savenko 3 月之前
父节点
当前提交
aab628c5d4
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      lib/serializer/JsonSerializer.cpp

+ 4 - 0
lib/serializer/JsonSerializer.cpp

@@ -78,6 +78,7 @@ void JsonSerializer::serializeInternal(const std::string & fieldName, std::vecto
 void JsonSerializer::serializeInternal(std::string & value)
 void JsonSerializer::serializeInternal(std::string & value)
 {
 {
 	currentObject->String() = value;
 	currentObject->String() = value;
+	currentObject->setModScope(ModScope::scopeGame());
 }
 }
 
 
 void JsonSerializer::serializeInternal(int64_t & value)
 void JsonSerializer::serializeInternal(int64_t & value)
@@ -105,7 +106,10 @@ void JsonSerializer::serializeLIC(const std::string & fieldName, LICSet & value)
 void JsonSerializer::serializeString(const std::string & fieldName, std::string & value)
 void JsonSerializer::serializeString(const std::string & fieldName, std::string & value)
 {
 {
 	if(!value.empty())
 	if(!value.empty())
+	{
 		currentObject->operator[](fieldName).String() = value;
 		currentObject->operator[](fieldName).String() = value;
+		currentObject->operator[](fieldName).setModScope(ModScope::scopeGame());
+	}
 }
 }
 
 
 void JsonSerializer::serializeRaw(const std::string & fieldName, JsonNode & value, const std::optional<std::reference_wrapper<const JsonNode>> defaultValue)
 void JsonSerializer::serializeRaw(const std::string & fieldName, JsonNode & value, const std::optional<std::reference_wrapper<const JsonNode>> defaultValue)