Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-1701 f43d1e2dd -> 601f9c306
being smarter about the collection sizes on object creation. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/601f9c30 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/601f9c30 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/601f9c30 Branch: refs/heads/TINKERPOP-1701 Commit: 601f9c3062e78bec8e23d695a75cedb1e3381229 Parents: f43d1e2 Author: Marko A. Rodriguez <[email protected]> Authored: Wed Jun 28 09:02:49 2017 -0600 Committer: Marko A. Rodriguez <[email protected]> Committed: Wed Jun 28 09:02:49 2017 -0600 ---------------------------------------------------------------------- .../gremlin/structure/util/detached/DetachedFactory.java | 11 ++++++++--- .../structure/util/reference/ReferenceFactory.java | 11 ++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/601f9c30/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java index bd69b87..d353e51 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java @@ -83,7 +83,7 @@ public class DetachedFactory { } else if (object instanceof Path) { return (D) DetachedFactory.detach((Path) object, withProperties); } else if (object instanceof List) { - final List list = new ArrayList(); + final List list = new ArrayList(((List) object).size()); for (final Object item : (List) object) { list.add(DetachedFactory.detach(item, withProperties)); } @@ -95,13 +95,18 @@ public class DetachedFactory { } return (D) set; } else if (object instanceof Set) { - final Set set = object instanceof LinkedHashSet ? new LinkedHashSet() : new HashSet(); + final Set set = object instanceof LinkedHashSet ? + new LinkedHashSet(((Set) object).size()) : + new HashSet(((Set) object).size()); for (final Object item : (Set) object) { set.add(DetachedFactory.detach(item, withProperties)); } return (D) set; } else if (object instanceof Map) { - final Map map = object instanceof Tree ? new Tree() : object instanceof LinkedHashMap ? new LinkedHashMap() : new HashMap(); + final Map map = object instanceof Tree ? new Tree() : + object instanceof LinkedHashMap ? + new LinkedHashMap(((Map) object).size()) : + new HashMap(((Map) object).size()); for (final Map.Entry<Object, Object> entry : ((Map<Object, Object>) object).entrySet()) { map.put(DetachedFactory.detach(entry.getKey(), withProperties), DetachedFactory.detach(entry.getValue(), withProperties)); } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/601f9c30/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java index a703ada..7e5ad56 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceFactory.java @@ -83,7 +83,7 @@ public class ReferenceFactory { } else if (object instanceof Path) { return (D) ReferenceFactory.detach((Path) object); } else if (object instanceof List) { - final List list = new ArrayList(); + final List list = new ArrayList(((List) object).size()); for (final Object item : (List) object) { list.add(ReferenceFactory.detach(item)); } @@ -95,13 +95,18 @@ public class ReferenceFactory { } return (D) set; } else if (object instanceof Set) { - final Set set = object instanceof LinkedHashSet ? new LinkedHashSet() : new HashSet(); + final Set set = object instanceof LinkedHashSet ? + new LinkedHashSet(((Set) object).size()) : + new HashSet(((Set) object).size()); for (final Object item : (Set) object) { set.add(ReferenceFactory.detach(item)); } return (D) set; } else if (object instanceof Map) { - final Map map = object instanceof Tree ? new Tree() : object instanceof LinkedHashMap ? new LinkedHashMap() : new HashMap(); + final Map map = object instanceof Tree ? new Tree() : + object instanceof LinkedHashMap ? + new LinkedHashMap(((Map) object).size()) : + new HashMap(((Map) object).size()); for (final Map.Entry<Object, Object> entry : ((Map<Object, Object>) object).entrySet()) { map.put(ReferenceFactory.detach(entry.getKey()), ReferenceFactory.detach(entry.getValue())); }
