mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	asObject() ignores pointers (6814,5626)
This commit is contained in:
		| @@ -264,7 +264,9 @@ struct Converter<ObjectRef> { | |||||||
|   static ObjectRef fromJson(VariantRef src) { |   static ObjectRef fromJson(VariantRef src) { | ||||||
|     VariantData* data = getData(src); |     VariantData* data = getData(src); | ||||||
|     MemoryPool* pool = getPool(src); |     MemoryPool* pool = getPool(src); | ||||||
|     return ObjectRef(pool, data != 0 ? data->asObject() : 0); |     if (!data) | ||||||
|  |       return ObjectRef(); | ||||||
|  |     return ObjectRef(pool, data->asObject()); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static InvalidConversion<VariantConstRef, ObjectRef> fromJson( |   static InvalidConversion<VariantConstRef, ObjectRef> fromJson( | ||||||
|   | |||||||
| @@ -108,8 +108,6 @@ class VariantData { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   const CollectionData *asObject() const { |   const CollectionData *asObject() const { | ||||||
|     if (isPointer())  // P+20 G+0 |  | ||||||
|       return _content.asPointer->asObject(); |  | ||||||
|     return const_cast<VariantData *>(this)->asObject(); |     return const_cast<VariantData *>(this)->asObject(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -321,7 +319,7 @@ class VariantData { | |||||||
|  |  | ||||||
|   template <typename TAdaptedString> |   template <typename TAdaptedString> | ||||||
|   VariantData *getMember(TAdaptedString key) const {  // P+4 G+0 |   VariantData *getMember(TAdaptedString key) const {  // P+4 G+0 | ||||||
|     const CollectionData *col = asObject(); |     const CollectionData *col = resolve()->asObject(); | ||||||
|     return col ? col->getMember(key) : 0; |     return col ? col->getMember(key) : 0; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ inline const CollectionData *variantAsArray(const VariantData *var) { | |||||||
| } | } | ||||||
|  |  | ||||||
| inline const CollectionData *variantAsObject(const VariantData *var) { | inline const CollectionData *variantAsObject(const VariantData *var) { | ||||||
|   return var != 0 ? var->asObject() : 0; |   return var != 0 ? var->resolve()->asObject() : 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| inline CollectionData *variantAsObject(VariantData *var) { | inline CollectionData *variantAsObject(VariantData *var) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user