diff --git a/doc/xml/release.xml b/doc/xml/release.xml index 96114caaf..6d186e5c8 100644 --- a/doc/xml/release.xml +++ b/doc/xml/release.xml @@ -96,7 +96,7 @@ -

Improve null-handling of strToLog().

+

Improve null-handling of strToLog() and varToLog().

diff --git a/src/common/type/variant.c b/src/common/type/variant.c index d891fa9b7..5dfb26f3b 100644 --- a/src/common/type/variant.c +++ b/src/common/type/variant.c @@ -928,40 +928,45 @@ Convert variant to a zero-terminated string for logging String * varToLog(const Variant *this) { - const String *string = NULL; + String *result = NULL; - switch (varType(this)) + if (this == NULL) + result = strNew("null"); + else { - case varTypeString: + switch (varType(this)) { - string = strNewFmt("\"%s\"", strPtr(varStrForce(this))); - break; - } + case varTypeString: + { + result = strToLog(varStr(this)); + break; + } - case varTypeKeyValue: - { - string = STRING_CONST("KeyValue"); - break; - } + case varTypeKeyValue: + { + result = strNew("{KeyValue}"); + break; + } - case varTypeVariantList: - { - string = STRING_CONST("VariantList"); - break; - } + case varTypeVariantList: + { + result = strNew("{VariantList}"); + break; + } - case varTypeBool: - case varTypeDouble: - case varTypeInt: - case varTypeInt64: - case varTypeUInt64: - { - string = varStrForce(this); - break; + case varTypeBool: + case varTypeDouble: + case varTypeInt: + case varTypeInt64: + case varTypeUInt64: + { + result = strNewFmt("{%s}", strPtr(varStrForce(this))); + break; + } } } - return strNewFmt("{%s}", strPtr(string)); + return result; } /*********************************************************************************************************************************** diff --git a/test/src/module/common/typeVariantTest.c b/test/src/module/common/typeVariantTest.c index a5dda3a44..f7020b50f 100644 --- a/test/src/module/common/typeVariantTest.c +++ b/test/src/module/common/typeVariantTest.c @@ -312,6 +312,7 @@ testRun(void) TEST_RESULT_STR(strPtr(varToLog(varNewBool(false))), "{false}", "format bool"); TEST_RESULT_STR(strPtr(varToLog(varNewKv())), "{KeyValue}", "format KeyValue"); TEST_RESULT_STR(strPtr(varToLog(varNewVarLst(varLstNew()))), "{VariantList}", "format VariantList"); + TEST_RESULT_STR(strPtr(varToLog(NULL)), "null", "format null"); } // *****************************************************************************************************************************