From c49ad213b600f844e9070cb09390c3e6d3d13db4 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Thu, 01 Aug 2019 01:23:12 -0400
Subject: [PATCH] Avoid byte[] for versions.
---
ObjEditor.java | 34 ++++++++++++++++++----------------
GroupEditor.java | 4 ++--
Object3D.java | 2 +-
3 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/GroupEditor.java b/GroupEditor.java
index 7ec82e1..e5c5470 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -358,7 +358,7 @@
if (copy.versions == null)
{
- copy.versions = new byte[100][];
+ copy.versions = new Object3D[100];
copy.versionindex = -1;
}
@@ -385,7 +385,7 @@
if (copy.versions == null)
{
- copy.versions = new byte[100][];
+ copy.versions = new Object3D[100];
copy.versionindex = -1;
Save(true);
diff --git a/ObjEditor.java b/ObjEditor.java
index 3b8dd95..963fa06 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -298,7 +298,7 @@
if (copy.versions == null)
{
- copy.versions = new byte[100][];
+ copy.versions = new Object3D[100];
copy.versionindex = -1;
}
@@ -317,7 +317,7 @@
if (copy.versions == null)
{
- copy.versions = new byte[100][];
+ copy.versions = new Object3D[100];
copy.versionindex = -1;
}
@@ -850,7 +850,7 @@
frame.validate();
}
- private byte[] CompressCopy()
+ private Object3D CompressCopy()
{
boolean temp = CameraPane.SWITCH;
CameraPane.SWITCH = false;
@@ -858,10 +858,11 @@
copy.ExtractBigData(versiontable);
// if (copy == client)
- byte[] versions[] = copy.versions;
+ Object3D versions[] = copy.versions;
copy.versions = null;
- byte[] compress = Compress(copy);
+ //byte[] compress = Compress(copy);
+ Object3D compress = (Object3D)Grafreed.clone(copy);
copy.versions = versions;
@@ -3565,6 +3566,7 @@
static public byte[] Compress(Object3D o)
{
+ // Slower to actually compress.
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -3692,15 +3694,14 @@
cRadio tab = GetCurrentTab();
- byte[] compress = CompressCopy(); // Saved version. No need for "Replace".
+ Object3D compress = CompressCopy(); // Saved version. No need for "Replace".
boolean thesame = false;
- // Quick heuristic using length. Works only when stream is compressed.
- if (copy.versionindex > 0 && copy.versions[copy.versionindex-1] != null && Equal(compress, copy.versions[copy.versionindex-1]))
- {
- thesame = true;
- }
+// if (copy.versionindex > 0 && copy.versions[copy.versionindex-1] != null && Equal(compress, copy.versions[copy.versionindex-1]))
+// {
+// thesame = true;
+// }
//EditorFrame.m_MainFrame.requestFocusInWindow();
if (!thesame)
@@ -3860,7 +3861,7 @@
copy.versionindex -= 1;
- CopyChanged((Object3D)Uncompress(copy.versions[copy.versionindex]));
+ CopyChanged((Object3D)copy.versions[copy.versionindex]);
return true;
}
@@ -3877,7 +3878,8 @@
return false;
}
- CopyChanged((Object3D)Uncompress(copy.versions[copy.versionindex]));
+ //CopyChanged((Object3D)Uncompress(copy.versions[copy.versionindex]));
+ CopyChanged(copy.versions[copy.versionindex]);
return true;
}
@@ -3914,7 +3916,7 @@
copy.versionindex += 1;
- CopyChanged((Object3D)Uncompress(copy.versions[copy.versionindex]));
+ CopyChanged(copy.versions[copy.versionindex]);
//if (!tab.user[tab.versionindex])
// tab.graphs[tab.versionindex] = null;
@@ -4227,7 +4229,7 @@
if (copy.versions[version] != null)
{
- CopyChanged((Object3D)Uncompress(copy.versions[copy.versionindex = version]));
+ CopyChanged(copy.versions[copy.versionindex = version]);
}
return;
@@ -4962,7 +4964,7 @@
if (copy.versions == null)
{
- copy.versions = new byte[100][];
+ copy.versions = new Object3D[100];
copy.versionindex = -1;
}
diff --git a/Object3D.java b/Object3D.java
index f760249..a984e30 100644
--- a/Object3D.java
+++ b/Object3D.java
@@ -32,7 +32,7 @@
String skyboxname;
String skyboxext;
- byte[] versions[];
+ Object3D versions[];
int versionindex = -1;
ScriptNode scriptnode;
--
Gitblit v1.6.2