Normand Briere
2019-09-18 f9325048496d7cdbcad233f8a6b84c88e79adcc2
FileObject.java
....@@ -19,15 +19,37 @@
1919
2020 boolean HasBigData()
2121 {
22
- return false;
22
+ return filecontent != null;
2323 }
2424
2525 void ExtractBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable)
2626 {
27
+ Object3D o;
28
+
29
+ if (hashtable.containsKey(GetUUID()))
30
+ {
31
+ o = hashtable.get(GetUUID());
32
+
33
+ //Grafreed.Assert(this.filecontent == ((FileObject)o).filecontent);
34
+ }
35
+ else
36
+ {
37
+ o = new Object3D("copy of " + this.name);
38
+
39
+ hashtable.put(GetUUID(), o);
40
+ }
41
+
42
+ ExtractBigData(o);
2743 }
2844
2945 void RestoreBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable)
3046 {
47
+ if (!hashtable.containsKey(GetUUID()))
48
+ return;
49
+
50
+ Object3D o = hashtable.get(GetUUID());
51
+
52
+ RestoreBigData(o);
3153 }
3254
3355 boolean IsStatic()
....@@ -100,7 +122,8 @@
100122
101123 o.savefilecontent = this.filecontent;
102124
103
- // filecontent transient
125
+ // filecontent is transient
126
+ this.filecontent = null;
104127 }
105128
106129 void RestoreBigData(Object3D o)