Forgot to switch terminal flags when orienting AutoSegments (again!).

This commit is contained in:
Jean-Paul Chaput 2016-08-28 16:12:05 +02:00
parent e2316578f2
commit 22bf92af2c
3 changed files with 12 additions and 1 deletions

View File

@ -410,6 +410,11 @@ namespace Anabatic {
unsetFlags( SegInvalidatedSource|SegInvalidatedTarget );
if (invalidatedFlags & SegInvalidatedSource) setFlags( SegInvalidatedTarget );
if (invalidatedFlags & SegInvalidatedTarget) setFlags( SegInvalidatedSource );
unsigned int terminalFlags = _flags & SegStrongTerminal;
unsetFlags( SegStrongTerminal );
if (terminalFlags & SegSourceTerminal) setFlags( SegTargetTerminal );
if (terminalFlags & SegTargetTerminal) setFlags( SegSourceTerminal );
}
}

View File

@ -886,8 +886,9 @@ namespace Anabatic {
case SegWeakTerminal1: terminalFlag = SegWeakTerminal1; break;
case SegWeakTerminal2: terminalFlag = SegWeakTerminal2; break;
default:
cerr << Warning("%s has multiple terminal flag sets: %x."
cerr << Warning("%s has multiple terminal flag sets:%s (%x)."
,getString(this).c_str()
,_getStringFlags().c_str()
,_flags
) << endl;
terminalFlag = SegWeakTerminal2; break;

View File

@ -347,6 +347,11 @@ namespace Anabatic {
unsetFlags( SegInvalidatedSource|SegInvalidatedTarget );
if (invalidatedFlags & SegInvalidatedSource) setFlags( SegInvalidatedTarget );
if (invalidatedFlags & SegInvalidatedTarget) setFlags( SegInvalidatedSource );
unsigned int terminalFlags = _flags & SegStrongTerminal;
unsetFlags( SegStrongTerminal );
if (terminalFlags & SegSourceTerminal) setFlags( SegTargetTerminal );
if (terminalFlags & SegTargetTerminal) setFlags( SegSourceTerminal );
}
}