You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by db...@apache.org on 2016/09/30 04:46:24 UTC

cassandra git commit: reduce list allocations/resizes in loop

Repository: cassandra
Updated Branches:
  refs/heads/trunk 1be5cc0db -> 56e01770b


reduce list allocations/resizes in loop


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/56e01770
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/56e01770
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/56e01770

Branch: refs/heads/trunk
Commit: 56e01770bf556f3cfde84539da880235243cabef
Parents: 1be5cc0
Author: Dave Brosius <db...@mebigfatguy.com>
Authored: Fri Sep 30 00:46:06 2016 -0400
Committer: Dave Brosius <db...@mebigfatguy.com>
Committed: Fri Sep 30 00:46:06 2016 -0400

----------------------------------------------------------------------
 .../index/sasi/utils/RangeIntersectionIterator.java         | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/56e01770/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java b/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java
index 02d9527..7babf04 100644
--- a/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java
+++ b/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java
@@ -124,6 +124,8 @@ public class RangeIntersectionIterator
 
         protected D computeNext()
         {
+            List<RangeIterator<K, D>> processed = null;
+
             while (!ranges.isEmpty())
             {
                 RangeIterator<K, D> head = ranges.poll();
@@ -139,7 +141,8 @@ public class RangeIntersectionIterator
                     return endOfData();
                 }
 
-                List<RangeIterator<K, D>> processed = new ArrayList<>();
+                if (processed == null)
+                    processed = new ArrayList<>();
 
                 boolean intersectsAll = true, exhausted = false;
                 while (!ranges.isEmpty())
@@ -180,8 +183,8 @@ public class RangeIntersectionIterator
 
                 ranges.add(head);
 
-                for (RangeIterator<K, D> range : processed)
-                    ranges.add(range);
+                ranges.addAll(processed);
+                processed.clear();
 
                 if (exhausted)
                     return endOfData();