| .. | .. |
|---|
| 298 | 298 | |
|---|
| 299 | 299 | if (copy.versions == null) |
|---|
| 300 | 300 | { |
|---|
| 301 | | - copy.versions = new byte[100][]; |
|---|
| 301 | + copy.versions = new Object3D[100]; |
|---|
| 302 | 302 | copy.versionindex = -1; |
|---|
| 303 | 303 | } |
|---|
| 304 | 304 | |
|---|
| .. | .. |
|---|
| 317 | 317 | |
|---|
| 318 | 318 | if (copy.versions == null) |
|---|
| 319 | 319 | { |
|---|
| 320 | | - copy.versions = new byte[100][]; |
|---|
| 320 | + copy.versions = new Object3D[100]; |
|---|
| 321 | 321 | copy.versionindex = -1; |
|---|
| 322 | 322 | } |
|---|
| 323 | 323 | |
|---|
| .. | .. |
|---|
| 850 | 850 | frame.validate(); |
|---|
| 851 | 851 | } |
|---|
| 852 | 852 | |
|---|
| 853 | | - private byte[] CompressCopy() |
|---|
| 853 | + private Object3D CompressCopy() |
|---|
| 854 | 854 | { |
|---|
| 855 | 855 | boolean temp = CameraPane.SWITCH; |
|---|
| 856 | 856 | CameraPane.SWITCH = false; |
|---|
| .. | .. |
|---|
| 858 | 858 | copy.ExtractBigData(versiontable); |
|---|
| 859 | 859 | // if (copy == client) |
|---|
| 860 | 860 | |
|---|
| 861 | | - byte[] versions[] = copy.versions; |
|---|
| 861 | + Object3D versions[] = copy.versions; |
|---|
| 862 | 862 | copy.versions = null; |
|---|
| 863 | 863 | |
|---|
| 864 | | - byte[] compress = Compress(copy); |
|---|
| 864 | + //byte[] compress = Compress(copy); |
|---|
| 865 | + Object3D compress = (Object3D)Grafreed.clone(copy); |
|---|
| 865 | 866 | |
|---|
| 866 | 867 | copy.versions = versions; |
|---|
| 867 | 868 | |
|---|
| .. | .. |
|---|
| 3565 | 3566 | |
|---|
| 3566 | 3567 | static public byte[] Compress(Object3D o) |
|---|
| 3567 | 3568 | { |
|---|
| 3569 | + // Slower to actually compress. |
|---|
| 3568 | 3570 | try |
|---|
| 3569 | 3571 | { |
|---|
| 3570 | 3572 | ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
|---|
| .. | .. |
|---|
| 3692 | 3694 | |
|---|
| 3693 | 3695 | cRadio tab = GetCurrentTab(); |
|---|
| 3694 | 3696 | |
|---|
| 3695 | | - byte[] compress = CompressCopy(); // Saved version. No need for "Replace". |
|---|
| 3697 | + Object3D compress = CompressCopy(); // Saved version. No need for "Replace". |
|---|
| 3696 | 3698 | |
|---|
| 3697 | 3699 | boolean thesame = false; |
|---|
| 3698 | 3700 | |
|---|
| 3699 | | - // Quick heuristic using length. Works only when stream is compressed. |
|---|
| 3700 | | - if (copy.versionindex > 0 && copy.versions[copy.versionindex-1] != null && Equal(compress, copy.versions[copy.versionindex-1])) |
|---|
| 3701 | | - { |
|---|
| 3702 | | - thesame = true; |
|---|
| 3703 | | - } |
|---|
| 3701 | +// if (copy.versionindex > 0 && copy.versions[copy.versionindex-1] != null && Equal(compress, copy.versions[copy.versionindex-1])) |
|---|
| 3702 | +// { |
|---|
| 3703 | +// thesame = true; |
|---|
| 3704 | +// } |
|---|
| 3704 | 3705 | |
|---|
| 3705 | 3706 | //EditorFrame.m_MainFrame.requestFocusInWindow(); |
|---|
| 3706 | 3707 | if (!thesame) |
|---|
| .. | .. |
|---|
| 3860 | 3861 | |
|---|
| 3861 | 3862 | copy.versionindex -= 1; |
|---|
| 3862 | 3863 | |
|---|
| 3863 | | - CopyChanged((Object3D)Uncompress(copy.versions[copy.versionindex])); |
|---|
| 3864 | + CopyChanged((Object3D)copy.versions[copy.versionindex]); |
|---|
| 3864 | 3865 | |
|---|
| 3865 | 3866 | return true; |
|---|
| 3866 | 3867 | } |
|---|
| .. | .. |
|---|
| 3877 | 3878 | return false; |
|---|
| 3878 | 3879 | } |
|---|
| 3879 | 3880 | |
|---|
| 3880 | | - CopyChanged((Object3D)Uncompress(copy.versions[copy.versionindex])); |
|---|
| 3881 | + //CopyChanged((Object3D)Uncompress(copy.versions[copy.versionindex])); |
|---|
| 3882 | + CopyChanged(copy.versions[copy.versionindex]); |
|---|
| 3881 | 3883 | |
|---|
| 3882 | 3884 | return true; |
|---|
| 3883 | 3885 | } |
|---|
| .. | .. |
|---|
| 3914 | 3916 | |
|---|
| 3915 | 3917 | copy.versionindex += 1; |
|---|
| 3916 | 3918 | |
|---|
| 3917 | | - CopyChanged((Object3D)Uncompress(copy.versions[copy.versionindex])); |
|---|
| 3919 | + CopyChanged(copy.versions[copy.versionindex]); |
|---|
| 3918 | 3920 | |
|---|
| 3919 | 3921 | //if (!tab.user[tab.versionindex]) |
|---|
| 3920 | 3922 | // tab.graphs[tab.versionindex] = null; |
|---|
| .. | .. |
|---|
| 4227 | 4229 | |
|---|
| 4228 | 4230 | if (copy.versions[version] != null) |
|---|
| 4229 | 4231 | { |
|---|
| 4230 | | - CopyChanged((Object3D)Uncompress(copy.versions[copy.versionindex = version])); |
|---|
| 4232 | + CopyChanged(copy.versions[copy.versionindex = version]); |
|---|
| 4231 | 4233 | } |
|---|
| 4232 | 4234 | |
|---|
| 4233 | 4235 | return; |
|---|
| .. | .. |
|---|
| 4962 | 4964 | |
|---|
| 4963 | 4965 | if (copy.versions == null) |
|---|
| 4964 | 4966 | { |
|---|
| 4965 | | - copy.versions = new byte[100][]; |
|---|
| 4967 | + copy.versions = new Object3D[100]; |
|---|
| 4966 | 4968 | copy.versionindex = -1; |
|---|
| 4967 | 4969 | } |
|---|
| 4968 | 4970 | |
|---|