public static void executeSearch(ICirDataSearchResult cirDataSearchResult, List <String> lsTargetCirClasses) { if (cirDataSearchResult.fcdAnalysis == null) { DI.log.error("in CirDataSearchResult.executeSearch , fcdAnalysis == null"); } else { cirDataSearchResult.clearResultVars(); foreach (String sClass in lsTargetCirClasses) { if (cirDataSearchResult.fcdAnalysis.dCirClass_bySignature.ContainsKey(sClass)) { cirDataSearchResult.lsResult_Classes.Add(sClass); if (cirDataSearchResult.fcdAnalysis.dCirClass_bySignature[sClass].bClassHasMethodsWithControlFlowGraphs && false == cirDataSearchResult.lsResult_Classes_WithControlFlowGraphs.Contains(sClass)) { cirDataSearchResult.lsResult_Classes_WithControlFlowGraphs.Add(sClass); } foreach ( CirFunction cfCirFunction in cirDataSearchResult.fcdAnalysis.dCirClass_bySignature[sClass].dFunctions.Values) // if (cfCirFunction.HasControlFlowGraph) { cirDataSearchResult.lsResult_Functions.Add(cfCirFunction.FunctionSignature); if (cfCirFunction.HasControlFlowGraph && false == cirDataSearchResult.lsResult_Functions_WithControlFlowGraphs.Contains(cfCirFunction.FunctionSignature)) { cirDataSearchResult.lsResult_Functions_WithControlFlowGraphs.Add(cfCirFunction.FunctionSignature); } foreach (ICirFunction functionCalled in cfCirFunction.FunctionsCalledUniqueList) { if (false == cirDataSearchResult.lsResult_CallsMade.Contains(functionCalled.FunctionSignature)) { // add all functions to this one cirDataSearchResult.lsResult_CallsMade.Add(functionCalled.FunctionSignature); } if (false == cirDataSearchResult.fcdAnalysis.dCirFunction_bySignature.ContainsKey(functionCalled.FunctionSignature)) { // only check for functions that we don't have the CIR for if (false == cirDataSearchResult.lsResult_CallsMadeToExternalMethods.Contains(functionCalled.FunctionSignature)) { cirDataSearchResult.lsResult_CallsMadeToExternalMethods.Add(functionCalled.FunctionSignature); } } } } } } } }
public void LoadClassInfo() { if (this.okThread(delegate { LoadClassInfo(); })) { ICirDataSearchResult fcdSearchResult = CirDataAnalysisUtils.executeSearch(cirDataAnalysis); if (cbOnlyShowClassesWithFunctionsWithControlFlowGraphs.Checked) { afv_Classes.showSignatures(fcdSearchResult.lsResult_Classes_WithControlFlowGraphs); } else { afv_Classes.showSignatures(fcdSearchResult.lsResult_Classes); } if (cbCalculateSuperClasses.Checked) { //afv_Classes.showSignatures(fcdSearchResult.lsResult_Classes); afv_SuperClasses.iMaxItemsToShow = 10000; afv_SuperClasses.showSignatures(cirDataAnalysis.lCirClass_bySuperClass); } } // classNodeCheckClickEvent(new List<String>()); // this will clear all previous results; }
public static void executeSearch(ICirDataSearchResult cirDataSearchResult, List<String> lsTargetCirClasses) { if (cirDataSearchResult.fcdAnalysis == null) DI.log.error("in CirDataSearchResult.executeSearch , fcdAnalysis == null"); else { cirDataSearchResult.clearResultVars(); foreach (String sClass in lsTargetCirClasses) { if (cirDataSearchResult.fcdAnalysis.dCirClass_bySignature.ContainsKey(sClass)) { cirDataSearchResult.lsResult_Classes.Add(sClass); if (cirDataSearchResult.fcdAnalysis.dCirClass_bySignature[sClass].bClassHasMethodsWithControlFlowGraphs && false == cirDataSearchResult.lsResult_Classes_WithControlFlowGraphs.Contains(sClass)) cirDataSearchResult.lsResult_Classes_WithControlFlowGraphs.Add(sClass); foreach ( CirFunction cfCirFunction in cirDataSearchResult.fcdAnalysis.dCirClass_bySignature[sClass].dFunctions.Values) // if (cfCirFunction.HasControlFlowGraph) { cirDataSearchResult.lsResult_Functions.Add(cfCirFunction.FunctionSignature); if (cfCirFunction.HasControlFlowGraph && false == cirDataSearchResult.lsResult_Functions_WithControlFlowGraphs.Contains(cfCirFunction.FunctionSignature)) cirDataSearchResult.lsResult_Functions_WithControlFlowGraphs.Add(cfCirFunction.FunctionSignature); foreach (ICirFunction functionCalled in cfCirFunction.FunctionsCalledUniqueList) { if (false == cirDataSearchResult.lsResult_CallsMade.Contains(functionCalled.FunctionSignature)) // add all functions to this one cirDataSearchResult.lsResult_CallsMade.Add(functionCalled.FunctionSignature); if (false == cirDataSearchResult.fcdAnalysis.dCirFunction_bySignature.ContainsKey(functionCalled.FunctionSignature)) // only check for functions that we don't have the CIR for if (false == cirDataSearchResult.lsResult_CallsMadeToExternalMethods.Contains(functionCalled.FunctionSignature)) cirDataSearchResult.lsResult_CallsMadeToExternalMethods.Add(functionCalled.FunctionSignature); } } } } } }
public static void executeSearch(ICirDataSearchResult cirDataSearchResult) { executeSearch(cirDataSearchResult, new List<String>(cirDataSearchResult.fcdAnalysis.dCirClass_bySignature.Keys)); }
public static void executeSearch(ICirDataSearchResult cirDataSearchResult) { executeSearch(cirDataSearchResult, new List <String>(cirDataSearchResult.fcdAnalysis.dCirClass_bySignature.Keys)); }