internal bool MatchesPrefix(ref string aLine, out MemOpFnBase aFunction) { bool foundMatch = false; aFunction = null; // foreach (KeyValuePair <string, MemOpFnBase> entry in iFunctionPrefixes) { int pos = aLine.IndexOf(entry.Key); // if (pos >= 0) { SymbianUtils.PrefixParser.SkipPrefix(entry.Key, ref aLine); aFunction = entry.Value; foundMatch = true; break; } } // return(foundMatch); }
protected override void HandleFilteredLine(string aLine) { if (aLine != null) { MemOpBase operation = null; MemOpFnBase function = null; // bool handled = Prefixes.MatchesPrefix(ref aLine, out function); if (handled && function != null) { operation = function.Parse(ref aLine, Prefixes); if (operation != null) { // Finalise it operation.LineNumber = System.Convert.ToUInt32(LineNumber); operation.Finalise(SymbolManager); // Notify switch (function.Class) { case MemAnalysisLib.MemoryOperations.Class.TClass.EAllocation: HandleOpAllocation(operation as MemOpAllocation); break; case MemAnalysisLib.MemoryOperations.Class.TClass.EDeallocation: HandleOpFree(operation as MemOpFree); break; case MemAnalysisLib.MemoryOperations.Class.TClass.EReallocation: HandleOpReallocation(operation as MemOpReallocation); break; default: break; } } } } }
internal void AssociatePrefixWithFunction(string aPrefix, MemOpFnBase aFunction) { iFunctionPrefixes.Add(aPrefix, aFunction); }