| 1410 | } |
| 1411 | |
| 1412 | void 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 | } |
no test coverage detected