git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-3210 Improvements to eclipse detection. New src tree and SwingJS updated from...
[jalview.git]
/
src
/
jalview
/
datamodel
/
HiddenColumns.java
diff --git
a/src/jalview/datamodel/HiddenColumns.java
b/src/jalview/datamodel/HiddenColumns.java
index
2d43f02
..
458bde7
100644
(file)
--- a/
src/jalview/datamodel/HiddenColumns.java
+++ b/
src/jalview/datamodel/HiddenColumns.java
@@
-86,6
+86,20
@@
public class HiddenColumns
*/
private List<int[]> hiddenColumns = new ArrayList<>();
*/
private List<int[]> hiddenColumns = new ArrayList<>();
+ private BitSet hiddenBitSet;
+
+ public BitSet getBitset()
+ {
+ if (hiddenBitSet == null)
+ {
+ hiddenBitSet = new BitSet();
+ for (int[] range : hiddenColumns)
+ {
+ hiddenBitSet.set(range[0], range[1] + 1);
+ }
+ }
+ return hiddenBitSet;
+ }
/**
* Constructor
*/
/**
* Constructor
*/
@@
-213,6
+227,7
@@
public class HiddenColumns
prevHiddenCount);
} finally
{
prevHiddenCount);
} finally
{
+ hiddenBitSet = null;
LOCK.writeLock().unlock();
}
}
LOCK.writeLock().unlock();
}
}
@@
-264,6
+279,7
@@
public class HiddenColumns
insertRangeAtOverlap(i, start, end, region);
added = true;
}
insertRangeAtOverlap(i, start, end, region);
added = true;
}
+ hiddenBitSet = null;
return added;
}
return added;
}
@@
-310,6
+326,7
@@
public class HiddenColumns
}
numColumns += region[1] - oldend;
hiddenColumns.subList(i + 1, endi + 1).clear();
}
numColumns += region[1] - oldend;
hiddenColumns.subList(i + 1, endi + 1).clear();
+ hiddenBitSet = null;
}
/**
}
/**
@@
-330,6
+347,7
@@
public class HiddenColumns
} finally
{
} finally
{
+ hiddenBitSet = null;
LOCK.writeLock().unlock();
}
}
LOCK.writeLock().unlock();
}
}
@@
-356,6
+374,7
@@
public class HiddenColumns
} finally
{
} finally
{
+ hiddenBitSet = null;
LOCK.writeLock().unlock();
}
}
LOCK.writeLock().unlock();
}
}
@@
-399,6
+418,7
@@
public class HiddenColumns
}
} finally
{
}
} finally
{
+ hiddenBitSet = null;
LOCK.writeLock().unlock();
}
}
LOCK.writeLock().unlock();
}
}
@@
-620,6
+640,7
@@
public class HiddenColumns
} finally
{
} finally
{
+ hiddenBitSet = null;
LOCK.readLock().unlock();
}
}
LOCK.readLock().unlock();
}
}
@@
-798,7
+819,7
@@
public class HiddenColumns
for (int firstSet = tohide
.nextSetBit(start), lastSet = start; firstSet >= start
&& lastSet <= end; firstSet = tohide
for (int firstSet = tohide
.nextSetBit(start), lastSet = start; firstSet >= start
&& lastSet <= end; firstSet = tohide
- .nextSetBit(lastSet))
+ .nextSetBit(lastSet))
{
lastSet = tohide.nextClearBit(firstSet);
if (lastSet <= end)
{
lastSet = tohide.nextClearBit(firstSet);
if (lastSet <= end)
@@
-813,6
+834,7
@@
public class HiddenColumns
cursor = new HiddenColumnsCursor(hiddenColumns);
} finally
{
cursor = new HiddenColumnsCursor(hiddenColumns);
} finally
{
+ hiddenBitSet = null;
LOCK.writeLock().unlock();
}
}
LOCK.writeLock().unlock();
}
}
@@
-894,6
+916,7
@@
public class HiddenColumns
}
} finally
{
}
} finally
{
+ hiddenBitSet = null;
LOCK.writeLock().unlock();
}
}
LOCK.writeLock().unlock();
}
}
@@
-909,16
+932,12
@@
public class HiddenColumns
{
LOCK.writeLock().lock();
{
LOCK.writeLock().lock();
- BitSet hiddenBitSet = new BitSet();
- for (int[] range : hiddenColumns)
- {
- hiddenBitSet.set(range[0], range[1] + 1);
- }
- hiddenBitSet.andNot(updates);
+ getBitset().andNot(updates);
hiddenColumns.clear();
hideColumns(hiddenBitSet);
} finally
{
hiddenColumns.clear();
hideColumns(hiddenBitSet);
} finally
{
+ hiddenBitSet = null;
LOCK.writeLock().unlock();
}
}
LOCK.writeLock().unlock();
}
}