// Dispose all functions in our collection and then empty the collection. public void Dispose() { foreach (object o in m_functions.Values) { // items may be either a function, or an array of functions. MDbgFunction f1 = o as MDbgFunction; if (f1 != null) { f1.Dispose(); } else { MDbgFunction[] a = (MDbgFunction[])o; foreach (MDbgFunction f in a) { f.Dispose(); } } } Clear(); }