From 3e5c2d344e04e0adb6a210c5c6302bfbfd8af102 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Fri, 06 Sep 2019 20:25:39 -0400
Subject: [PATCH] Fix file object.

---
 FileObject.java |   27 +++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/FileObject.java b/FileObject.java
index b87554b..e899a71 100644
--- a/FileObject.java
+++ b/FileObject.java
@@ -19,15 +19,37 @@
     
     boolean HasBigData()
     {
-        return false;
+        return filecontent != null;
     }
     
     void ExtractBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable)
     {
+        Object3D o;
+        
+        if (hashtable.containsKey(GetUUID()))
+        {
+            o = hashtable.get(GetUUID());
+
+            //Grafreed.Assert(this.filecontent == ((FileObject)o).filecontent);
+        }
+        else
+        {
+            o = new Object3D("copy of " + this.name);
+
+            hashtable.put(GetUUID(), o);
+        }
+
+        ExtractBigData(o);
     }
     
     void RestoreBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable)
     {
+        if (!hashtable.containsKey(GetUUID()))
+            return;
+
+        Object3D o = hashtable.get(GetUUID());
+
+        RestoreBigData(o);
     }
     
     boolean IsStatic()
@@ -100,7 +122,8 @@
         
         o.savefilecontent = this.filecontent;
         
-        // filecontent transient
+        // filecontent is transient
+        this.filecontent = null;
     }
 
     void RestoreBigData(Object3D o)

--
Gitblit v1.6.2