MCPcopy Create free account
hub / github.com/SoarGroup/Soar / InvalidateOutputLink

Method InvalidateOutputLink

Core/ClientSML/src/sml_ClientWorkingMemory.cpp:1412–1441  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1410}
1411
1412void WorkingMemory::InvalidateOutputLink()
1413{
1414 //std::cout << "InvalidateOutputLink " << m_OutputLink << std::endl;
1415
1416 if (m_OutputLink)
1417 {
1418 // clear delta list
1419 m_OutputDeltaList.Clear(true, true, true);
1420
1421 m_OutputLink->GetSymbol()->DeleteAllChildren() ;
1422
1423 // clean up the IdSymbolMap table. See Bug #1094
1424 IdSymbolMapIter i = m_IdSymbolMap.find(m_OutputLink->GetValueAsString());
1425 if (i != m_IdSymbolMap.end())
1426 {
1427 IdentifierSymbol* out_sym = i->second;
1428 m_IdSymbolMap.clear();
1429 //std::cout << "m_IdSymbolMap cleared" << std::endl;
1430 RecordSymbolInMap(out_sym);
1431 }
1432 else
1433 {
1434 m_IdSymbolMap.clear();
1435 //std::cout << "m_IdSymbolMap cleared" << std::endl;
1436 }
1437
1438 delete m_OutputLink;
1439 m_OutputLink = NULL;
1440 }
1441}

Callers 1

ProcessIncomingSMLMethod · 0.80

Calls 6

DeleteAllChildrenMethod · 0.80
endMethod · 0.80
ClearMethod · 0.45
findMethod · 0.45
GetValueAsStringMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected