mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Optimized size of JsonObjectBase indexer (-58 bytes)
This commit is contained in:
		| @@ -39,17 +39,22 @@ size_t JsonObjectBase::printTo(Print& p) const | ||||
|  | ||||
| JsonValue& JsonObjectBase::operator[](char const* key) | ||||
| { | ||||
|     for (int i = 0; i < count; ++i) | ||||
|     KeyValuePair* p = items; | ||||
|  | ||||
|     for (int i = count; i > 0; --i) | ||||
|     { | ||||
|         if (!strcmp(items[i].key, key)) | ||||
|         { | ||||
|             return items[i].value; | ||||
|         } | ||||
|         bool keyMatches = strcmp(p->key, key) == 0; | ||||
|  | ||||
|         if (keyMatches) | ||||
|             return p->value; | ||||
|  | ||||
|         p++; | ||||
|     } | ||||
|  | ||||
|     if (count >= capacity)         | ||||
|         return JsonValue::null(); | ||||
|      | ||||
|     items[count].key = key; | ||||
|     return items[count++].value; | ||||
|     count++; | ||||
|     p->key = key; | ||||
|     return p->value; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user