You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by rm...@apache.org on 2014/08/15 19:37:11 UTC

git commit: FLEECE-13 avoid to create object when no value is needed in in memory parser, thanks Hendrik again for this patch

Repository: incubator-fleece
Updated Branches:
  refs/heads/master 4b51e8f7c -> 9305e2148


FLEECE-13 avoid to create object when no value is needed in in memory parser, thanks Hendrik again for this patch


Project: http://git-wip-us.apache.org/repos/asf/incubator-fleece/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-fleece/commit/9305e214
Tree: http://git-wip-us.apache.org/repos/asf/incubator-fleece/tree/9305e214
Diff: http://git-wip-us.apache.org/repos/asf/incubator-fleece/diff/9305e214

Branch: refs/heads/master
Commit: 9305e2148a2147d145dd834a4c5c98703160e110
Parents: 4b51e8f
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Fri Aug 15 19:36:58 2014 +0200
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Fri Aug 15 19:36:58 2014 +0200

----------------------------------------------------------------------
 .../apache/fleece/core/JsonInMemoryParser.java  | 23 ++++++++++++++------
 1 file changed, 16 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fleece/blob/9305e214/fleece-core/src/main/java/org/apache/fleece/core/JsonInMemoryParser.java
----------------------------------------------------------------------
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<Entry> events, final JsonObject object) {
-        events.add(new Entry(Event.START_OBJECT, null));
+        events.add(Entry.START_OBJECT_ENTRY);
         for (final Map.Entry<String, JsonValue> 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<Entry> 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<Entry> 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;