asString() ignores pointers (6814,5626)

This commit is contained in:
Benoit Blanchon
2022-03-28 12:27:59 +02:00
parent b5f840c0d1
commit 2d81897371
2 changed files with 6 additions and 4 deletions

View File

@@ -124,7 +124,9 @@ struct Converter<const char*> {
static const char* fromJson(VariantConstRef src) { static const char* fromJson(VariantConstRef src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data ? data->asString().c_str() : 0; if (!data)
return 0;
return data->resolve()->asString().c_str();
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(VariantConstRef src) {
@@ -142,7 +144,9 @@ struct Converter<String> {
static String fromJson(VariantConstRef src) { static String fromJson(VariantConstRef src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data ? data->asString() : 0; if (!data)
return String();
return data->resolve()->asString();
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(VariantConstRef src) {

View File

@@ -80,8 +80,6 @@ inline String VariantData::asString() const {
case VALUE_IS_OWNED_STRING: case VALUE_IS_OWNED_STRING:
return String(_content.asString.data, _content.asString.size, return String(_content.asString.data, _content.asString.size,
String::Copied); String::Copied);
case VALUE_IS_POINTER: // P+16 G+0
return _content.asPointer->asString();
default: default:
return String(); return String();
} }