From 8243e05863f05772b1438c291d5f2fa79a69a8b7 Mon Sep 17 00:00:00 2001 From: jhurst Date: Tue, 19 May 2009 00:12:55 +0000 Subject: duh --- src/Dict.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'src/Dict.cpp') diff --git a/src/Dict.cpp b/src/Dict.cpp index aaef990..0034110 100755 --- a/src/Dict.cpp +++ b/src/Dict.cpp @@ -133,7 +133,6 @@ ASDCP::DefaultSMPTEDict() return s_SMPTEDict; } - //------------------------------------------------------------------------------------------ // @@ -176,16 +175,18 @@ ASDCP::Dictionary::AddEntry(const MDDEntry& Entry, ui32_t index) bool ASDCP::Dictionary::DeleteEntry(ui32_t index) { - // is this index already there? std::map::iterator rii = m_md_rev_lookup.find(index); - if ( rii != m_md_rev_lookup.end() ) { std::map::iterator ii = m_md_lookup.find(rii->second); assert(ii != m_md_lookup.end()); - char buf[64]; - Kumu::DefaultLogSink().Warn("Deleting %s: %s\n", ii->first.EncodeString(buf, 64), m_MDD_Table[index].name); + MDDEntry NilEntry; + memset(&NilEntry, 0, sizeof(NilEntry)); + + m_md_lookup.erase(ii); + m_md_rev_lookup.erase(rii); + m_MDD_Table[index] = NilEntry; return true; } @@ -196,6 +197,11 @@ ASDCP::Dictionary::DeleteEntry(ui32_t index) const ASDCP::MDDEntry& ASDCP::Dictionary::Type(MDD_t type_id) const { + std::map::const_iterator rii = m_md_rev_lookup.find(type_id); + + if ( rii == m_md_rev_lookup.end() ) + Kumu::DefaultLogSink().Warn("Unknown UL type_id: %d\n", type_id); + return m_MDD_Table[type_id]; } @@ -214,7 +220,12 @@ ASDCP::Dictionary::FindUL(const byte_t* ul_buf) const i = m_md_lookup.find(UL(tmp_ul)); if ( i == m_md_lookup.end() ) - return 0; + { + char buf[64]; + UL TmpUL(ul_buf); + Kumu::DefaultLogSink().Warn("Unknown UL: %s\n", TmpUL.EncodeString(buf, 64)); + return 0; + } } return &m_MDD_Table[(*i).second]; -- cgit v1.2.3