mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +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