From 47497bfc2e0e7de52d160ba97c832fa59e205d3c Mon Sep 17 00:00:00 2001
From: Vojtech Moravec <vojtech.moravec.st@vsb.cz>
Date: Sat, 15 Feb 2020 13:17:58 +0100
Subject: [PATCH] Use only single copy call.

---
 .../quantization/vector/LBGVectorQuantizer.java        | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/main/java/azgracompress/quantization/vector/LBGVectorQuantizer.java b/src/main/java/azgracompress/quantization/vector/LBGVectorQuantizer.java
index 6ccf86e..283947c 100644
--- a/src/main/java/azgracompress/quantization/vector/LBGVectorQuantizer.java
+++ b/src/main/java/azgracompress/quantization/vector/LBGVectorQuantizer.java
@@ -21,15 +21,17 @@ public class LBGVectorQuantizer {
     private double _mse = 0.0;
 
     public LBGVectorQuantizer(final int[][] vectors, final int codebookSize, final int workerCount) {
-
         assert (vectors.length > 0) : "No training vectors provided";
 
+        this.vectorSize = vectors[0].length;
+        final int[][] vectorsCopy = new int[vectors.length][vectorSize];
+        System.arraycopy(vectors, 0, vectorsCopy, 0, vectors.length);
+
         this.trainingVectors = new TrainingVector[vectors.length];
-        for (int i = 0; i < vectors.length; i++) {
-            trainingVectors[i] = new TrainingVector(Arrays.copyOf(vectors[i], vectors[i].length));
+        for (int i = 0; i < vectorsCopy.length; i++) {
+            trainingVectors[i] = new TrainingVector(vectorsCopy[i]);
         }
 
-        this.vectorSize = vectors[0].length;
         this.codebookSize = codebookSize;
         this.workerCount = workerCount;
     }
-- 
GitLab