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) { | ||||
|     VariantData* data = getData(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( | ||||
|   | ||||
| @@ -108,8 +108,6 @@ class VariantData { | ||||
|   } | ||||
|  | ||||
|   const CollectionData *asObject() const { | ||||
|     if (isPointer())  // P+20 G+0 | ||||
|       return _content.asPointer->asObject(); | ||||
|     return const_cast<VariantData *>(this)->asObject(); | ||||
|   } | ||||
|  | ||||
| @@ -321,7 +319,7 @@ class VariantData { | ||||
|  | ||||
|   template <typename TAdaptedString> | ||||
|   VariantData *getMember(TAdaptedString key) const {  // P+4 G+0 | ||||
|     const CollectionData *col = asObject(); | ||||
|     const CollectionData *col = resolve()->asObject(); | ||||
|     return col ? col->getMember(key) : 0; | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -24,7 +24,7 @@ inline const CollectionData *variantAsArray(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) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user