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 ); unsetFlags( SegInvalidatedSource|SegInvalidatedTarget );
if (invalidatedFlags & SegInvalidatedSource) setFlags( SegInvalidatedTarget ); if (invalidatedFlags & SegInvalidatedSource) setFlags( SegInvalidatedTarget );
if (invalidatedFlags & SegInvalidatedTarget) setFlags( SegInvalidatedSource ); 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 SegWeakTerminal1: terminalFlag = SegWeakTerminal1; break;
case SegWeakTerminal2: terminalFlag = SegWeakTerminal2; break; case SegWeakTerminal2: terminalFlag = SegWeakTerminal2; break;
default: default:
cerr << Warning("%s has multiple terminal flag sets: %x." cerr << Warning("%s has multiple terminal flag sets:%s (%x)."
,getString(this).c_str() ,getString(this).c_str()
,_getStringFlags().c_str()
,_flags ,_flags
) << endl; ) << endl;
terminalFlag = SegWeakTerminal2; break; terminalFlag = SegWeakTerminal2; break;

View File

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