You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2019/06/28 02:47:59 UTC

[incubator-iotdb] branch feature_async_close_tsfile updated: abstract clone in TVList

This is an automated email from the ASF dual-hosted git repository.

jiangtian pushed a commit to branch feature_async_close_tsfile
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/feature_async_close_tsfile by this push:
     new e3e856c  abstract clone in TVList
e3e856c is described below

commit e3e856c15f3e952914204aa35da1efb34f1d46c8
Author: 江天 <jt...@163.com>
AuthorDate: Fri Jun 28 10:45:50 2019 +0800

    abstract clone in TVList
---
 .../apache/iotdb/db/utils/datastructure/DoubleTVList.java  | 12 ++----------
 .../apache/iotdb/db/utils/datastructure/LongTVList.java    | 10 +---------
 .../org/apache/iotdb/db/utils/datastructure/TVList.java    | 14 ++++++++++++++
 3 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java
index d8ae8ec..f60cf0e 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/DoubleTVList.java
@@ -71,26 +71,18 @@ public class DoubleTVList extends TVList {
   @Override
   public DoubleTVList clone() {
     DoubleTVList cloneList = new DoubleTVList();
+    cloneAs(cloneList);
     if (!sorted) {
       for (double[] valueArray : values) {
         cloneList.values.add(cloneValue(valueArray));
       }
-      for (long[] timestampArray : timestamps) {
-        cloneList.timestamps.add(cloneTime(timestampArray));
-      }
     } else {
-      cloneList.sortedTimestamps = new long[size];
       cloneList.sortedValues = new double[size];
-      System.arraycopy(sortedTimestamps, 0, cloneList.sortedTimestamps, 0, size);
       System.arraycopy(sortedValues, 0, cloneList.sortedValues, 0, size);
     }
-    cloneList.size = size;
-    cloneList.sorted = sorted;
-    cloneList.limit = limit;
-
     return cloneList;
   }
-
+  
   private double[] cloneValue(double[] array) {
     double[] cloneArray = new double[array.length];
     System.arraycopy(array, 0, cloneArray, 0, array.length);
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/LongTVList.java b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/LongTVList.java
index e278d06..b0741e4 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/LongTVList.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/LongTVList.java
@@ -71,23 +71,15 @@ public class LongTVList extends TVList {
   @Override
   public LongTVList clone() {
     LongTVList cloneList = new LongTVList();
+    cloneAs(cloneList);
     if (!sorted) {
       for (long[] valueArray : values) {
         cloneList.values.add(cloneValue(valueArray));
       }
-      for (long[] timestampArray : timestamps) {
-        cloneList.timestamps.add(cloneTime(timestampArray));
-      }
     } else {
-      cloneList.sortedTimestamps = new long[size];
       cloneList.sortedValues = new long[size];
-      System.arraycopy(sortedTimestamps, 0, cloneList.sortedTimestamps, 0, size);
       System.arraycopy(sortedValues, 0, cloneList.sortedValues, 0, size);
     }
-    cloneList.size = size;
-    cloneList.sorted = sorted;
-    cloneList.limit = limit;
-
     return cloneList;
   }
 
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java
index 782b062..cb67aff 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/utils/datastructure/TVList.java
@@ -125,6 +125,20 @@ public abstract class TVList {
 
   public abstract TVList clone();
 
+  protected void cloneAs(TVList cloneList) {
+    if (!sorted) {
+      for (long[] timestampArray : timestamps) {
+        cloneList.timestamps.add(cloneTime(timestampArray));
+      }
+    } else {
+      cloneList.sortedTimestamps = new long[size];
+      System.arraycopy(sortedTimestamps, 0, cloneList.sortedTimestamps, 0, size);
+    }
+    cloneList.size = size;
+    cloneList.sorted = sorted;
+    cloneList.limit = limit;
+  }
+
   public void reset() {
     size = 0;
     limit = 0;