X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignment.java;h=f36872ee11724358c02b5a46b5ad4372271073a5;hb=a4fca83856b96df2fe8701bb5cc14c8d1d0a6b09;hp=cec2abcabe44a367208caa009544dc0ca7153ca9;hpb=77b038f418aea84563953ad94f839592317ea500;p=jalview.git diff --git a/src/jalview/datamodel/Alignment.java b/src/jalview/datamodel/Alignment.java index cec2abc..f36872e 100755 --- a/src/jalview/datamodel/Alignment.java +++ b/src/jalview/datamodel/Alignment.java @@ -108,6 +108,8 @@ public class Alignment public SequenceI[] getSequencesArray() { + if (sequences==null) + return null; SequenceI[] reply = new SequenceI[sequences.size()]; for (int i = 0; i < sequences.size(); i++) { @@ -188,7 +190,7 @@ public class Alignment public void finalize() { if(getDataset()!=null) - getDataset().finalize(); + getDataset().removeAlignmentRef(); dataset = null; sequences = null; @@ -197,6 +199,16 @@ public class Alignment hiddenSequences = null; } + /** + * decrement the alignmentRefs counter by one and call finalize if it goes to zero. + */ + private void removeAlignmentRef() + { + if (--alignmentRefs==0) + { + finalize(); + } + } /** * DOCUMENT ME! @@ -482,16 +494,15 @@ public class Alignment boolean swap=false; int tIndex = 0; - for (int i = 0; tIndex