-
Type: Bug
-
Status: Closed
-
Priority: Critical
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 1.9.2
-
Component/s: Basic-Nucl, Basic-Protein
-
Labels:None
-
Affect Type:Userdefined
LRegionsSelection::addRegion() fails with assertion "assert(r.len > 0);" when user selects annotation in sync'ed multisequence view and the annotation is located outside of other sequence bounds.
The problem resides in ADVSyncViewManager::sl_onSelectionChanged()
...
foreach(LRegion r, added) {
r.startPos -= offset;
if (r.startPos < 0)
if (r.endPos() > w->getSequenceLen())
{ r.len = w->getSequenceLen() - r.startPos; } selection->addRegion(r);
}
The cycle above assumes w->getSequenceLen() > r.startPos; which does not hold true when sequences have very different size.
Steps To Reproduce
1) Open 2 following sequences in one view:
trunk\data\samples\Genbank\murine.gb
trunk\test_common_data\edit_sequence\test.gb
2) Press "Lock scales" button on the ADV toolbar
3) Select any CDS feature of the murine.gb