mirror of
https://github.com/eledio-devices/thirdparty-ArduinoJson.git
synced 2025-11-01 00:38:27 +01:00
asIntegral() ignores pointers (6812,5626)
This commit is contained in:
@@ -48,7 +48,9 @@ struct Converter<
|
||||
static T fromJson(VariantConstRef src) {
|
||||
ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(T);
|
||||
const VariantData* data = getData(src);
|
||||
return data ? data->asIntegral<T>() : T();
|
||||
if (!data)
|
||||
return T();
|
||||
return data->resolve()->asIntegral<T>();
|
||||
}
|
||||
|
||||
static bool checkJson(VariantConstRef src) {
|
||||
@@ -64,8 +66,7 @@ struct Converter<T, typename enable_if<is_enum<T>::value>::type> {
|
||||
}
|
||||
|
||||
static T fromJson(VariantConstRef src) {
|
||||
const VariantData* data = getData(src);
|
||||
return data ? static_cast<T>(data->asIntegral<int>()) : T();
|
||||
return static_cast<T>(Converter<int>::fromJson(src));
|
||||
}
|
||||
|
||||
static bool checkJson(VariantConstRef src) {
|
||||
|
||||
@@ -29,8 +29,6 @@ inline T VariantData::asIntegral() const {
|
||||
return parseNumber<T>(_content.asString.data);
|
||||
case VALUE_IS_FLOAT:
|
||||
return convertNumber<T>(_content.asFloat);
|
||||
case VALUE_IS_POINTER: // P+28 G+0
|
||||
return _content.asPointer->asIntegral<T>();
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user