From a6d8e4dda57902e7841efed0cd2eddc2d508a1a4 Mon Sep 17 00:00:00 2001 From: salyh Date: Fri, 15 Aug 2014 16:29:31 +0200 Subject: [PATCH 2/2] FLEECE-13: create fewer entry objects in JsonInMemoryParser.java Signed-off-by: salyh --- .../org/apache/fleece/core/JsonInMemoryParser.java | 23 +++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/fleece-core/src/main/java/org/apache/fleece/core/JsonInMemoryParser.java b/fleece-core/src/main/java/org/apache/fleece/core/JsonInMemoryParser.java index 7a12fec..038f3ae 100644 --- a/fleece-core/src/main/java/org/apache/fleece/core/JsonInMemoryParser.java +++ b/fleece-core/src/main/java/org/apache/fleece/core/JsonInMemoryParser.java @@ -51,21 +51,21 @@ class JsonInMemoryParser implements JsonParser { } private static void generateObjectEvents(final List events, final JsonObject object) { - events.add(new Entry(Event.START_OBJECT, null)); + events.add(Entry.START_OBJECT_ENTRY); for (final Map.Entry entry : object.entrySet()) { events.add(new Entry(Event.KEY_NAME, new JsonStringImpl(entry.getKey()))); final JsonValue value = entry.getValue(); addValueEvents(events, value); } - events.add(new Entry(Event.END_OBJECT, null)); + events.add(Entry.END_OBJECT_ENTRY); } private static void generateArrayEvents(final List events, final JsonArray array) { - events.add(new Entry(Event.START_ARRAY, null)); + events.add(Entry.START_ARRAY_ENTRY); for (final JsonValue value : array) { addValueEvents(events, value); } - events.add(new Entry(Event.END_ARRAY, null)); + events.add(Entry.END_ARRAY_ENTRY); } private static void addValueEvents(final List events, final JsonValue value) { @@ -84,13 +84,13 @@ class JsonInMemoryParser implements JsonParser { events.add(new Entry(Event.VALUE_STRING, value)); break; case FALSE: - events.add(new Entry(Event.VALUE_FALSE, null)); + events.add(Entry.VALUE_FALSE_ENTRY); break; case NULL: - events.add(new Entry(Event.VALUE_NULL, null)); + events.add(Entry.VALUE_NULL_ENTRY); break; case TRUE: - events.add(new Entry(Event.VALUE_TRUE, null)); + events.add(Entry.VALUE_TRUE_ENTRY); break; default: throw new IllegalArgumentException(value + " not supported"); @@ -160,6 +160,15 @@ class JsonInMemoryParser implements JsonParser { } private static class Entry { + + static final Entry VALUE_FALSE_ENTRY = new Entry(Event.VALUE_FALSE, null); + static final Entry VALUE_TRUE_ENTRY = new Entry(Event.VALUE_TRUE, null); + static final Entry VALUE_NULL_ENTRY = new Entry(Event.VALUE_NULL, null); + static final Entry START_OBJECT_ENTRY = new Entry(Event.START_OBJECT, null); + static final Entry END_OBJECT_ENTRY = new Entry(Event.END_OBJECT, null); + static final Entry START_ARRAY_ENTRY = new Entry(Event.START_ARRAY, null); + static final Entry END_ARRAY_ENTRY = new Entry(Event.END_ARRAY, null); + final Event event; final JsonValue value; -- 1.8.5.2 (Apple Git-48)