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

View File

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