From d24519e97497e24fe8e4495331a649343905694b Mon Sep 17 00:00:00 2001 From: Julian Dolby Date: Thu, 2 Feb 2017 20:33:27 -0500 Subject: [PATCH] cross-cutting changes to make more of WALA runnable with TeaVM. The biggest change is refactoring to AnalysisCache and friends; since TeaVM does not support SoftReference, I needed to add a layer of interfaces so that I can use a more simpleminded caching implementation for TeaVM. There are other changes to Module and friends to break connections with File and URL, which also cause TeaVM grief. I also organized imports in many places to remove unused types that caused trouble. --- .../java/ecj/util/SourceDirCallGraph.java | 3 +- .../jdt/ecj/ECJSourceModuleTranslator.java | 1 - .../src/Array1.java | 2 +- .../src/ArrayLiteral1.java | 2 +- .../src/Breaks.java | 2 +- .../src/Casts.java | 2 +- .../src/FunkySupers.java | 2 +- .../src/Inheritance1.java | 2 +- .../src/InnerClassSuper.java | 2 +- .../src/MiniaturSliceBug.java | 2 +- .../src/Scoping1.java | 2 +- .../src/Scoping2.java | 2 +- .../src/StaticNesting.java | 2 +- .../alreadywalaunittests/InnerClassAA.java | 2 +- .../InnerClassSuperA.java | 2 +- .../GenericMemberClasses.java | 2 +- .../javaonepointfive/NotSoSimpleEnums.java | 2 +- .../src/p/NonPrimaryTopLevel.java | 2 +- .../java/client/JavaSourceAnalysisEngine.java | 8 +- .../client/impl/ZeroCFABuilderFactory.java | 3 +- .../java/ipa/callgraph/AstJavaCFABuilder.java | 3 +- ...AstJavaSSAPropagationCallGraphBuilder.java | 3 +- .../ipa/callgraph/AstJavaZeroXCFABuilder.java | 3 +- .../nu_validator/NuValidatorHtmlParser.java | 6 +- .../wala/cast/js/examples/hybrid/Driver.java | 9 +- .../test/AbstractFieldBasedTest.java | 11 +- .../test/FieldBasedCGGamesTest.java | 5 + .../test/FieldBasedComparisonTest.java | 6 +- .../cast/js/rhino/test/HTMLCGBuilder.java | 4 +- ...stRhinoLoopUnwindingTranslatorFactory.java | 1 - .../js/translator/CAstRhinoTranslator.java | 15 +- .../CAstRhinoTranslatorFactory.java | 4 +- .../js/translator/RhinoToAstTranslator.java | 13 +- .../wala/cast/js/test/FieldBasedCGUtil.java | 10 +- .../cast/js/test/JSCallGraphBuilderUtil.java | 10 +- .../cast/js/test/TestArgumentSensitivity.java | 10 +- .../wala/cast/js/test/TestForInLoopHack.java | 84 +++--- .../cast/js/test/TestPointerAnalyses.java | 2 +- .../js/test/TestSimpleCallGraphShape.java | 271 +++++++++--------- .../js/test/TestSimplePageCallGraphShape.java | 8 +- .../FieldBasedCallGraphBuilder.java | 30 +- .../OptimisticCallgraphBuilder.java | 8 +- .../PessimisticCallGraphBuilder.java | 7 +- ...rklistBasedOptimisticCallgraphBuilder.java | 5 +- .../flowgraph/FilteredFlowGraphBuilder.java | 4 +- .../fieldbased/flowgraph/FlowGraph.java | 6 +- .../flowgraph/FlowGraphBuilder.java | 9 +- .../flowgraph/vertices/UnknownVertex.java | 2 +- .../js/client/JavaScriptAnalysisEngine.java | 16 +- .../js/client/impl/ZeroCFABuilderFactory.java | 3 +- .../ibm/wala/cast/js/html/FileMapping.java | 2 +- .../js/html/jericho/JerichoHtmlParser.java | 12 +- .../wala/cast/js/html/jericho/JerichoTag.java | 8 +- .../ipa/callgraph/ArgumentSpecialization.java | 4 +- .../cast/js/ipa/callgraph/JSCFABuilder.java | 3 +- .../cast/js/ipa/callgraph/JSCallGraph.java | 6 +- .../js/ipa/callgraph/JSCallGraphUtil.java | 91 +++++- .../JSSSAPropagationCallGraphBuilder.java | 12 +- .../ipa/callgraph/JSZeroOrOneXCFABuilder.java | 12 +- ...ScriptFunctionApplyContextInterpreter.java | 3 +- ...vaScriptFunctionDotCallTargetSelector.java | 7 +- .../ObjectSensitivityContextSelector.java | 2 +- .../PropertyNameContextSelector.java | 12 +- .../callgraph/correlations/Correlation.java | 2 +- .../correlations/CorrelationSummary.java | 2 +- .../correlations/EscapeCorrelation.java | 2 +- .../correlations/ReadWriteCorrelation.java | 2 +- .../correlations/SSASourcePositionMap.java | 2 +- .../extraction/CAstRewriterExt.java | 4 +- .../CorrelatedPairExtractorFactory.java | 2 +- .../extraction/ExtractedFunction.java | 2 +- .../correlations/extraction/NodePos.java | 2 +- .../JavaScriptConstructorFunctions.java | 103 ++++++- .../wala/cast/js/loader/JavaScriptLoader.java | 2 +- ...aScriptLoopUnwindingTranslatorFactory.java | 5 +- .../JavaScriptTranslatorFactory.java | 4 +- .../js/translator/PropertyReadExpander.java | 3 +- .../wala/cast/js/types/JavaScriptTypes.java | 2 +- .../ibm/wala/cast/test/TestCAstPattern.java | 4 +- .../wala/cast/test/TestCAstTranslator.java | 4 +- .../wala/cast/test/TestCallGraphShape.java | 4 +- .../callgraph/ArgumentInstanceContext.java | 2 +- .../wala/cast/ipa/callgraph/AstCallGraph.java | 12 +- ...ntextInsensitiveSSAContextInterpreter.java | 3 +- .../AstSSAPropagationCallGraphBuilder.java | 5 +- .../cast/ipa/callgraph/CAstAnalysisScope.java | 4 +- .../cast/ipa/callgraph/CAstCallGraphUtil.java | 7 +- .../ipa/callgraph/CrossLanguageCallGraph.java | 8 +- .../CrossLanguageMethodTargetSelector.java | 1 - .../callgraph/ScopeMappingInstanceKeys.java | 2 +- .../cast/ipa/callgraph/ScriptEntryPoints.java | 2 +- .../StandardFunctionTargetSelector.java | 1 + .../ibm/wala/cast/ir/ssa/CAstBinaryOp.java | 1 - .../com/ibm/wala/cast/ir/ssa/CAstUnaryOp.java | 1 - .../ir/translator/AbstractClassEntity.java | 2 +- .../ir/translator/AbstractCodeEntity.java | 2 +- .../ir/translator/AbstractDataEntity.java | 2 +- .../cast/ir/translator/AbstractEntity.java | 2 +- .../ir/translator/AbstractFieldEntity.java | 2 +- .../ir/translator/AbstractScriptEntity.java | 2 +- .../wala/cast/loader/CAstAbstractLoader.java | 2 +- .../wala/cast/tree/pattern/NodeOfKind.java | 2 +- .../wala/cast/tree/pattern/NodePattern.java | 2 +- .../wala/cast/tree/pattern/SomeConstant.java | 2 +- .../wala/cast/tree/pattern/SubtreeOfKind.java | 2 +- .../cast/tree/rewrite/CAstBasicRewriter.java | 2 +- .../com/ibm/wala/cast/util/CAstPrinter.java | 46 +-- .../src/cfg/MonitorTest.java | 2 +- .../src/demandpa/TestMethodRecursion.java | 2 +- .../src/multiDim/TestMultiDim.java | 2 +- .../src/slice/JustThrow.java | 2 +- .../src/slice/TestThrowCatch.java | 2 +- .../launchers/ConstructAllIRs.launch | 3 +- .../arraybounds/ArrayboundsAnalysisTest.java | 5 +- .../PruneArrayOutOfBoundExceptionEdge.java | 5 +- .../core/tests/basic/GraphDataflowTest.java | 2 +- .../tests/callGraph/AcyclicCallGraphTest.java | 4 +- .../wala/core/tests/callGraph/CPATest.java | 4 +- .../core/tests/callGraph/CallGraphTest.java | 29 +- .../tests/callGraph/ClassConstantTest.java | 4 +- .../wala/core/tests/callGraph/CloneTest.java | 4 +- .../tests/callGraph/DefaultMethodsTest.java | 4 +- .../core/tests/callGraph/FinalizerTest.java | 8 +- .../tests/callGraph/Java7CallGraphTest.java | 3 +- .../wala/core/tests/callGraph/LambdaTest.java | 4 +- .../tests/callGraph/PiNodeCallGraphTest.java | 7 +- .../core/tests/callGraph/ReflectionTest.java | 50 ++-- .../core/tests/callGraph/SyntheticTest.java | 4 +- .../wala/core/tests/cha/CodeDeletedTest.java | 5 +- .../wala/core/tests/cha/ExclusionsTest.java | 4 +- .../wala/core/tests/cha/SourceMapTest.java | 2 +- .../core/tests/demandpa/AbstractPtrTest.java | 3 +- .../ExceptionAnalysis2EdgeFilterTest.java | 6 +- .../ExceptionAnalysisTest.java | 5 +- .../wala/core/tests/ir/CFGSanitizerTest.java | 4 +- .../com/ibm/wala/core/tests/ir/CFGTest.java | 7 +- .../wala/core/tests/ir/CornerCasesTest.java | 4 +- .../wala/core/tests/ir/LocalNamesTest.java | 3 +- .../wala/core/tests/ir/MultiNewArrayTest.java | 5 +- .../core/tests/ptrs/MultiDimArrayTest.java | 4 +- .../tests/ptrs/TypeBasedArrayAliasTest.java | 4 +- .../core/tests/ptrs/ZeroLengthArrayTest.java | 8 +- .../tests/shrike/DynamicCallGraphTest.java | 4 +- .../wala/core/tests/slicer/SlicerTest.java | 54 ++-- .../typeInference/TypeInferenceTest.java | 7 +- .../wala/core/tests/util/WalaTestCase.java | 3 +- .../driver/CompareToZeroOneCFADriver.java | 8 +- .../driver/TestAgainstSimpleDriver.java | 8 +- .../examples/analysis/ConstructAllIRs.java | 3 +- .../examples/analysis/CountParameters.java | 2 +- .../examples/analysis/GetLoadedFields.java | 2 +- .../analysis/SimpleThreadEscapeAnalysis.java | 3 +- .../ContextSensitiveReachingDefs.java | 4 +- .../analysis/dataflow/DataflowTest.java | 17 +- .../analysis/dataflow/InitializerTest.java | 12 +- .../analysis/dataflow/StaticInitializer.java | 10 +- .../examples/drivers/JavaViewerDriver.java | 4 +- .../wala/examples/drivers/PDFCallGraph.java | 6 +- .../drivers/PDFControlDependenceGraph.java | 6 +- .../com/ibm/wala/examples/drivers/PDFSDG.java | 8 +- .../ibm/wala/examples/drivers/PDFSlice.java | 8 +- .../examples/drivers/PDFTypeHierarchy.java | 4 +- .../ibm/wala/examples/drivers/PDFWalaIR.java | 5 +- .../examples/drivers/ScopeFileCallGraph.java | 3 +- .../properties/WalaExamplesProperties.java | 2 +- .../hypergraph/DirectedHyperEdge.java | 2 - .../hypergraph/DirectedHyperGraph.java | 2 - .../arraybounds/hypergraph/HyperNode.java | 2 - .../hypergraph/weight/NormalOrder.java | 1 - .../hypergraph/weight/ReverseOrder.java | 2 - .../arraybounds/hypergraph/weight/Weight.java | 4 - .../edgeweights/AdditiveEdgeWeight.java | 2 - .../exceptionanalysis/ExceptionAnalysis.java | 2 +- .../IntraproceduralExceptionAnalysis.java | 2 +- .../exceptionanalysis/package-info.java | 2 +- .../wala/analysis/pointers/HeapGraphImpl.java | 1 - .../AbstractReflectionInterpreter.java | 5 +- .../ClassFactoryContextSelector.java | 2 +- .../ClassNewInstanceContextSelector.java | 2 +- .../reflection/FactoryBypassInterpreter.java | 11 +- .../reflection/GetClassContextSelector.java | 2 +- .../JavaLangClassContextSelector.java | 2 +- .../ReflectionContextInterpreter.java | 5 +- .../ReflectiveInvocationSelector.java | 2 +- .../stackMachine/AbstractIntStackMachine.java | 2 +- .../analysis/typeInference/TypeVariable.java | 2 +- .../src/com/ibm/wala/cfg/AbstractCFG.java | 2 +- .../com/ibm/wala/cfg/ControlFlowGraph.java | 3 - .../intra/IntraprocNullPointerAnalysis.java | 1 - .../ibm/wala/cfg/exc/intra/MutableCFG.java | 2 +- .../cfg/exc/intra/NegativeGraphFilter.java | 2 +- .../cfg/exc/intra/NullPointerFrameWork.java | 2 +- .../wala/cfg/exc/intra/NullPointerState.java | 2 +- .../exc/intra/SSACFGNullPointerAnalysis.java | 2 +- .../com/ibm/wala/classLoader/CodeScanner.java | 2 +- .../com/ibm/wala/classLoader/FieldImpl.java | 2 +- .../src/com/ibm/wala/classLoader/IMethod.java | 2 - .../ibm/wala/classLoader/JarStreamModule.java | 2 +- .../ibm/wala/classLoader/ShrikeCTMethod.java | 2 - .../com/ibm/wala/classLoader/ShrikeClass.java | 2 +- .../wala/client/AbstractAnalysisEngine.java | 20 +- .../dataflow/IFDS/BackwardsSupergraph.java | 2 +- .../ibm/wala/dataflow/IFDS/CallFlowEdges.java | 2 +- .../wala/dataflow/IFDS/ICFGSupergraph.java | 14 +- .../ibm/wala/dataflow/IFDS/ISupergraph.java | 2 +- .../dataflow/IFDS/IdentityFlowFunction.java | 2 +- .../wala/dataflow/IFDS/LocalPathEdges.java | 2 +- .../wala/dataflow/IFDS/LocalSummaryEdges.java | 2 +- .../com/ibm/wala/dataflow/IFDS/PathEdge.java | 2 +- .../TunedFieldRefinementPolicy.java | 2 +- .../flowgraph/AbstractDemandFlowGraph.java | 3 +- .../demandpa/flowgraph/AbstractFlowGraph.java | 1 + .../wala/demandpa/flowgraph/IFlowGraph.java | 3 +- .../flowgraph/PointerKeyAndCallSite.java | 2 +- .../SimpleDemandPointerFlowGraph.java | 2 +- .../ibm/wala/demandpa/util/ArrayContents.java | 2 +- .../wala/demandpa/util/MemoryAccessMap.java | 2 +- .../util/PointerParamValueNumIterator.java | 2 +- .../demandpa/util/SimpleMemoryAccessMap.java | 2 +- .../ibm/wala/ipa/callgraph/AnalysisCache.java | 43 +-- .../wala/ipa/callgraph/CallGraphBuilder.java | 3 +- .../wala/ipa/callgraph/cha/CHACallGraph.java | 7 +- .../callgraph/impl/AbstractRootMethod.java | 8 +- .../impl/AllApplicationEntrypoints.java | 2 +- .../impl/ArgumentTypeEntrypoint.java | 2 +- .../ClassHierarchyClassTargetSelector.java | 2 +- .../impl/DefaultContextSelector.java | 2 +- .../ipa/callgraph/impl/ExplicitCallGraph.java | 10 +- .../ipa/callgraph/impl/FakeRootMethod.java | 4 +- .../callgraph/impl/FakeWorldClinitMethod.java | 4 +- .../callgraph/impl/UnionContextSelector.java | 2 +- .../com/ibm/wala/ipa/callgraph/impl/Util.java | 5 +- .../callgraph/propagation/AssignOperator.java | 2 +- .../propagation/ConcreteTypeKey.java | 4 +- .../propagation/IPointerOperator.java | 2 +- .../PropagationCallGraphBuilder.java | 7 +- .../propagation/PropagationGraph.java | 5 +- .../callgraph/propagation/ReturnValueKey.java | 2 +- .../SSAPropagationCallGraphBuilder.java | 11 +- .../propagation/SelectiveCPAContext.java | 3 +- .../callgraph/propagation/cfa/CallString.java | 2 +- .../propagation/cfa/CallStringContext.java | 2 +- .../cfa/ContextInsensitiveSSAInterpreter.java | 7 +- .../cfa/DefaultSSAInterpreter.java | 3 +- .../cfa/ExceptionReturnValueKey.java | 2 +- .../cfa/FallbackContextInterpreter.java | 2 +- .../propagation/cfa/ZeroXCFABuilder.java | 5 +- .../propagation/rta/BasicRTABuilder.java | 2 +- .../callgraph/propagation/rta/CallSite.java | 2 +- .../rta/ContextInsensitiveRTAInterpreter.java | 7 +- .../rta/DefaultRTAInterpreter.java | 3 +- .../rta/DelegatingExplicitCallGraph.java | 4 +- .../rta/RTAContextInterpreter.java | 2 +- .../pruned/ApplicationLoaderPolicy.java | 2 +- .../src/com/ibm/wala/ipa/cfg/EdgeFilter.java | 2 +- .../filter/NullPointerExceptionFilter.java | 1 - .../exceptionpruning/filter/package-info.java | 2 +- .../interprocedural/package-info.java | 2 +- .../cfg/exceptionpruning/package-info.java | 2 +- .../com/ibm/wala/ipa/cha/ClassHierarchy.java | 1 + .../wala/ipa/cha/ClassHierarchyWarning.java | 2 +- .../src/com/ibm/wala/ipa/modref/GenReach.java | 2 +- .../ipa/slicer/ExceptionalReturnCallee.java | 2 +- .../ipa/slicer/ExceptionalReturnCaller.java | 2 +- .../ibm/wala/ipa/slicer/HeapReachingDefs.java | 1 - .../wala/ipa/slicer/NormalReturnCallee.java | 2 +- .../wala/ipa/slicer/NormalReturnCaller.java | 2 +- .../src/com/ibm/wala/ipa/slicer/PDG.java | 1 - .../com/ibm/wala/ipa/slicer/ParamCallee.java | 2 +- .../com/ibm/wala/ipa/slicer/ParamCaller.java | 2 +- .../ipa/slicer/ReachabilityFunctions.java | 2 +- .../ibm/wala/ipa/slicer/SDGSupergraph.java | 2 +- .../com/ibm/wala/ipa/slicer/thin/CISDG.java | 2 +- .../summaries/BypassClassTargetSelector.java | 2 +- .../ipa/summaries/VolatileMethodSummary.java | 14 +- .../src/com/ibm/wala/ssa/AuxiliaryCache.java | 27 +- .../ibm/wala/ssa/ReflectiveMemberAccess.java | 2 +- .../ssa/SSAAbstractBinaryInstruction.java | 2 +- .../src/com/ibm/wala/ssa/SSACFG.java | 3 +- .../src/com/ibm/wala/ssa/SSACache.java | 8 +- .../analysis/ExplodedControlFlowGraph.java | 2 +- .../ibm/wala/util/PrimitiveAssignability.java | 8 +- .../wala/util/config/AnalysisScopeReader.java | 2 +- .../com/ibm/wala/util/shrike/ShrikeUtil.java | 2 +- .../src/com/ibm/wala/util/ssa/SSAValue.java | 4 +- .../wala/util/strings/ImmutableByteArray.java | 2 +- .../com/ibm/wala/util/warnings/Warnings.java | 2 +- .../com/ibm/wala/viz/viewer/WalaViewer.java | 2 +- .../callGraph/DalvikCallGraphTestBase.java | 12 +- .../test/callGraph/DroidBenchCGTest.java | 4 +- .../callGraph/JVMLDalvikComparisonTest.java | 4 +- .../callGraph/droidbench/AliasingTest.java | 4 +- .../droidbench/AndroidSpecificTest.java | 4 +- .../callGraph/droidbench/CallbacksTest.java | 4 +- .../droidbench/EmulatorDetectionTest.java | 4 +- .../FieldAndObjectSensitivityTest.java | 4 +- .../callGraph/droidbench/GeneralJavaTest.java | 4 +- .../droidbench/ImplicitFlowsTest.java | 4 +- .../droidbench/InterAppCommunicationTest.java | 4 +- .../InterComponentCommunicationTest.java | 4 +- .../callGraph/droidbench/LifecycleTest.java | 4 +- .../callGraph/droidbench/ReflectionTest.java | 4 +- .../callGraph/droidbench/ThreadingTest.java | 4 +- .../callgraph/androidModel/AndroidModel.java | 7 +- .../callgraph/androidModel/IntentModel.java | 6 +- .../callgraph/androidModel/MicroModel.java | 6 +- .../ipa/callgraph/androidModel/MiniModel.java | 6 +- .../AndroidModelParameterManager.java | 1 - .../DefaultInstantiationBehavior.java | 1 - .../parameters/ReuseParameters.java | 1 - .../parameters/SpecializedInstantiator.java | 1 - .../stubs/AndroidStartComponentTool.java | 1 - .../androidModel/stubs/ExternalModel.java | 5 +- .../androidModel/stubs/Overrides.java | 8 +- .../stubs/SystemServiceModel.java | 5 +- .../stubs/UnknownTargetModel.java | 5 +- .../ipa/callgraph/impl/DexEntryPoint.java | 2 - .../callgraph/impl/DexExplicitCallGraph.java | 4 +- .../ipa/callgraph/impl/DexFakeRootMethod.java | 4 +- .../ipa/callgraph/propagation/cfa/Intent.java | 2 - .../cfa/IntentContextInterpreter.java | 7 +- .../cfa/IntentContextSelector.java | 61 ++-- .../callgraph/propagation/cfa/IntentMap.java | 1 - .../ssa/AbstractIntRegisterMachine.java | 1 - .../ibm/wala/dalvik/ssa/DexSSABuilder.java | 1 - .../ibm/wala/cast/java/test/JDTJavaTest.java | 6 +- .../java/test/TypeInferenceAssertion.java | 2 +- .../demandpa/driver/DemandCastChecker.java | 3 +- .../client/JDTJavaSourceAnalysisEngine.java | 8 +- .../jdt/JDTSourceModuleTranslator.java | 1 - .../wala/ide/util/JavaEclipseProjectPath.java | 5 - .../com/ibm/wala/ide/util/JdtPosition.java | 2 +- .../com.ibm.wala.ide.jsdt.tests.launch | 6 +- .../tests/AbstractJSProjectScopeTest.java | 2 +- .../EclipseJavaScriptAnalysisEngine.java | 8 +- .../util/JavaScriptEclipseProjectPath.java | 9 +- .../launchers/IFDSExplorerExample.launch | 1 + .../examples/drivers/IFDSExplorerExample.java | 3 +- .../wala/examples/drivers/SWTCallGraph.java | 4 +- .../wala/examples/drivers/SWTPointsTo.java | 6 +- .../examples/drivers/SWTTypeHierarchy.java | 4 +- .../client/EclipseProjectAnalysisEngine.java | 3 +- .../EclipseProjectSourceAnalysisEngine.java | 4 +- .../ibm/wala/ide/ui/ViewIFDSLocalAction.java | 4 +- .../src/com/ibm/wala/ide/ui/ViewIRAction.java | 2 +- .../org/scandroid/flow/LocalSinkPoint.java | 2 +- .../functions/CallNoneToReturnFunction.java | 2 +- .../flow/functions/PairBasedFlowFunction.java | 2 +- .../scandroid/flow/functions/UseDefPair.java | 2 +- .../org/scandroid/spec/FieldNamePattern.java | 3 +- .../org/scandroid/util/CGAnalysisContext.java | 3 +- .../scandroid/util/IEntryPointSpecifier.java | 1 - .../wala/shrike/bench/InterfaceAnalyzer.java | 2 +- .../com/ibm/wala/shrike/bench/Mangler.java | 2 +- .../src/com/ibm/wala/shrike/bench/Slots.java | 2 +- .../com/ibm/wala/shrike/bench/Statistics.java | 2 +- .../wala/shrike/copywriter/CopyWriter.java | 2 +- .../wala/shrikeBT/ArrayLengthInstruction.java | 2 +- .../wala/shrikeBT/ArrayLoadInstruction.java | 2 +- .../wala/shrikeBT/ArrayStoreInstruction.java | 2 +- .../wala/shrikeBT/BinaryOpInstruction.java | 2 +- .../ibm/wala/shrikeBT/BytecodeConstants.java | 2 +- .../wala/shrikeBT/CheckCastInstruction.java | 2 +- .../wala/shrikeBT/ComparisonInstruction.java | 2 +- .../src/com/ibm/wala/shrikeBT/Compiler.java | 2 +- .../ConditionalBranchInstruction.java | 2 +- .../ibm/wala/shrikeBT/ConstantPoolReader.java | 2 +- .../src/com/ibm/wala/shrikeBT/Constants.java | 2 +- .../wala/shrikeBT/ConversionInstruction.java | 2 +- .../src/com/ibm/wala/shrikeBT/Decoder.java | 2 +- .../com/ibm/wala/shrikeBT/Disassembler.java | 2 +- .../com/ibm/wala/shrikeBT/DupInstruction.java | 2 +- .../ibm/wala/shrikeBT/ExceptionHandler.java | 2 +- .../com/ibm/wala/shrikeBT/GetInstruction.java | 2 +- .../ibm/wala/shrikeBT/GotoInstruction.java | 2 +- .../wala/shrikeBT/IComparisonInstruction.java | 2 +- .../wala/shrikeBT/InstanceofInstruction.java | 2 +- .../com/ibm/wala/shrikeBT/Instruction.java | 2 +- .../ibm/wala/shrikeBT/InvokeInstruction.java | 2 +- .../ibm/wala/shrikeBT/LoadInstruction.java | 2 +- .../src/com/ibm/wala/shrikeBT/MethodData.java | 2 +- .../com/ibm/wala/shrikeBT/MethodEditor.java | 2 +- .../ibm/wala/shrikeBT/MonitorInstruction.java | 2 +- .../com/ibm/wala/shrikeBT/NewInstruction.java | 2 +- .../com/ibm/wala/shrikeBT/PopInstruction.java | 2 +- .../com/ibm/wala/shrikeBT/PutInstruction.java | 2 +- .../ibm/wala/shrikeBT/ReturnInstruction.java | 2 +- .../ibm/wala/shrikeBT/ShiftInstruction.java | 2 +- .../ibm/wala/shrikeBT/StoreInstruction.java | 2 +- .../ibm/wala/shrikeBT/SwapInstruction.java | 2 +- .../ibm/wala/shrikeBT/SwitchInstruction.java | 2 +- .../ibm/wala/shrikeBT/ThrowInstruction.java | 2 +- .../ibm/wala/shrikeBT/UnaryOpInstruction.java | 2 +- .../src/com/ibm/wala/shrikeBT/Util.java | 3 +- .../ibm/wala/shrikeBT/analysis/Analyzer.java | 3 +- .../shrikeBT/analysis/ClassHierarchy.java | 2 +- .../analysis/ClassHierarchyProvider.java | 2 +- .../analysis/ClassHierarchyStore.java | 2 +- .../ibm/wala/shrikeBT/analysis/Verifier.java | 2 +- .../shrikeBT/info/InstructionTypeCounter.java | 2 +- .../wala/shrikeBT/info/LocalAllocator.java | 2 +- .../shrikeBT/info/ThisAssignmentChecker.java | 2 +- .../wala/shrikeBT/shrikeCT/CTCompiler.java | 2 +- .../ibm/wala/shrikeBT/shrikeCT/CTDecoder.java | 2 +- .../ibm/wala/shrikeBT/shrikeCT/CTUtils.java | 2 +- .../shrikeBT/shrikeCT/ClassInstrumenter.java | 2 +- .../shrikeCT/OfflineInstrumenter.java | 3 +- .../shrikeCT/tools/AddSerialVersion.java | 2 +- .../shrikeCT/tools/BatchVerifier.java | 2 +- .../shrikeCT/tools/BootstrapDumper.java | 2 +- .../shrikeCT/tools/BootstrapInstrumentor.java | 2 +- .../shrikeBT/shrikeCT/tools/ClassPrinter.java | 2 +- .../shrikeCT/tools/ClassSearcher.java | 2 +- .../wala/shrikeBT/tools/MethodOptimizer.java | 2 +- .../tools/OfflineInstrumenterBase.java | 3 +- .../ibm/wala/shrikeCT/AnnotationsReader.java | 2 +- .../ibm/wala/shrikeCT/AttributeReader.java | 2 +- .../com/ibm/wala/shrikeCT/ClassConstants.java | 2 +- .../com/ibm/wala/shrikeCT/ClassWriter.java | 2 +- .../src/com/ibm/wala/shrikeCT/CodeReader.java | 2 +- .../src/com/ibm/wala/shrikeCT/CodeWriter.java | 2 +- .../ibm/wala/shrikeCT/ConstantPoolParser.java | 2 +- .../wala/shrikeCT/ConstantValueReader.java | 2 +- .../wala/shrikeCT/ConstantValueWriter.java | 2 +- .../ibm/wala/shrikeCT/ExceptionsReader.java | 2 +- .../ibm/wala/shrikeCT/ExceptionsWriter.java | 2 +- .../ibm/wala/shrikeCT/InnerClassesReader.java | 2 +- .../ibm/wala/shrikeCT/InnerClassesWriter.java | 2 +- .../shrikeCT/InvalidClassFileException.java | 2 +- .../wala/shrikeCT/LineNumberTableReader.java | 2 +- .../shrikeCT/LocalVariableTableReader.java | 2 +- .../shrikeCT/LocalVariableTableWriter.java | 2 +- .../ibm/wala/shrikeCT/SignatureReader.java | 2 +- .../ibm/wala/shrikeCT/SourceFileReader.java | 2 +- .../ibm/wala/shrikeCT/SourceFileWriter.java | 2 +- .../wala/shrikeCT/StackMapTableReader.java | 2 +- .../wala/shrikeCT/StackMapTableWriter.java | 6 +- .../wala/dataflow/graph/BasicFramework.java | 2 +- .../dataflow/graph/BitVectorFramework.java | 2 +- .../dataflow/graph/BitVectorIdentity.java | 2 +- .../dataflow/graph/BitVectorIntersection.java | 2 +- .../wala/dataflow/graph/BitVectorKillGen.java | 2 +- .../dataflow/graph/BitVectorMinusVector.java | 2 +- .../ibm/wala/dataflow/graph/BitVectorOr.java | 2 +- .../wala/dataflow/graph/BitVectorUnion.java | 2 +- .../graph/BitVectorUnionConstant.java | 2 +- .../dataflow/graph/BitVectorUnionVector.java | 2 +- .../wala/dataflow/graph/BooleanIdentity.java | 2 +- .../ibm/wala/dataflow/graph/BooleanUnion.java | 2 +- .../dataflow/graph/UnaryBitVectorUnion.java | 2 +- .../impl/DefaultFixedPointSolver.java | 2 +- .../impl/DefaultFixedPointSystem.java | 4 +- .../ibm/wala/fixedpoint/impl/Worklist.java | 2 +- .../ibm/wala/fixpoint/AbstractStatement.java | 2 +- .../ibm/wala/fixpoint/AbstractVariable.java | 2 +- .../wala/fixpoint/FixedPointConstants.java | 2 +- .../ibm/wala/fixpoint/IFixedPointSolver.java | 2 +- .../wala/fixpoint/IFixedPointStatement.java | 2 +- .../ibm/wala/fixpoint/IFixedPointSystem.java | 2 +- .../src/com/ibm/wala/fixpoint/IVariable.java | 2 +- .../com/ibm/wala/fixpoint/TrueOperator.java | 2 +- .../src/com/ibm/wala/fixpoint/UnaryOr.java | 2 +- .../util/collections/ArraySetMultiMap.java | 2 +- .../ibm/wala/util/collections/BimodalMap.java | 2 +- .../util/collections/CollectionFilter.java | 1 + .../util/collections/ComposedIterator.java | 2 +- .../util/collections/CompoundIntIterator.java | 2 +- .../ibm/wala/util/collections/Factory.java | 2 +- .../ibm/wala/util/collections/FifoQueue.java | 2 +- .../wala/util/collections/FilterIterator.java | 2 +- .../wala/util/collections/HashMapFactory.java | 2 +- .../ibm/wala/util/collections/IVector.java | 2 +- .../wala/util/collections/IntMapIterator.java | 2 +- .../wala/util/collections/IteratorUtil.java | 2 +- .../wala/util/collections/MapIterator.java | 2 +- .../ibm/wala/util/collections/MultiMap.java | 2 +- .../util/collections/ParanoidHashMap.java | 2 +- .../util/collections/ParanoidHashSet.java | 2 +- .../wala/util/collections/SimpleVector.java | 2 +- .../ibm/wala/util/collections/SmallMap.java | 2 +- .../wala/util/collections/TwoLevelVector.java | 2 +- .../util/graph/AbstractNumberedGraph.java | 2 +- .../util/graph/EdgeFilteredNumberedGraph.java | 2 +- .../ibm/wala/util/graph/GraphIntegrity.java | 2 +- .../wala/util/graph/GraphReachability.java | 2 +- .../com/ibm/wala/util/graph/GraphSlicer.java | 2 +- .../util/graph/INodeWithNumberedEdges.java | 2 +- .../com/ibm/wala/util/graph/NodeManager.java | 2 +- .../wala/util/graph/NumberedNodeManager.java | 2 +- .../src/com/ibm/wala/util/graph/Path.java | 2 +- .../graph/impl/DelegatingNumberedGraph.java | 2 +- .../util/graph/impl/NumberedNodeIterator.java | 2 +- .../graph/impl/SelfLoopAddedEdgeManager.java | 2 +- .../util/graph/impl/SparseNumberedGraph.java | 2 +- .../traverse/DFSDiscoverTimeIterator.java | 1 - .../util/graph/traverse/DFSPathFinder.java | 1 - .../wala/util/graph/traverse/Topological.java | 2 +- .../util/intset/BimodalMutableIntSet.java | 2 +- .../intset/BimodalMutableIntSetFactory.java | 2 +- .../wala/util/intset/BitVectorRepository.java | 2 +- .../wala/util/intset/FixedSizeBitVector.java | 2 +- .../src/com/ibm/wala/util/intset/IntSet.java | 2 +- .../wala/util/intset/IntegerUnionFind.java | 2 +- .../src/com/ibm/wala/util/intset/LongSet.java | 2 +- .../wala/util/intset/MultiModalIntVector.java | 2 +- .../intset/MutableSharedBitVectorIntSet.java | 2 +- .../MutableSharedBitVectorIntSetFactory.java | 2 +- .../util/intset/MutableSparseLongSet.java | 2 +- .../com/ibm/wala/util/intset/OrdinalSet.java | 2 +- .../ibm/wala/util/intset/SimpleIntVector.java | 2 +- .../ibm/wala/util/intset/SparseIntVector.java | 2 +- .../wala/util/intset/SparseLongIntVector.java | 2 +- .../wala/util/intset/TwoLevelIntVector.java | 2 +- .../src/com/ibm/wala/util/io/FileUtil.java | 2 +- .../src/com/ibm/wala/util/perf/Stopwatch.java | 2 +- pom.xml | 4 +- 516 files changed, 1326 insertions(+), 1214 deletions(-) diff --git a/com.ibm.wala.cast.java.ecj/src/com/ibm/wala/cast/java/ecj/util/SourceDirCallGraph.java b/com.ibm.wala.cast.java.ecj/src/com/ibm/wala/cast/java/ecj/util/SourceDirCallGraph.java index caa5d6ee0..0449578ba 100644 --- a/com.ibm.wala.cast.java.ecj/src/com/ibm/wala/cast/java/ecj/util/SourceDirCallGraph.java +++ b/com.ibm.wala.cast.java.ecj/src/com/ibm/wala/cast/java/ecj/util/SourceDirCallGraph.java @@ -11,6 +11,7 @@ import com.ibm.wala.cast.java.ipa.callgraph.JavaSourceAnalysisScope; import com.ibm.wala.cast.java.translator.jdt.ecj.ECJClassLoaderFactory; import com.ibm.wala.classLoader.SourceDirectoryTreeModule; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraph; @@ -67,7 +68,7 @@ public class SourceDirCallGraph { options.setEntrypoints(entrypoints); // you can dial down reflection handling if you like // options.setReflectionOptions(ReflectionOptions.NONE); - AnalysisCache cache = new AnalysisCache(AstIRFactory.makeDefaultFactory()); + AnalysisCache cache = new AnalysisCacheImpl(AstIRFactory.makeDefaultFactory()); //CallGraphBuilder builder = new ZeroCFABuilderFactory().make(options, cache, cha, scope, false); CallGraphBuilder builder = new ZeroOneContainerCFABuilderFactory().make(options, cache, cha, scope, false); System.out.println("building call graph..."); diff --git a/com.ibm.wala.cast.java.ecj/src/com/ibm/wala/cast/java/translator/jdt/ecj/ECJSourceModuleTranslator.java b/com.ibm.wala.cast.java.ecj/src/com/ibm/wala/cast/java/translator/jdt/ecj/ECJSourceModuleTranslator.java index 09cf8ecc5..4c649478d 100644 --- a/com.ibm.wala.cast.java.ecj/src/com/ibm/wala/cast/java/translator/jdt/ecj/ECJSourceModuleTranslator.java +++ b/com.ibm.wala.cast.java.ecj/src/com/ibm/wala/cast/java/translator/jdt/ecj/ECJSourceModuleTranslator.java @@ -71,7 +71,6 @@ import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.types.ClassLoaderReference; import com.ibm.wala.util.collections.HashMapFactory; import com.ibm.wala.util.collections.Pair; -import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.io.TemporaryFile; /** diff --git a/com.ibm.wala.cast.java.test.data/src/Array1.java b/com.ibm.wala.cast.java.test.data/src/Array1.java index 1c6511180..68572fe6e 100644 --- a/com.ibm.wala.cast.java.test.data/src/Array1.java +++ b/com.ibm.wala.cast.java.test.data/src/Array1.java @@ -26,4 +26,4 @@ public class Array1 { sum += ary[j]; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/ArrayLiteral1.java b/com.ibm.wala.cast.java.test.data/src/ArrayLiteral1.java index 166fe58aa..f0f2ea9f0 100644 --- a/com.ibm.wala.cast.java.test.data/src/ArrayLiteral1.java +++ b/com.ibm.wala.cast.java.test.data/src/ArrayLiteral1.java @@ -14,4 +14,4 @@ public class ArrayLiteral1 { int[] a= new int[] { 0, 1, 2, 3, 5 }; Object[] b= new Object[] { null, "hi", new Integer(55), new int[] { 3, 1, 4 } }; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/Breaks.java b/com.ibm.wala.cast.java.test.data/src/Breaks.java index 25e57fe43..7ee0b31c6 100644 --- a/com.ibm.wala.cast.java.test.data/src/Breaks.java +++ b/com.ibm.wala.cast.java.test.data/src/Breaks.java @@ -42,4 +42,4 @@ public class Breaks { (new Breaks()).testBreakFromIf("whatever", new Ref(args)); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/Casts.java b/com.ibm.wala.cast.java.test.data/src/Casts.java index e7a6345aa..dc3271d47 100644 --- a/com.ibm.wala.cast.java.test.data/src/Casts.java +++ b/com.ibm.wala.cast.java.test.data/src/Casts.java @@ -34,4 +34,4 @@ public class Casts { int i2 = i1 + s1; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/FunkySupers.java b/com.ibm.wala.cast.java.test.data/src/FunkySupers.java index 17697e5f4..6c00052c1 100644 --- a/com.ibm.wala.cast.java.test.data/src/FunkySupers.java +++ b/com.ibm.wala.cast.java.test.data/src/FunkySupers.java @@ -35,4 +35,4 @@ class SubFunkySupers extends FunkySupers { //class EE { class X {} } //class Y extends EE.X { Y(EE e) { e.super(); } } -// DOESNT WORK IN POLYGLOT!!! \ No newline at end of file +// DOESNT WORK IN POLYGLOT!!! diff --git a/com.ibm.wala.cast.java.test.data/src/Inheritance1.java b/com.ibm.wala.cast.java.test.data/src/Inheritance1.java index af56df73e..375b3f004 100644 --- a/com.ibm.wala.cast.java.test.data/src/Inheritance1.java +++ b/com.ibm.wala.cast.java.test.data/src/Inheritance1.java @@ -37,4 +37,4 @@ class Derived extends Base { public String bar(int x) { return Integer.toHexString(x); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/InnerClassSuper.java b/com.ibm.wala.cast.java.test.data/src/InnerClassSuper.java index 1d7bbdce7..9ae61e950 100644 --- a/com.ibm.wala.cast.java.test.data/src/InnerClassSuper.java +++ b/com.ibm.wala.cast.java.test.data/src/InnerClassSuper.java @@ -26,4 +26,4 @@ class Sub extends InnerClassSuper { so.test(); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/MiniaturSliceBug.java b/com.ibm.wala.cast.java.test.data/src/MiniaturSliceBug.java index 0e3c9301e..f80645d4b 100644 --- a/com.ibm.wala.cast.java.test.data/src/MiniaturSliceBug.java +++ b/com.ibm.wala.cast.java.test.data/src/MiniaturSliceBug.java @@ -84,4 +84,4 @@ public class MiniaturSliceBug { (new MiniaturSliceBug()).validNonDispatchedCall(new IntWrapper(-1)); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/Scoping1.java b/com.ibm.wala.cast.java.test.data/src/Scoping1.java index be496077a..7212b8ce0 100644 --- a/com.ibm.wala.cast.java.test.data/src/Scoping1.java +++ b/com.ibm.wala.cast.java.test.data/src/Scoping1.java @@ -20,4 +20,4 @@ public class Scoping1 { System.out.println(x); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/Scoping2.java b/com.ibm.wala.cast.java.test.data/src/Scoping2.java index 7e21ccdec..56c14a3a4 100644 --- a/com.ibm.wala.cast.java.test.data/src/Scoping2.java +++ b/com.ibm.wala.cast.java.test.data/src/Scoping2.java @@ -25,4 +25,4 @@ public class Scoping2 { System.out.println(x); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/StaticNesting.java b/com.ibm.wala.cast.java.test.data/src/StaticNesting.java index 3874ee389..894c0a4cc 100644 --- a/com.ibm.wala.cast.java.test.data/src/StaticNesting.java +++ b/com.ibm.wala.cast.java.test.data/src/StaticNesting.java @@ -19,4 +19,4 @@ public class StaticNesting { value= 0; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/alreadywalaunittests/InnerClassAA.java b/com.ibm.wala.cast.java.test.data/src/alreadywalaunittests/InnerClassAA.java index 0496f495f..2bf1aeb6a 100644 --- a/com.ibm.wala.cast.java.test.data/src/alreadywalaunittests/InnerClassAA.java +++ b/com.ibm.wala.cast.java.test.data/src/alreadywalaunittests/InnerClassAA.java @@ -167,4 +167,4 @@ public class InnerClassAA { } } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/alreadywalaunittests/InnerClassSuperA.java b/com.ibm.wala.cast.java.test.data/src/alreadywalaunittests/InnerClassSuperA.java index d02f3c434..90dba1d2f 100644 --- a/com.ibm.wala.cast.java.test.data/src/alreadywalaunittests/InnerClassSuperA.java +++ b/com.ibm.wala.cast.java.test.data/src/alreadywalaunittests/InnerClassSuperA.java @@ -55,4 +55,4 @@ class Sub extends InnerClassSuperA { so.test(); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/javaonepointfive/GenericMemberClasses.java b/com.ibm.wala.cast.java.test.data/src/javaonepointfive/GenericMemberClasses.java index 24b25d1d7..77885944c 100644 --- a/com.ibm.wala.cast.java.test.data/src/javaonepointfive/GenericMemberClasses.java +++ b/com.ibm.wala.cast.java.test.data/src/javaonepointfive/GenericMemberClasses.java @@ -72,4 +72,4 @@ public class GenericMemberClasses System.out.println(x); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/javaonepointfive/NotSoSimpleEnums.java b/com.ibm.wala.cast.java.test.data/src/javaonepointfive/NotSoSimpleEnums.java index 7bf21ad1d..67769c635 100644 --- a/com.ibm.wala.cast.java.test.data/src/javaonepointfive/NotSoSimpleEnums.java +++ b/com.ibm.wala.cast.java.test.data/src/javaonepointfive/NotSoSimpleEnums.java @@ -69,4 +69,4 @@ public class NotSoSimpleEnums { (new NotSoSimpleEnums()).doit(d); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java.test.data/src/p/NonPrimaryTopLevel.java b/com.ibm.wala.cast.java.test.data/src/p/NonPrimaryTopLevel.java index bea506ebb..2ada3e70b 100644 --- a/com.ibm.wala.cast.java.test.data/src/p/NonPrimaryTopLevel.java +++ b/com.ibm.wala.cast.java.test.data/src/p/NonPrimaryTopLevel.java @@ -19,4 +19,4 @@ public class NonPrimaryTopLevel { class Foo { -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/JavaSourceAnalysisEngine.java b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/JavaSourceAnalysisEngine.java index 32dfd8125..20e9f2cee 100644 --- a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/JavaSourceAnalysisEngine.java +++ b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/JavaSourceAnalysisEngine.java @@ -23,10 +23,12 @@ import com.ibm.wala.classLoader.ClassLoaderFactory; import com.ibm.wala.classLoader.Module; import com.ibm.wala.client.AbstractAnalysisEngine; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Util; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.cha.ClassHierarchyException; @@ -148,8 +150,8 @@ public abstract class JavaSourceAnalysisEngine extends Ab } @Override - public AnalysisCache makeDefaultCache() { - return new AnalysisCache(AstIRFactory.makeDefaultFactory()); + public IAnalysisCacheView makeDefaultCache() { + return new AnalysisCacheImpl(AstIRFactory.makeDefaultFactory()); } @Override @@ -170,7 +172,7 @@ public abstract class JavaSourceAnalysisEngine extends Ab } @Override - protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { return new ZeroCFABuilderFactory().make(options, cache, cha, scope, false); } } diff --git a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/impl/ZeroCFABuilderFactory.java b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/impl/ZeroCFABuilderFactory.java index 685a1845c..ab9fa03d1 100644 --- a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/impl/ZeroCFABuilderFactory.java +++ b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/client/impl/ZeroCFABuilderFactory.java @@ -15,6 +15,7 @@ import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Util; import com.ibm.wala.ipa.callgraph.propagation.cfa.ZeroXInstanceKeys; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -26,7 +27,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy; */ public class ZeroCFABuilderFactory { - public CallGraphBuilder make(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, AnalysisScope scope, boolean keepPointsTo) { + public CallGraphBuilder make(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope, boolean keepPointsTo) { Util.addDefaultSelectors(options, cha); Util.addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), cha); return new AstJavaZeroXCFABuilder(cha, options, cache, null, null, ZeroXInstanceKeys.NONE); diff --git a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaCFABuilder.java b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaCFABuilder.java index c8d6039fc..53a952947 100644 --- a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaCFABuilder.java +++ b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaCFABuilder.java @@ -12,6 +12,7 @@ package com.ibm.wala.cast.java.ipa.callgraph; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.cfa.DefaultPointerKeyFactory; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -20,7 +21,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy; */ public class AstJavaCFABuilder extends AstJavaSSAPropagationCallGraphBuilder { - public AstJavaCFABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public AstJavaCFABuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(cha, options, cache, new DefaultPointerKeyFactory()); } diff --git a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaSSAPropagationCallGraphBuilder.java b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaSSAPropagationCallGraphBuilder.java index 08db53547..3f2b82893 100644 --- a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaSSAPropagationCallGraphBuilder.java +++ b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaSSAPropagationCallGraphBuilder.java @@ -25,6 +25,7 @@ import com.ibm.wala.fixpoint.UnaryOperator; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.callgraph.propagation.LocalPointerKey; @@ -42,7 +43,7 @@ import com.ibm.wala.util.strings.Atom; public class AstJavaSSAPropagationCallGraphBuilder extends AstSSAPropagationCallGraphBuilder { - protected AstJavaSSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, + protected AstJavaSSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, PointerKeyFactory pointerKeyFactory) { super(cha, options, cache, pointerKeyFactory); } diff --git a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaZeroXCFABuilder.java b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaZeroXCFABuilder.java index 8d6ded55e..a70f8430c 100644 --- a/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaZeroXCFABuilder.java +++ b/com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaZeroXCFABuilder.java @@ -14,6 +14,7 @@ import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.ContextSelector; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.DefaultContextSelector; import com.ibm.wala.ipa.callgraph.impl.DelegatingContextSelector; import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter; @@ -25,7 +26,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy; */ public class AstJavaZeroXCFABuilder extends AstJavaCFABuilder { - public AstJavaZeroXCFABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, + public AstJavaZeroXCFABuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter, int instancePolicy) { super(cha, options, cache); diff --git a/com.ibm.wala.cast.js.html.nu_validator/src/com/ibm/wala/cast/js/html/nu_validator/NuValidatorHtmlParser.java b/com.ibm.wala.cast.js.html.nu_validator/src/com/ibm/wala/cast/js/html/nu_validator/NuValidatorHtmlParser.java index 2e3164ceb..048ff5ec6 100644 --- a/com.ibm.wala.cast.js.html.nu_validator/src/com/ibm/wala/cast/js/html/nu_validator/NuValidatorHtmlParser.java +++ b/com.ibm.wala.cast.js.html.nu_validator/src/com/ibm/wala/cast/js/html/nu_validator/NuValidatorHtmlParser.java @@ -23,9 +23,6 @@ import java.util.Map; import java.util.Set; import java.util.Stack; -import nu.validator.htmlparser.common.XmlViolationPolicy; -import nu.validator.htmlparser.sax.HtmlParser; - import org.xml.sax.Attributes; import org.xml.sax.ContentHandler; import org.xml.sax.InputSource; @@ -39,6 +36,9 @@ import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position; import com.ibm.wala.cast.tree.impl.LineNumberPosition; import com.ibm.wala.util.collections.Pair; +import nu.validator.htmlparser.common.XmlViolationPolicy; +import nu.validator.htmlparser.sax.HtmlParser; + public class NuValidatorHtmlParser implements IHtmlParser { @Override diff --git a/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/examples/hybrid/Driver.java b/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/examples/hybrid/Driver.java index 4d4fb1945..2218cffe2 100644 --- a/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/examples/hybrid/Driver.java +++ b/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/examples/hybrid/Driver.java @@ -18,6 +18,7 @@ import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.classLoader.Language; import com.ibm.wala.classLoader.SourceURLModule; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.Entrypoint; @@ -34,7 +35,7 @@ import com.ibm.wala.util.strings.Atom; public class Driver { - public static void addDefaultDispatchLogic(AnalysisOptions options, AnalysisScope scope, IClassHierarchy cha) { + public static void addDefaultDispatchLogic(AnalysisOptions options, AnalysisScope scope, IClassHierarchy cha, AnalysisCache cache) { com.ibm.wala.ipa.callgraph.impl.Util.addDefaultSelectors(options, cha); Map methodTargetSelectors = HashMapFactory.make(); @@ -77,11 +78,11 @@ public class Driver { AnalysisOptions options = new AnalysisOptions(scope, roots); - addDefaultDispatchLogic(options, scope, cha); - IRFactory factory = AstIRFactory.makeDefaultFactory(); - AnalysisCache cache = new AnalysisCache(factory); + AnalysisCache cache = new AnalysisCacheImpl(factory); + + addDefaultDispatchLogic(options, scope, cha, cache); JavaJavaScriptHybridCallGraphBuilder b = new JavaJavaScriptHybridCallGraphBuilder(cha, options, cache); diff --git a/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/AbstractFieldBasedTest.java b/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/AbstractFieldBasedTest.java index a94f2cf40..da1081418 100644 --- a/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/AbstractFieldBasedTest.java +++ b/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/AbstractFieldBasedTest.java @@ -5,16 +5,14 @@ import java.net.URL; import java.util.Map; import java.util.Set; -import junit.framework.AssertionFailedError; - import org.junit.Before; import com.ibm.wala.cast.ir.translator.TranslatorToCAst.Error; import com.ibm.wala.cast.js.html.DefaultSourceExtractor; import com.ibm.wala.cast.js.ipa.callgraph.JSCallGraph; import com.ibm.wala.cast.js.test.FieldBasedCGUtil; -import com.ibm.wala.cast.js.test.TestJSCallGraphShape; import com.ibm.wala.cast.js.test.FieldBasedCGUtil.BuilderType; +import com.ibm.wala.cast.js.test.TestJSCallGraphShape; import com.ibm.wala.cast.js.translator.CAstRhinoTranslatorFactory; import com.ibm.wala.cast.js.util.CallGraph2JSON; import com.ibm.wala.util.CancelException; @@ -22,6 +20,8 @@ import com.ibm.wala.util.NullProgressMonitor; import com.ibm.wala.util.ProgressMaster; import com.ibm.wala.util.WalaException; +import junit.framework.AssertionFailedError; + public abstract class AbstractFieldBasedTest extends TestJSCallGraphShape { protected FieldBasedCGUtil util; @@ -66,8 +66,7 @@ public abstract class AbstractFieldBasedTest extends TestJSCallGraphShape { } } - @SuppressWarnings("unused") - private void dumpCG(JSCallGraph cg) { + protected void dumpCG(JSCallGraph cg) { CallGraph2JSON.IGNORE_HARNESS = false; Map> edges = CallGraph2JSON.extractEdges(cg); for(String callsite : edges.keySet()) @@ -75,4 +74,4 @@ public abstract class AbstractFieldBasedTest extends TestJSCallGraphShape { System.out.println(callsite + " -> " + callee); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/FieldBasedCGGamesTest.java b/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/FieldBasedCGGamesTest.java index 1b9925bce..d7699d274 100644 --- a/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/FieldBasedCGGamesTest.java +++ b/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/FieldBasedCGGamesTest.java @@ -18,10 +18,12 @@ public class FieldBasedCGGamesTest extends AbstractFieldBasedTest { runTestExceptOnTravis(new URL("http://www.themaninblue.com/experiment/BunnyHunt/"), new Object[][]{}, BuilderType.OPTIMISTIC_WORKLIST); } + /* @Test public void testBomberman() throws IOException, WalaException, Error, CancelException { runTestExceptOnTravis(new URL("http://www.e-forum.ro/bomberman/dynagame.html"), new Object[][]{}, BuilderType.OPTIMISTIC_WORKLIST); } + */ @Test public void testBeslimed() throws IOException, WalaException, Error, CancelException { @@ -34,11 +36,13 @@ public class FieldBasedCGGamesTest extends AbstractFieldBasedTest { runTestExceptOnTravis(new URL("http://www.pixastic.com/labs/digg_attack/"), new Object[][]{}, BuilderType.OPTIMISTIC_WORKLIST); } + @Ignore @Test public void testRiverRaider() throws IOException, WalaException, Error, CancelException { runTestExceptOnTravis(new URL("http://playstar.mobi/games/riverraider/index.html?playerId=&gameId=8&highscore=102425"), new Object[][]{}, BuilderType.OPTIMISTIC_WORKLIST); } + @Ignore @Test public void testSolitaire() throws IOException, WalaException, Error, CancelException { runTestExceptOnTravis(new URL("http://www.inmensia.com/files/solitaire1.0.html"), new Object[][]{}, BuilderType.OPTIMISTIC_WORKLIST); @@ -53,6 +57,7 @@ public class FieldBasedCGGamesTest extends AbstractFieldBasedTest { } } + @Ignore @Test public void testMinesweeper() throws IOException, WalaException, Error, CancelException { runTestExceptOnTravis(new URL("http://www.inmensia.com/files/minesweeper1.0.html"), new Object[][]{}, BuilderType.OPTIMISTIC_WORKLIST); diff --git a/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/FieldBasedComparisonTest.java b/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/FieldBasedComparisonTest.java index d2c55bbf2..7a82577e9 100644 --- a/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/FieldBasedComparisonTest.java +++ b/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/callgraph/fieldbased/test/FieldBasedComparisonTest.java @@ -2,17 +2,17 @@ package com.ibm.wala.cast.js.rhino.callgraph.fieldbased.test; import java.io.IOException; -import junit.framework.AssertionFailedError; - import org.junit.Test; import com.ibm.wala.cast.ir.translator.TranslatorToCAst.Error; import com.ibm.wala.cast.js.html.JSSourceExtractor; -import com.ibm.wala.cast.js.test.TestSimplePageCallGraphShape; import com.ibm.wala.cast.js.test.FieldBasedCGUtil.BuilderType; +import com.ibm.wala.cast.js.test.TestSimplePageCallGraphShape; import com.ibm.wala.util.CancelException; import com.ibm.wala.util.WalaException; +import junit.framework.AssertionFailedError; + public class FieldBasedComparisonTest extends AbstractFieldBasedTest { private void test(String file, Object[][] assertions, BuilderType builderType) throws IOException, WalaException, Error, CancelException { diff --git a/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/test/HTMLCGBuilder.java b/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/test/HTMLCGBuilder.java index 91c5efadb..c361b93c3 100644 --- a/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/test/HTMLCGBuilder.java +++ b/com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/rhino/test/HTMLCGBuilder.java @@ -17,8 +17,6 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.Properties; -import junit.framework.Assert; - import com.ibm.wala.cast.js.html.DefaultSourceExtractor; import com.ibm.wala.cast.js.html.JSSourceExtractor; import com.ibm.wala.cast.js.ipa.callgraph.JSCFABuilder; @@ -40,6 +38,8 @@ import com.ibm.wala.util.io.CommandLine; import com.ibm.wala.util.io.FileProvider; import com.ibm.wala.util.io.FileUtil; +import junit.framework.Assert; + /** * Utility class for building call graphs of HTML pages. * diff --git a/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoLoopUnwindingTranslatorFactory.java b/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoLoopUnwindingTranslatorFactory.java index 16966dcef..dad2250b0 100755 --- a/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoLoopUnwindingTranslatorFactory.java +++ b/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoLoopUnwindingTranslatorFactory.java @@ -11,7 +11,6 @@ package com.ibm.wala.cast.js.translator; import com.ibm.wala.cast.ir.translator.TranslatorToCAst; -import com.ibm.wala.cast.js.translator.JavaScriptLoopUnwindingTranslatorFactory; import com.ibm.wala.cast.tree.CAst; import com.ibm.wala.classLoader.SourceModule; diff --git a/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoTranslator.java b/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoTranslator.java index 71b9ef935..410ae8eb5 100644 --- a/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoTranslator.java +++ b/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoTranslator.java @@ -13,19 +13,10 @@ package com.ibm.wala.cast.js.translator; import com.ibm.wala.cast.ir.translator.RewritingTranslatorToCAst; import com.ibm.wala.cast.ir.translator.TranslatorToCAst; import com.ibm.wala.cast.tree.impl.CAstImpl; -import com.ibm.wala.classLoader.SourceFileModule; -import com.ibm.wala.classLoader.SourceModule; +import com.ibm.wala.classLoader.ModuleEntry; public class CAstRhinoTranslator extends RewritingTranslatorToCAst implements TranslatorToCAst { - private static String getName(SourceModule M) { - if (M instanceof SourceFileModule) { - return ((SourceFileModule) M).getClassName(); - } else { - return M.getName(); - } - } - - public CAstRhinoTranslator(SourceModule M, boolean replicateForDoLoops) { - super(M, new RhinoToAstTranslator(new CAstImpl(), M, getName(M), replicateForDoLoops)); + public CAstRhinoTranslator(ModuleEntry m, boolean replicateForDoLoops) { + super(m, new RhinoToAstTranslator(new CAstImpl(), m, m.getName(), replicateForDoLoops)); } } diff --git a/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoTranslatorFactory.java b/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoTranslatorFactory.java index 9af82b065..caaabb732 100644 --- a/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoTranslatorFactory.java +++ b/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/CAstRhinoTranslatorFactory.java @@ -12,12 +12,12 @@ package com.ibm.wala.cast.js.translator; import com.ibm.wala.cast.ir.translator.TranslatorToCAst; import com.ibm.wala.cast.tree.CAst; -import com.ibm.wala.classLoader.SourceModule; +import com.ibm.wala.classLoader.ModuleEntry; public class CAstRhinoTranslatorFactory implements JavaScriptTranslatorFactory { @Override - public TranslatorToCAst make(CAst ast, SourceModule M) { + public TranslatorToCAst make(CAst ast, ModuleEntry M) { return new CAstRhinoTranslator(M, false); } } diff --git a/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/RhinoToAstTranslator.java b/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/RhinoToAstTranslator.java index f235e78f0..29da21f65 100755 --- a/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/RhinoToAstTranslator.java +++ b/com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/RhinoToAstTranslator.java @@ -11,6 +11,7 @@ package com.ibm.wala.cast.js.translator; import java.io.IOException; +import java.io.InputStreamReader; import java.io.Reader; import java.net.URL; import java.util.ArrayList; @@ -90,7 +91,6 @@ import org.mozilla.javascript.ast.XmlString; import org.mozilla.javascript.ast.Yield; import com.ibm.wala.cast.ir.translator.TranslatorToCAst; -import com.ibm.wala.cast.ir.translator.TranslatorToCAst.DoLoopTranslator; import com.ibm.wala.cast.js.html.MappedSourceModule; import com.ibm.wala.cast.js.ipa.callgraph.JSSSAPropagationCallGraphBuilder; import com.ibm.wala.cast.js.loader.JavaScriptLoader; @@ -113,6 +113,7 @@ import com.ibm.wala.cast.tree.rewrite.CAstRewriter.RewriteContext; import com.ibm.wala.cast.tree.rewrite.CAstRewriterFactory; import com.ibm.wala.cast.tree.visit.CAstVisitor; import com.ibm.wala.cast.util.CAstPattern; +import com.ibm.wala.classLoader.ModuleEntry; import com.ibm.wala.classLoader.SourceModule; import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.collections.HashMapFactory; @@ -539,7 +540,7 @@ public class RhinoToAstTranslator implements TranslatorToCAst { } private Position makePosition(AstNode n) { - URL url = sourceModule.getURL(); + URL url = ((SourceModule)sourceModule).getURL(); int line = n.getLineno(); Position pos = new RangePosition(url, line, n.getAbsolutePosition(), n.getAbsolutePosition()+n.getLength()); @@ -2426,7 +2427,7 @@ private CAstNode[] walkChildren(final Node n, WalkContext context) { private final String scriptName; - private final SourceModule sourceModule; + private final ModuleEntry sourceModule; final private Reader sourceReader; @@ -2434,11 +2435,11 @@ private CAstNode[] walkChildren(final Node n, WalkContext context) { private final DoLoopTranslator doLoopTranslator; - public RhinoToAstTranslator(CAst Ast, SourceModule M, String scriptName, boolean replicateForDoLoops) { + public RhinoToAstTranslator(CAst Ast, ModuleEntry m, String scriptName, boolean replicateForDoLoops) { this.Ast = Ast; this.scriptName = scriptName; - this.sourceModule = M; - this.sourceReader = sourceModule.getInputReader(); + this.sourceModule = m; + this.sourceReader = new InputStreamReader(sourceModule.getInputStream()); this.doLoopTranslator = new DoLoopTranslator(replicateForDoLoops, Ast); } diff --git a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/FieldBasedCGUtil.java b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/FieldBasedCGUtil.java index c570b146c..332db80b8 100644 --- a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/FieldBasedCGUtil.java +++ b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/FieldBasedCGUtil.java @@ -31,9 +31,11 @@ import com.ibm.wala.cast.js.loader.JavaScriptLoader; import com.ibm.wala.cast.js.loader.JavaScriptLoaderFactory; import com.ibm.wala.cast.js.translator.JavaScriptTranslatorFactory; import com.ibm.wala.cast.js.util.Util; +import com.ibm.wala.classLoader.Module; import com.ibm.wala.classLoader.SourceModule; import com.ibm.wala.classLoader.SourceURLModule; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.Entrypoint; import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; import com.ibm.wala.ipa.cha.ClassHierarchyFactory; @@ -74,7 +76,7 @@ public class FieldBasedCGUtil { public Pair> buildScriptCG(URL url, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis) throws IOException, WalaException, CancelException { JavaScriptLoaderFactory loaders = new JavaScriptLoaderFactory(translatorFactory); - SourceModule[] scripts = new SourceModule[]{ + Module[] scripts = new Module[]{ new SourceURLModule(url), JSCallGraphBuilderUtil.getPrologueFile("prologue.js") }; @@ -83,7 +85,7 @@ public class FieldBasedCGUtil { public Pair> buildTestCG(String dir, String name, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis) throws IOException, WalaException, CancelException { JavaScriptLoaderFactory loaders = new JavaScriptLoaderFactory(translatorFactory); - SourceModule[] scripts = JSCallGraphBuilderUtil.makeSourceModules(dir, name); + Module[] scripts = JSCallGraphBuilderUtil.makeSourceModules(dir, name); return buildCG(loaders, scripts, builderType, monitor, supportFullPointerAnalysis); } @@ -93,14 +95,14 @@ public class FieldBasedCGUtil { return buildCG(loaders, scripts, builderType, monitor, supportFullPointerAnalysis); } - public Pair> buildCG(JavaScriptLoaderFactory loaders, SourceModule[] scripts, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis) throws IOException, WalaException, CancelException { + public Pair> buildCG(JavaScriptLoaderFactory loaders, Module[] scripts, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis) throws IOException, WalaException, CancelException { CAstAnalysisScope scope = new CAstAnalysisScope(scripts, loaders, Collections.singleton(JavaScriptLoader.JS)); IClassHierarchy cha = ClassHierarchyFactory.make(scope, loaders, JavaScriptLoader.JS); Util.checkForFrontEndErrors(cha); Iterable roots = JSCallGraphUtil.makeScriptRoots(cha); FieldBasedCallGraphBuilder builder = null; - AnalysisCache cache = new AnalysisCache(AstIRFactory.makeDefaultFactory()); + AnalysisCache cache = new AnalysisCacheImpl(AstIRFactory.makeDefaultFactory()); switch(builderType) { case PESSIMISTIC: builder = new PessimisticCallGraphBuilder(cha, JSCallGraphUtil.makeOptions(scope, cha, roots), cache, supportFullPointerAnalysis); diff --git a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/JSCallGraphBuilderUtil.java b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/JSCallGraphBuilderUtil.java index 2abd54099..4ee76a712 100755 --- a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/JSCallGraphBuilderUtil.java +++ b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/JSCallGraphBuilderUtil.java @@ -33,10 +33,10 @@ import com.ibm.wala.cast.js.ipa.callgraph.PropertyNameContextSelector; import com.ibm.wala.cast.js.ipa.callgraph.correlations.extraction.CorrelatedPairExtractorFactory; import com.ibm.wala.cast.js.loader.JavaScriptLoader; import com.ibm.wala.cast.js.loader.JavaScriptLoaderFactory; -import com.ibm.wala.cast.js.test.JSCallGraphBuilderUtil.CGBuilderType; import com.ibm.wala.cast.loader.CAstAbstractLoader; import com.ibm.wala.cast.tree.rewrite.CAstRewriterFactory; import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.classLoader.Module; import com.ibm.wala.classLoader.SourceModule; import com.ibm.wala.classLoader.SourceURLModule; import com.ibm.wala.ipa.callgraph.AnalysisCache; @@ -123,13 +123,13 @@ public class JSCallGraphBuilderUtil extends com.ibm.wala.cast.js.ipa.callgraph.J return makeScope(makeSourceModules(dir, name, JSCallGraphBuilderUtil.class.getClassLoader()), loaders, JavaScriptLoader.JS); } - public static SourceModule[] makeSourceModules(String dir, String name) throws IOException { + public static Module[] makeSourceModules(String dir, String name) throws IOException { return makeSourceModules(dir, name, JSCallGraphBuilderUtil.class.getClassLoader()); } - public static SourceModule[] makeSourceModules(String dir, String name, ClassLoader loader) throws IOException { + public static Module[] makeSourceModules(String dir, String name, ClassLoader loader) throws IOException { URL script = getURLforFile(dir, name, loader); - SourceModule[] modules = new SourceModule[] { + Module[] modules = new Module[] { (script.openConnection() instanceof JarURLConnection)? new SourceURLModule(script): makeSourceModule(script, dir, name), getPrologueFile("prologue.js") }; @@ -187,7 +187,7 @@ public class JSCallGraphBuilderUtil extends com.ibm.wala.cast.js.ipa.callgraph.J } public static SourceModule[] makeHtmlScope(URL url, JavaScriptLoaderFactory loaders, Function fExtractor) { - Set scripts = HashSetFactory.make(); + Set scripts = HashSetFactory.make(); JavaScriptLoader.addBootstrapFile(WebUtil.preamble); scripts.add(getPrologueFile("prologue.js")); diff --git a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestArgumentSensitivity.java b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestArgumentSensitivity.java index df4e6b86f..d48adbefe 100644 --- a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestArgumentSensitivity.java +++ b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestArgumentSensitivity.java @@ -34,12 +34,12 @@ import com.ibm.wala.util.WalaException; public abstract class TestArgumentSensitivity extends TestJSCallGraphShape { protected static final Object[][] assertionsForArgs = new Object[][] { - new Object[] { ROOT, new String[] { "tests/args.js" } }, + new Object[] { ROOT, new String[] { "args.js" } }, new Object[] { - "tests/args.js", - new String[] { "tests/args.js/a" } }, - new Object[] { "tests/args.js/a", new String[] { "tests/args.js/x"} }, - new Object[] { "tests/args.js/a", new String[] { "tests/args.js/y", "tests/args.js/z", "!tests/args.js/wrong" } } }; + "args.js", + new String[] { "args.js/a" } }, + new Object[] { "args.js/a", new String[] { "args.js/x"} }, + new Object[] { "args.js/a", new String[] { "args.js/y", "args.js/z", "!args.js/wrong" } } }; @Test public void testArgs() throws IOException, IllegalArgumentException, CancelException, ClassHierarchyException, WalaException { JavaScriptLoaderFactory loaders = JSCallGraphUtil.makeLoaders(null); diff --git a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestForInLoopHack.java b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestForInLoopHack.java index 1c71ab767..1e5752787 100755 --- a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestForInLoopHack.java +++ b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestForInLoopHack.java @@ -70,19 +70,19 @@ public abstract class TestForInLoopHack extends TestJSCallGraphShape { private static final Object[][] assertionsForBadForin = new Object[][] { new Object[] { ROOT, - new String[] { "tests/badforin.js" } }, - new Object[] { "tests/badforin.js", - new String[] { "tests/badforin.js/testForIn", "tests/badforin.js/_check_obj_foo", "tests/badforin.js/_check_obj_bar", "tests/badforin.js/_check_copy_foo", "tests/badforin.js/_check_copy_bar"} }, - new Object[] { "tests/badforin.js/testForIn", - new String[] { "tests/badforin.js/testForIn1", "tests/badforin.js/testForIn2" } }, - new Object[] { "tests/badforin.js/_check_obj_foo", - new String[] { "tests/badforin.js/testForIn1" } }, - new Object[] { "tests/badforin.js/_check_copy_foo", - new String[] { "tests/badforin.js/testForIn1" } }, - new Object[] { "tests/badforin.js/_check_obj_bar", - new String[] { "tests/badforin.js/testForIn2" } }, - new Object[] { "tests/badforin.js/_check_copy_bar", - new String[] { "tests/badforin.js/testForIn2" } } + new String[] { "badforin.js" } }, + new Object[] { "badforin.js", + new String[] { "badforin.js/testForIn", "badforin.js/_check_obj_foo", "badforin.js/_check_obj_bar", "badforin.js/_check_copy_foo", "badforin.js/_check_copy_bar"} }, + new Object[] { "badforin.js/testForIn", + new String[] { "badforin.js/testForIn1", "badforin.js/testForIn2" } }, + new Object[] { "badforin.js/_check_obj_foo", + new String[] { "badforin.js/testForIn1" } }, + new Object[] { "badforin.js/_check_copy_foo", + new String[] { "badforin.js/testForIn1" } }, + new Object[] { "badforin.js/_check_obj_bar", + new String[] { "badforin.js/testForIn2" } }, + new Object[] { "badforin.js/_check_copy_bar", + new String[] { "badforin.js/testForIn2" } } }; @Test public void testBadForInWithoutHack() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -93,14 +93,14 @@ public abstract class TestForInLoopHack extends TestJSCallGraphShape { } private static final Object[][] assertionsForBadForinHackPrecision = new Object[][] { - new Object[] { "tests/badforin.js/_check_obj_foo", - new String[] { "!tests/badforin.js/testForIn2" } }, - new Object[] { "tests/badforin.js/_check_copy_foo", - new String[] { "!tests/badforin.js/testForIn2" } }, - new Object[] { "tests/badforin.js/_check_obj_bar", - new String[] { "!tests/badforin.js/testForIn1" } }, - new Object[] { "tests/badforin.js/_check_copy_bar", - new String[] { "!tests/badforin.js/testForIn1" } } + new Object[] { "badforin.js/_check_obj_foo", + new String[] { "!badforin.js/testForIn2" } }, + new Object[] { "badforin.js/_check_copy_foo", + new String[] { "!badforin.js/testForIn2" } }, + new Object[] { "badforin.js/_check_obj_bar", + new String[] { "!badforin.js/testForIn1" } }, + new Object[] { "badforin.js/_check_copy_bar", + new String[] { "!badforin.js/testForIn1" } } }; @Test public void testBadForInWithHack() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -114,19 +114,19 @@ public abstract class TestForInLoopHack extends TestJSCallGraphShape { private static final Object[][] assertionsForbadforin2 = new Object[][] { new Object[] { ROOT, - new String[] { "tests/badforin2.js" } }, - new Object[] { "tests/badforin2.js", - new String[] { "tests/badforin2.js/testForIn", "tests/badforin2.js/_check_obj_foo", "tests/badforin2.js/_check_obj_bar", "tests/badforin2.js/_check_copy_foo", "tests/badforin2.js/_check_copy_bar"} }, - new Object[] { "tests/badforin2.js/testForIn", - new String[] { "tests/badforin2.js/testForIn1", "tests/badforin2.js/testForIn2" } }, - new Object[] { "tests/badforin2.js/_check_obj_foo", - new String[] { "tests/badforin2.js/testForIn1" } }, - new Object[] { "tests/badforin2.js/_check_copy_foo", - new String[] { "tests/badforin2.js/testForIn1" } }, - new Object[] { "tests/badforin2.js/_check_obj_bar", - new String[] { "tests/badforin2.js/testForIn2" } }, - new Object[] { "tests/badforin2.js/_check_copy_bar", - new String[] { "tests/badforin2.js/testForIn2" } } + new String[] { "badforin2.js" } }, + new Object[] { "badforin2.js", + new String[] { "badforin2.js/testForIn", "badforin2.js/_check_obj_foo", "badforin2.js/_check_obj_bar", "badforin2.js/_check_copy_foo", "badforin2.js/_check_copy_bar"} }, + new Object[] { "badforin2.js/testForIn", + new String[] { "badforin2.js/testForIn1", "badforin2.js/testForIn2" } }, + new Object[] { "badforin2.js/_check_obj_foo", + new String[] { "badforin2.js/testForIn1" } }, + new Object[] { "badforin2.js/_check_copy_foo", + new String[] { "badforin2.js/testForIn1" } }, + new Object[] { "badforin2.js/_check_obj_bar", + new String[] { "badforin2.js/testForIn2" } }, + new Object[] { "badforin2.js/_check_copy_bar", + new String[] { "badforin2.js/testForIn2" } } }; @Test public void testbadforin2WithoutHack() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -137,14 +137,14 @@ public abstract class TestForInLoopHack extends TestJSCallGraphShape { } private static final Object[][] assertionsForbadforin2HackPrecision = new Object[][] { - new Object[] { "tests/badforin2.js/_check_obj_foo", - new String[] { "!tests/badforin2.js/testForIn2" } }, - new Object[] { "tests/badforin2.js/_check_copy_foo", - new String[] { "!tests/badforin2.js/testForIn2" } }, - new Object[] { "tests/badforin2.js/_check_obj_bar", - new String[] { "!tests/badforin2.js/testForIn1" } }, - new Object[] { "tests/badforin2.js/_check_copy_bar", - new String[] { "!tests/badforin2.js/testForIn1" } } + new Object[] { "badforin2.js/_check_obj_foo", + new String[] { "!badforin2.js/testForIn2" } }, + new Object[] { "badforin2.js/_check_copy_foo", + new String[] { "!badforin2.js/testForIn2" } }, + new Object[] { "badforin2.js/_check_obj_bar", + new String[] { "!badforin2.js/testForIn1" } }, + new Object[] { "badforin2.js/_check_copy_bar", + new String[] { "!badforin2.js/testForIn1" } } }; @Test public void testbadforin2WithHack() throws IOException, IllegalArgumentException, CancelException, WalaException { diff --git a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestPointerAnalyses.java b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestPointerAnalyses.java index d9101bab2..33283d4b4 100644 --- a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestPointerAnalyses.java +++ b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestPointerAnalyses.java @@ -396,4 +396,4 @@ public abstract class TestPointerAnalyses { public void testInherit() throws IOException, WalaException, CancelException { testTestScript("tests", "inherit.js", nameFilter("tests/inherit.js"), new CheckPointers()); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java index c58656b67..68ba40974 100755 --- a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java +++ b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java @@ -19,7 +19,6 @@ import org.junit.Test; import com.ibm.wala.cast.ipa.callgraph.CAstCallGraphUtil; import com.ibm.wala.cast.js.ipa.callgraph.JSCFABuilder; -import com.ibm.wala.cast.js.ipa.callgraph.JSCallGraphUtil; import com.ibm.wala.cast.js.ipa.callgraph.PropertyNameContextSelector; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; @@ -39,11 +38,11 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } protected static final Object[][] assertionsForArgs = new Object[][] { - new Object[] { ROOT, new String[] { "tests/args.js" } }, + new Object[] { ROOT, new String[] { "args.js" } }, new Object[] { - "tests/args.js", - new String[] { "tests/args.js/a" } }, - new Object[] { "tests/args.js/a", new String[] { "tests/args.js/x", "tests/args.js/y" } } }; + "args.js", + new String[] { "args.js/a" } }, + new Object[] { "args.js/a", new String[] { "args.js/x", "args.js/y" } } }; @Test public void testArgs() throws IOException, IllegalArgumentException, CancelException, WalaException { CallGraph CG = JSCallGraphBuilderUtil.makeScriptCG("tests", "args.js"); @@ -51,16 +50,16 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } protected static final Object[][] assertionsForSimple = new Object[][] { - new Object[] { ROOT, new String[] { "tests/simple.js" } }, + new Object[] { ROOT, new String[] { "simple.js" } }, new Object[] { - "tests/simple.js", - new String[] { "tests/simple.js/bad", "tests/simple.js/silly", "tests/simple.js/fib", "tests/simple.js/stranger", - "tests/simple.js/trivial", "tests/simple.js/rubbish", "tests/simple.js/weirder" } }, - new Object[] { "tests/simple.js/trivial", new String[] { "tests/simple.js/trivial/inc" } }, - new Object[] { "tests/simple.js/rubbish", - new String[] { "tests/simple.js/weirder", "tests/simple.js/stranger", "tests/simple.js/rubbish" } }, - new Object[] { "tests/simple.js/fib", new String[] { "tests/simple.js/fib" } }, - new Object[] { "tests/simple.js/weirder", new String[] { "prologue.js/Math_abs" } } }; + "simple.js", + new String[] { "simple.js/bad", "simple.js/silly", "simple.js/fib", "simple.js/stranger", + "simple.js/trivial", "simple.js/rubbish", "simple.js/weirder" } }, + new Object[] { "simple.js/trivial", new String[] { "simple.js/trivial/inc" } }, + new Object[] { "simple.js/rubbish", + new String[] { "simple.js/weirder", "simple.js/stranger", "simple.js/rubbish" } }, + new Object[] { "simple.js/fib", new String[] { "simple.js/fib" } }, + new Object[] { "simple.js/weirder", new String[] { "prologue.js/Math_abs" } } }; @Test public void testSimple() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -69,12 +68,12 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForObjects = new Object[][] { - new Object[] { ROOT, new String[] { "tests/objects.js" } }, - new Object[] { "tests/objects.js", - new String[] { "tests/objects.js/objects_are_fun", "tests/objects.js/other", "tests/objects.js/something" } }, - new Object[] { "tests/objects.js/other", - new String[] { "tests/objects.js/something", "tests/objects.js/objects_are_fun/nothing" } }, - new Object[] { "tests/objects.js/objects_are_fun", new String[] { "tests/objects.js/other", "tests/objects.js/whatever" } } }; + new Object[] { ROOT, new String[] { "objects.js" } }, + new Object[] { "objects.js", + new String[] { "objects.js/objects_are_fun", "objects.js/other", "objects.js/something" } }, + new Object[] { "objects.js/other", + new String[] { "objects.js/something", "objects.js/objects_are_fun/nothing" } }, + new Object[] { "objects.js/objects_are_fun", new String[] { "objects.js/other", "objects.js/whatever" } } }; @Test public void testObjects() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -83,34 +82,34 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] cfgAssertionsForInherit = new Object[][] { - new Object[]{"ctor:tests/inherit.js/objectMasquerading/Rectangle", + new Object[]{"ctor:inherit.js/objectMasquerading/Rectangle", new int[][]{{1,7},{2},{3,7},{4,7},{5,6},{7},{7}} }, - new Object[]{"ctor:tests/inherit.js/sharedClassObject/Rectangle", + new Object[]{"ctor:inherit.js/sharedClassObject/Rectangle", new int[][]{{1,7},{2},{3,7},{4,7},{5,6},{7},{7}} } }; private static final Object[][] assertionsForInherit = new Object[][] { - new Object[] { ROOT, new String[] { "tests/inherit.js" } }, + new Object[] { ROOT, new String[] { "inherit.js" } }, new Object[] { - "tests/inherit.js", - new String[] { "tests/inherit.js/objectMasquerading", "tests/inherit.js/objectMasquerading/Rectangle/area", - "tests/inherit.js/Polygon/shape", "tests/inherit.js/sharedClassObject", - "tests/inherit.js/sharedClassObject/Rectangle/area" } }, + "inherit.js", + new String[] { "inherit.js/objectMasquerading", "inherit.js/objectMasquerading/Rectangle/area", + "inherit.js/Polygon/shape", "inherit.js/sharedClassObject", + "inherit.js/sharedClassObject/Rectangle/area" } }, new Object[]{ - "tests/inherit.js/objectMasquerading", - new String[]{"ctor:tests/inherit.js/objectMasquerading/Rectangle"}}, + "inherit.js/objectMasquerading", + new String[]{"ctor:inherit.js/objectMasquerading/Rectangle"}}, new Object[]{ - "ctor:tests/inherit.js/objectMasquerading/Rectangle" , - new String[]{"tests/inherit.js/objectMasquerading/Rectangle"}}, - new Object[]{"tests/inherit.js/objectMasquerading/Rectangle", - new String[]{"tests/inherit.js/Polygon"}}, + "ctor:inherit.js/objectMasquerading/Rectangle" , + new String[]{"inherit.js/objectMasquerading/Rectangle"}}, + new Object[]{"inherit.js/objectMasquerading/Rectangle", + new String[]{"inherit.js/Polygon"}}, new Object[]{ - "tests/inherit.js/sharedClassObject", - new String[]{"ctor:tests/inherit.js/sharedClassObject/Rectangle"}}, - new Object[]{"ctor:tests/inherit.js/sharedClassObject/Rectangle", - new String[]{"tests/inherit.js/sharedClassObject/Rectangle"}} + "inherit.js/sharedClassObject", + new String[]{"ctor:inherit.js/sharedClassObject/Rectangle"}}, + new Object[]{"ctor:inherit.js/sharedClassObject/Rectangle", + new String[]{"inherit.js/sharedClassObject/Rectangle"}} }; @Test @@ -121,8 +120,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForNewfn = new Object[][] { - new Object[] { ROOT, new String[] { "tests/newfn.js" } }, - new Object[] { "tests/newfn.js", + new Object[] { ROOT, new String[] { "newfn.js" } }, + new Object[] { "newfn.js", new String[] { "suffix:ctor$1/_fromctor", "suffix:ctor$2/_fromctor", "suffix:ctor$3/_fromctor" } } }; @Test @@ -132,11 +131,11 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForControlflow = new Object[][] { - new Object[] { ROOT, new String[] { "tests/control-flow.js" } }, + new Object[] { ROOT, new String[] { "control-flow.js" } }, new Object[] { - "tests/control-flow.js", - new String[] { "tests/control-flow.js/testSwitch", "tests/control-flow.js/testDoWhile", - "tests/control-flow.js/testWhile", "tests/control-flow.js/testFor", "tests/control-flow.js/testReturn" } } }; + "control-flow.js", + new String[] { "control-flow.js/testSwitch", "control-flow.js/testDoWhile", + "control-flow.js/testWhile", "control-flow.js/testFor", "control-flow.js/testReturn" } } }; @Test public void testControlflow() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -145,12 +144,12 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForMoreControlflow = new Object[][] { - new Object[] { ROOT, new String[] { "tests/more-control-flow.js" } }, + new Object[] { ROOT, new String[] { "more-control-flow.js" } }, new Object[] { - "tests/more-control-flow.js", - new String[] { "tests/more-control-flow.js/testSwitch", "tests/more-control-flow.js/testIfConvertedSwitch", - "tests/more-control-flow.js/testDoWhile", "tests/more-control-flow.js/testWhile", - "tests/more-control-flow.js/testFor", "tests/more-control-flow.js/testReturn" } } }; + "more-control-flow.js", + new String[] { "more-control-flow.js/testSwitch", "more-control-flow.js/testIfConvertedSwitch", + "more-control-flow.js/testDoWhile", "more-control-flow.js/testWhile", + "more-control-flow.js/testFor", "more-control-flow.js/testReturn" } } }; @Test public void testMoreControlflow() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -158,9 +157,9 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { verifyGraphAssertions(CG, assertionsForMoreControlflow); } - private static final Object[][] assertionsForForin = new Object[][] { new Object[] { ROOT, new String[] { "tests/forin.js" } }, - new Object[] { "tests/forin.js", new String[] { "tests/forin.js/testForIn" } }, - new Object[] { "tests/forin.js/testForIn", new String[] { "tests/forin.js/testForIn1", "tests/forin.js/testForIn2" } } }; + private static final Object[][] assertionsForForin = new Object[][] { new Object[] { ROOT, new String[] { "forin.js" } }, + new Object[] { "forin.js", new String[] { "forin.js/testForIn" } }, + new Object[] { "forin.js/testForIn", new String[] { "forin.js/testForIn1", "forin.js/testForIn2" } } }; @Test public void testForin() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -172,16 +171,16 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForSimpleLexical = new Object[][] { - new Object[] { ROOT, new String[] { "tests/simple-lexical.js" } }, - new Object[] { "tests/simple-lexical.js", new String[] { "tests/simple-lexical.js/outer" } }, + new Object[] { ROOT, new String[] { "simple-lexical.js" } }, + new Object[] { "simple-lexical.js", new String[] { "simple-lexical.js/outer" } }, new Object[] { - "tests/simple-lexical.js/outer", - new String[] { "tests/simple-lexical.js/outer/indirect", "tests/simple-lexical.js/outer/inner", - "tests/simple-lexical.js/outer/inner2", "tests/simple-lexical.js/outer/inner3" } }, - new Object[] { "tests/simple-lexical.js/outer/inner2", - new String[] { "tests/simple-lexical.js/outer/inner", "tests/simple-lexical.js/outer/inner3" } }, - new Object[] { "tests/simple-lexical.js/outer/indirect", - new String[] { "tests/simple-lexical.js/outer/inner", "tests/simple-lexical.js/outer/inner3" } } }; + "simple-lexical.js/outer", + new String[] { "simple-lexical.js/outer/indirect", "simple-lexical.js/outer/inner", + "simple-lexical.js/outer/inner2", "simple-lexical.js/outer/inner3" } }, + new Object[] { "simple-lexical.js/outer/inner2", + new String[] { "simple-lexical.js/outer/inner", "simple-lexical.js/outer/inner3" } }, + new Object[] { "simple-lexical.js/outer/indirect", + new String[] { "simple-lexical.js/outer/inner", "simple-lexical.js/outer/inner3" } } }; @Test public void testSimpleLexical() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -196,7 +195,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForLexicalMultiple = new Object[][] { - new Object[] { ROOT, new String[] { "tests/lexical_multiple_calls.js" } }, + new Object[] { ROOT, new String[] { "lexical_multiple_calls.js" } }, new Object[] { "suffix:lexical_multiple_calls.js", new String[] { "suffix:reachable1" } }, new Object[] { "suffix:lexical_multiple_calls.js", new String[] { "suffix:reachable2" } }}; @@ -208,19 +207,19 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { private static final Object[][] assertionsForTry = new Object[][] { - new Object[] { ROOT, new String[] { "tests/try.js" } }, - new Object[] { "tests/try.js", - new String[] { "tests/try.js/tryCatch", "tests/try.js/tryFinally", "tests/try.js/tryCatchFinally" } }, - new Object[] { "tests/try.js/tryCatch", - new String[] { "tests/try.js/targetOne", "tests/try.js/targetTwo", "tests/try.js/two" } }, - new Object[] { "tests/try.js/tryFinally", - new String[] { "tests/try.js/targetOne", "tests/try.js/targetTwo", "tests/try.js/two" } }, - new Object[] { "tests/try.js/tryCatchFinally", - new String[] { "tests/try.js/targetOne", "tests/try.js/targetTwo", "tests/try.js/three", "tests/try.js/two" } }, - new Object[] { "tests/try.js/tryCatchTwice", - new String[] { "tests/try.js/targetOne", "tests/try.js/targetTwo", "tests/try.js/three", "tests/try.js/two" } }, - new Object[] { "tests/try.js/testRet", - new String[] { "tests/try.js/three", "tests/try.js/two" } } + new Object[] { ROOT, new String[] { "try.js" } }, + new Object[] { "try.js", + new String[] { "try.js/tryCatch", "try.js/tryFinally", "try.js/tryCatchFinally" } }, + new Object[] { "try.js/tryCatch", + new String[] { "try.js/targetOne", "try.js/targetTwo", "try.js/two" } }, + new Object[] { "try.js/tryFinally", + new String[] { "try.js/targetOne", "try.js/targetTwo", "try.js/two" } }, + new Object[] { "try.js/tryCatchFinally", + new String[] { "try.js/targetOne", "try.js/targetTwo", "try.js/three", "try.js/two" } }, + new Object[] { "try.js/tryCatchTwice", + new String[] { "try.js/targetOne", "try.js/targetTwo", "try.js/three", "try.js/two" } }, + new Object[] { "try.js/testRet", + new String[] { "try.js/three", "try.js/two" } } }; @Test @@ -237,8 +236,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForStringOp = new Object[][] { - new Object[] { ROOT, new String[] { "tests/string-op.js" } }, - new Object[] { "tests/string-op.js", new String[] { "tests/string-op.js/getOp", "tests/string-op.js/plusNum" } } }; + new Object[] { ROOT, new String[] { "string-op.js" } }, + new Object[] { "string-op.js", new String[] { "string-op.js/getOp", "string-op.js/plusNum" } } }; @Test public void testStringOp() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -249,11 +248,11 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForUpward = new Object[][] { - new Object[] { ROOT, new String[] { "tests/upward.js" } }, + new Object[] { ROOT, new String[] { "upward.js" } }, new Object[] { - "tests/upward.js", - new String[] { "tests/upward.js/Obj/setit", "tests/upward.js/Obj/getit", "tests/upward.js/tester1", - "tests/upward.js/tester2" } } }; + "upward.js", + new String[] { "upward.js/Obj/setit", "upward.js/Obj/getit", "upward.js/tester1", + "upward.js/tester2" } } }; @Test public void testUpward() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -262,8 +261,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForStringPrims = new Object[][] { - new Object[] { ROOT, new String[] { "tests/string-prims.js" } }, - new Object[] { "tests/string-prims.js", new String[] { "prologue.js/String_prototype_split", "prologue.js/String_prototype_toUpperCase" } } }; + new Object[] { ROOT, new String[] { "string-prims.js" } }, + new Object[] { "string-prims.js", new String[] { "prologue.js/String_prototype_split", "prologue.js/String_prototype_toUpperCase" } } }; @Test public void testStringPrims() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -275,8 +274,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { verifyGraphAssertions(CG, assertionsForStringPrims); } - private static final Object[][] assertionsForNested = new Object[][] { new Object[] { ROOT, new String[] { "tests/nested.js" } }, - new Object[] { "tests/nested.js", new String[] { "tests/nested.js/f", "tests/nested.js/f/ff", "tests/nested.js/f/ff/fff" } } }; + private static final Object[][] assertionsForNested = new Object[][] { new Object[] { ROOT, new String[] { "nested.js" } }, + new Object[] { "nested.js", new String[] { "nested.js/f", "nested.js/f/ff", "nested.js/f/ff/fff" } } }; @Test public void testNested() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -286,7 +285,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForInstanceof = new Object[][] { new Object[] { ROOT, - new String[] { "tests/instanceof.js" } } }; + new String[] { "instanceof.js" } } }; @Test public void testInstanceof() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -297,7 +296,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { /* * private static final Object[][] assertionsForWith = new Object[][] { new - * Object[] { ROOT, new String[] { "tests/with.js" } } }; + * Object[] { ROOT, new String[] { "with.js" } } }; * * @Test public void testWith() throws IOException, IllegalArgumentException, * CancelException { PropagationCallGraphBuilder B = @@ -325,8 +324,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForMultivar = new Object[][] { - new Object[] { ROOT, new String[] { "tests/multivar.js" } }, - new Object[] { "tests/multivar.js", new String[] { "tests/multivar.js/a", "tests/multivar.js/bf", "tests/multivar.js/c" } } }; + new Object[] { ROOT, new String[] { "multivar.js" } }, + new Object[] { "multivar.js", new String[] { "multivar.js/a", "multivar.js/bf", "multivar.js/c" } } }; @Test public void testMultivar() throws IOException, IllegalArgumentException, CancelException, WalaException { @@ -335,7 +334,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForPrototypeContamination = new Object[][] { - new Object[] { ROOT, new String[] { "tests/prototype_contamination_bug.js" } }, + new Object[] { ROOT, new String[] { "prototype_contamination_bug.js" } }, new Object[] { "suffix:test1", new String[] { "suffix:foo_of_A" } }, new Object[] { "suffix:test2", new String[] { "suffix:foo_of_B" } } }; @@ -370,14 +369,14 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { List succs = Iterator2Collection.toList(cg.getSuccNodes(n)); Assert .assertEquals( - "[Node: Context: Everywhere, Node: Context: Everywhere]", + "[Node: Context: Everywhere, Node: Context: Everywhere]", succs.toString()); } } } private static final Object[][] assertionsForFunctionApply = new Object[][] { - new Object[] { ROOT, new String[] { "tests/function_apply.js" } }, + new Object[] { ROOT, new String[] { "function_apply.js" } }, new Object[] { "suffix:function_apply.js", new String[] { "suffix:theOne" } }, new Object[] { "suffix:function_apply.js", new String[] { "suffix:theTwo" } } }; @@ -389,7 +388,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForFunctionApply2 = new Object[][] { - new Object[] { ROOT, new String[] { "tests/function_apply2.js" } }, + new Object[] { ROOT, new String[] { "function_apply2.js" } }, new Object[] { "suffix:function_apply2.js", new String[] { "suffix:theThree" } } }; @Test @@ -399,7 +398,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForFunctionApply3 = new Object[][] { - new Object[] { ROOT, new String[] { "tests/function_apply3.js" } }, + new Object[] { ROOT, new String[] { "function_apply3.js" } }, new Object[] { "suffix:apply", new String[] { "suffix:foo" } } }; @Test @@ -409,7 +408,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForWrap1 = new Object[][] { - new Object[] { ROOT, new String[] { "tests/wrap1.js" } }, + new Object[] { ROOT, new String[] { "wrap1.js" } }, new Object[] { "suffix:wrap1.js", new String[] { "suffix:i_am_reachable" } } }; @Test @@ -419,7 +418,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForWrap2 = new Object[][] { - new Object[] { ROOT, new String[] { "tests/wrap2.js" } }, + new Object[] { ROOT, new String[] { "wrap2.js" } }, new Object[] { "suffix:wrap2.js", new String[] { "suffix:i_am_reachable" } } }; @Test @@ -429,7 +428,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForWrap3 = new Object[][] { - new Object[] { ROOT, new String[] { "tests/wrap3.js" } }, + new Object[] { ROOT, new String[] { "wrap3.js" } }, new Object[] { "suffix:wrap3.js", new String[] { "suffix:i_am_reachable" } } }; @Test @@ -439,7 +438,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForComplexCall = new Object[][] { - new Object[] { ROOT, new String[] { "tests/complex_call.js" } }, + new Object[] { ROOT, new String[] { "complex_call.js" } }, new Object[] { "suffix:call.js", new String[] { "suffix:f3" } } }; @Test @@ -452,7 +451,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { private static final Object[][] assertionsForGlobalObj = new Object[][] { - new Object[] { ROOT, new String[] { "tests/global_object.js" } }, + new Object[] { ROOT, new String[] { "global_object.js" } }, new Object[] { "suffix:global_object.js", new String[] { "suffix:biz" } } }; @Test @@ -462,7 +461,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForGlobalObj2 = new Object[][] { - new Object[] { ROOT, new String[] { "tests/global_object2.js" } }, + new Object[] { ROOT, new String[] { "global_object2.js" } }, new Object[] { "suffix:global_object2.js", new String[] { "suffix:foo" } } }; @Test @@ -473,7 +472,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { private static final Object[][] assertionsForReturnThis = new Object[][] { - new Object[] { ROOT, new String[] { "tests/return_this.js" } }, + new Object[] { ROOT, new String[] { "return_this.js" } }, new Object[] { "suffix:return_this.js", new String[] { "suffix:foo" } }, new Object[] { "suffix:return_this.js", new String[] { "suffix:bar" } } }; @@ -487,7 +486,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForReturnThis2 = new Object[][] { - new Object[] { ROOT, new String[] { "tests/return_this2.js" } }, + new Object[] { ROOT, new String[] { "return_this2.js" } }, new Object[] { "suffix:return_this2.js", new String[] { "suffix:A" } }, new Object[] { "suffix:return_this2.js", new String[] { "suffix:foo" } }, new Object[] { "suffix:return_this2.js", new String[] { "suffix:test1" } }, @@ -505,7 +504,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForArguments = new Object[][] { - new Object[] { ROOT, new String[] { "tests/arguments.js" } }, + new Object[] { ROOT, new String[] { "arguments.js" } }, new Object[] { "suffix:arguments.js", new String[] { "suffix:f" } }, new Object[] { "suffix:f", new String[] { "!suffix:g1", "!suffix:g2", "suffix:g3", } } }; @@ -517,7 +516,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForFunctionIsAFunction = new Object[][] { - new Object[] { ROOT, new String[] { "tests/Function_is_a_function.js" } }, + new Object[] { ROOT, new String[] { "Function_is_a_function.js" } }, new Object[] { "suffix:Function_is_a_function.js", new String[] { "suffix:Function_prototype_call" } } }; @Test @@ -527,7 +526,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForLexicalBroken = new Object[][] { - new Object[] { ROOT, new String[] { "tests/lexical_broken.js" } }, + new Object[] { ROOT, new String[] { "lexical_broken.js" } }, new Object[] { "suffix:lexical_broken.js", new String[] { "suffix:f" } }, new Object[] { "suffix:f", new String[] { "suffix:g" } } }; @@ -544,7 +543,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForScopingOverwriteFunction = new Object[][] { - new Object[] { ROOT, new String[] { "tests/scoping_test.js" } }, + new Object[] { ROOT, new String[] { "scoping_test.js" } }, new Object[] { "suffix:scoping_test.js", new String[] { "suffix:i_am_reachable" } } }; @@ -555,7 +554,7 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForNestedParamAssign = new Object[][] { - new Object[] { ROOT, new String[] { "tests/nested_assign_to_param.js" } }, + new Object[] { ROOT, new String[] { "nested_assign_to_param.js" } }, new Object[] { "suffix:nested_assign_to_param.js", new String[] { "suffix:i_am_reachable" } } }; @@ -566,10 +565,10 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForDispatch = new Object[][] { - new Object[] { ROOT, new String[] { "tests/dispatch.js" } }, - new Object[] { "tests/dispatch.js", new String[] { "tests/dispatch.js/left_outer", "tests/dispatch.js/right_outer" } }, - new Object[] { "tests/dispatch.js/left_outer", new String[]{ "tests/dispatch.js/left_inner" } }, - new Object[] { "tests/dispatch.js/right_outer", new String[]{ "tests/dispatch.js/right_inner" } } + new Object[] { ROOT, new String[] { "dispatch.js" } }, + new Object[] { "dispatch.js", new String[] { "dispatch.js/left_outer", "dispatch.js/right_outer" } }, + new Object[] { "dispatch.js/left_outer", new String[]{ "dispatch.js/left_inner" } }, + new Object[] { "dispatch.js/right_outer", new String[]{ "dispatch.js/right_inner" } } }; @Test @@ -582,8 +581,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForDispatchSameTarget = new Object[][] { - new Object[] { ROOT, new String[] { "tests/dispatch_same_target.js" } }, - new Object[] { "tests/dispatch_same_target.js/f3", new String[] { "tests/dispatch_same_target.js/f4" } } + new Object[] { ROOT, new String[] { "dispatch_same_target.js" } }, + new Object[] { "dispatch_same_target.js/f3", new String[] { "dispatch_same_target.js/f4" } } }; @@ -598,8 +597,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { private static final Object[][] assertionsForForInPrototype = new Object[][] { - new Object[] { ROOT, new String[] { "tests/for_in_prototype.js" } }, - new Object[] { "tests/for_in_prototype.js", new String[] { "suffix:A", + new Object[] { ROOT, new String[] { "for_in_prototype.js" } }, + new Object[] { "for_in_prototype.js", new String[] { "suffix:A", "suffix:reachable", "suffix:also_reachable" } } }; @@ -611,8 +610,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForArrayIndexConv = new Object[][] { - new Object[] { ROOT, new String[] { "tests/array_index_conv.js" } }, - new Object[] { "tests/array_index_conv.js", new String[] { "suffix:reachable1", + new Object[] { ROOT, new String[] { "array_index_conv.js" } }, + new Object[] { "array_index_conv.js", new String[] { "suffix:reachable1", "suffix:reachable2", "suffix:reachable3", "suffix:reachable4" } } @@ -626,8 +625,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForArrayIndexConv2 = new Object[][] { - new Object[] { ROOT, new String[] { "tests/array_index_conv2.js" } }, - new Object[] { "tests/array_index_conv2.js", new String[] { "suffix:invokeOnA" } }, + new Object[] { ROOT, new String[] { "array_index_conv2.js" } }, + new Object[] { "array_index_conv2.js", new String[] { "suffix:invokeOnA" } }, new Object[] { "suffix:invokeOnA", new String[] { "suffix:reachable", "suffix:also_reachable", "suffix:reachable_too" } } @@ -644,8 +643,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForDateProperty = new Object[][] { - new Object[] { ROOT, new String[] { "tests/date-property.js" } }, - new Object[] { "tests/date-property.js", new String[] { "suffix:_fun" } } + new Object[] { ROOT, new String[] { "date-property.js" } }, + new Object[] { "date-property.js", new String[] { "suffix:_fun" } } }; @Test @@ -657,8 +656,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { verifyGraphAssertions(CG, assertionsForDateProperty); } private static final Object[][] assertionsForDeadCode = new Object[][] { - new Object[] { ROOT, new String[] { "tests/dead.js" } }, - new Object[] { "tests/dead.js", new String[] { "suffix:twoReturns" } } + new Object[] { ROOT, new String[] { "dead.js" } }, + new Object[] { "dead.js", new String[] { "suffix:twoReturns" } } }; @Test @@ -671,10 +670,10 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForShadow = new Object[][] { - new Object[] { ROOT, new String[] { "tests/shadow_test.js" } }, - new Object[] { "tests/shadow_test.js", new String[] { "tests/shadow_test.js/test" } }, - new Object[] { "tests/shadow_test.js/test", new String[] { "tests/shadow_test.js/bad" } }, - new Object[] { "tests/shadow_test.js/test", new String[] { "tests/shadow_test.js/global_bad" } } + new Object[] { ROOT, new String[] { "shadow_test.js" } }, + new Object[] { "shadow_test.js", new String[] { "shadow_test.js/test" } }, + new Object[] { "shadow_test.js/test", new String[] { "shadow_test.js/bad" } }, + new Object[] { "shadow_test.js/test", new String[] { "shadow_test.js/global_bad" } } }; @Test @@ -685,8 +684,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForExtend = new Object[][] { - new Object[] { ROOT, new String[] { "tests/extend.js" } }, - new Object[] { "tests/extend.js", new String[] { "suffix:bar", "!suffix:foo" } } + new Object[] { ROOT, new String[] { "extend.js" } }, + new Object[] { "extend.js", new String[] { "suffix:bar", "!suffix:foo" } } }; @Test @@ -737,8 +736,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForLoops = new Object[][] { - new Object[] { ROOT, new String[] { "tests/loops.js" } }, - new Object[] { "tests/loops.js", new String[] { "tests/loops.js/three", "tests/loops.js/four"} } + new Object[] { ROOT, new String[] { "loops.js" } }, + new Object[] { "loops.js", new String[] { "loops.js/three", "loops.js/four"} } }; @Ignore("need to fix this. bug from Sukyoung's group") @@ -754,10 +753,10 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } private static final Object[][] assertionsForPrimitiveStrings = new Object[][] { - new Object[] { ROOT, new String[] { "tests/primitive_strings.js" } }, - new Object[] { "tests/primitive_strings.js", new String[] { "tests/primitive_strings.js/f1", "tests/primitive_strings.js/f1"} }, - new Object[] { "tests/primitive_strings.js/f2", new String[] { "prologue.js/String_prototype_concat" } }, - new Object[] { "tests/primitive_strings.js/f1", new String[] { "prologue.js/String_prototype_concat" } }, + new Object[] { ROOT, new String[] { "primitive_strings.js" } }, + new Object[] { "primitive_strings.js", new String[] { "primitive_strings.js/f1", "primitive_strings.js/f1"} }, + new Object[] { "primitive_strings.js/f2", new String[] { "prologue.js/String_prototype_concat" } }, + new Object[] { "primitive_strings.js/f1", new String[] { "prologue.js/String_prototype_concat" } }, }; @Ignore("need to fix this. bug from Sukyoung's group") @@ -773,8 +772,8 @@ public abstract class TestSimpleCallGraphShape extends TestJSCallGraphShape { } Object[][] renamingAssertions = { - { "tests/rename-example.js/f", new Name[]{ new Name(9, 7, "x"), new Name(9, 7, "y") } }, - { "tests/rename-example.js/ff", new Name[]{ new Name(11, 10, "x"), new Name(11, 10, "y"), new Name(11, 10, "z") } } + { "rename-example.js/f", new Name[]{ new Name(9, 7, "x"), new Name(9, 7, "y") } }, + { "rename-example.js/ff", new Name[]{ new Name(11, 10, "x"), new Name(11, 10, "y"), new Name(11, 10, "z") } } }; @Test diff --git a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimplePageCallGraphShape.java b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimplePageCallGraphShape.java index 1a8cbd15e..78469d71c 100755 --- a/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimplePageCallGraphShape.java +++ b/com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimplePageCallGraphShape.java @@ -19,6 +19,7 @@ import org.junit.Test; import com.ibm.wala.cast.ipa.callgraph.CAstCallGraphUtil; import com.ibm.wala.cast.js.html.IHtmlParser; import com.ibm.wala.cast.js.html.IHtmlParserFactory; +import com.ibm.wala.cast.js.html.JSSourceExtractor; import com.ibm.wala.cast.js.html.WebUtil; import com.ibm.wala.cast.js.ipa.callgraph.JSCFABuilder; import com.ibm.wala.ipa.callgraph.CallGraph; @@ -36,12 +37,7 @@ public abstract class TestSimplePageCallGraphShape extends TestJSCallGraphShape @Override @Before public void setUp() { - WebUtil.setFactory(new IHtmlParserFactory() { - @Override - public IHtmlParser getParser() { - return getParser(); - } - }); + JSSourceExtractor.USE_TEMP_NAME = false; } private static final Object[][] assertionsForPage1 = new Object[][] { diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/FieldBasedCallGraphBuilder.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/FieldBasedCallGraphBuilder.java index 403156d8b..dc4c0fb1d 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/FieldBasedCallGraphBuilder.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/FieldBasedCallGraphBuilder.java @@ -39,11 +39,13 @@ import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.MethodTargetSelector; import com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod; import com.ibm.wala.ipa.callgraph.impl.ContextInsensitiveSelector; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; +import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter; import com.ibm.wala.ipa.callgraph.propagation.cfa.DefaultSSAInterpreter; import com.ibm.wala.ipa.callgraph.propagation.cfa.DelegatingSSAContextInterpreter; import com.ibm.wala.ipa.callgraph.propagation.cfa.nCFAContextSelector; @@ -70,17 +72,17 @@ public abstract class FieldBasedCallGraphBuilder { // standard call graph machinery protected final AnalysisOptions options; - protected final AnalysisCache cache; + protected final IAnalysisCacheView cache; protected final JavaScriptConstructorFunctions constructors; - protected final MethodTargetSelector targetSelector; + public final MethodTargetSelector targetSelector; protected final boolean supportFullPointerAnalysis; private static final boolean LOG_TIMINGS = true; - public FieldBasedCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, boolean supportFullPointerAnalysis) { + public FieldBasedCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView iAnalysisCacheView, boolean supportFullPointerAnalysis) { this.cha = cha; this.options = options; - this.cache = cache; + this.cache = iAnalysisCacheView; this.constructors = new JavaScriptConstructorFunctions(cha); this.targetSelector = setupMethodTargetSelector(cha, constructors, options); this.supportFullPointerAnalysis = supportFullPointerAnalysis; @@ -89,7 +91,7 @@ public abstract class FieldBasedCallGraphBuilder { private MethodTargetSelector setupMethodTargetSelector(IClassHierarchy cha, JavaScriptConstructorFunctions constructors2, AnalysisOptions options) { MethodTargetSelector result = new JavaScriptConstructTargetSelector(constructors2, options.getMethodTargetSelector()); if (options instanceof JSAnalysisOptions && ((JSAnalysisOptions)options).handleCallApply()) { - result = new JavaScriptFunctionApplyTargetSelector(new JavaScriptFunctionDotCallTargetSelector(result)); + result = new JavaScriptFunctionApplyTargetSelector(new JavaScriptFunctionDotCallTargetSelector(result, cache)); } return result; } @@ -137,14 +139,19 @@ public abstract class FieldBasedCallGraphBuilder { /** * Extract a call graph from a given flow graph. */ - @SuppressWarnings("deprecation") - protected JSCallGraph extract(FlowGraph flowgraph, Iterable eps, IProgressMonitor monitor) throws CancelException { + @SuppressWarnings("deprecation") + public JSCallGraph extract(FlowGraph flowgraph, Iterable eps, IProgressMonitor monitor) throws CancelException { + DelegatingSSAContextInterpreter interpreter = new DelegatingSSAContextInterpreter(new AstContextInsensitiveSSAContextInterpreter(options, cache), new DefaultSSAInterpreter(options, cache)); + return extract(interpreter, flowgraph, eps, monitor); + } + + @SuppressWarnings("deprecation") + public JSCallGraph extract(SSAContextInterpreter interpreter, FlowGraph flowgraph, Iterable eps, IProgressMonitor monitor) throws CancelException { // set up call graph final JSCallGraph cg = new JSCallGraph(cha, options, cache); cg.init(); // setup context interpreters - DelegatingSSAContextInterpreter interpreter = new DelegatingSSAContextInterpreter(new AstContextInsensitiveSSAContextInterpreter(options, cache), new DefaultSSAInterpreter(options, cache)); if (options instanceof JSAnalysisOptions && ((JSAnalysisOptions)options).handleCallApply()) { interpreter = new DelegatingSSAContextInterpreter(new JavaScriptFunctionApplyContextInterpreter(options, cache), interpreter); } @@ -206,7 +213,7 @@ public abstract class FieldBasedCallGraphBuilder { return cg; } - private boolean handleFunctionCallOrApplyInvocation(FlowGraph flowgraph, IProgressMonitor monitor, final JSCallGraph cg, + public boolean handleFunctionCallOrApplyInvocation(FlowGraph flowgraph, IProgressMonitor monitor, final JSCallGraph cg, CallVertex callVertex, CGNode caller, CallSiteReference site, IMethod target) throws CancelException { // use to get 1-level of call string for Function.prototype.call, to @@ -220,6 +227,7 @@ public abstract class FieldBasedCallGraphBuilder { OrdinalSet reflectiveTargets = getReflectiveTargets(flowgraph, callVertex, monitor); System.err.println("adding callees " + reflectiveTargets + " for " + caller); // there should only be one call site in the synthetic method +// CallSiteReference reflectiveCallSite = cache.getIRFactory().makeIR(functionPrototypeCallNode.getMethod(), Everywhere.EVERYWHERE, options.getSSAOptions()).iterateCallSites().next(); CallSiteReference reflectiveCallSite = functionPrototypeCallNode.getIR().iterateCallSites().next(); for (FuncVertex f : reflectiveTargets) { IMethod reflectiveTgtMethod = targetSelector.getCalleeTarget(functionPrototypeCallNode, reflectiveCallSite, f.getConcreteType()); @@ -228,7 +236,7 @@ public abstract class FieldBasedCallGraphBuilder { return ret; } - private boolean addEdgeToJSCallGraph(final JSCallGraph cg, CallSiteReference site, IMethod target, CGNode caller) + public boolean addEdgeToJSCallGraph(final JSCallGraph cg, CallSiteReference site, IMethod target, CGNode caller) throws CancelException { return addCGEdgeWithContext(cg, site, target, caller, Everywhere.EVERYWHERE); } @@ -276,7 +284,7 @@ public abstract class FieldBasedCallGraphBuilder { /** * Extract call edges from the flow graph into high-level representation. */ - protected Set> extractCallGraphEdges(FlowGraph flowgraph, IProgressMonitor monitor) throws CancelException { + public Set> extractCallGraphEdges(FlowGraph flowgraph, IProgressMonitor monitor) throws CancelException { VertexFactory factory = flowgraph.getVertexFactory(); final Set> result = HashSetFactory.make(); diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/OptimisticCallgraphBuilder.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/OptimisticCallgraphBuilder.java index a150a3df8..75a77af52 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/OptimisticCallgraphBuilder.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/OptimisticCallgraphBuilder.java @@ -18,13 +18,11 @@ import com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph.vertices.FuncVertex; import com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph.vertices.VarVertex; import com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph.vertices.VertexFactory; import com.ibm.wala.cast.js.ipa.callgraph.JSAnalysisOptions; -import com.ibm.wala.cast.js.ipa.summaries.JavaScriptConstructorFunctions; import com.ibm.wala.cast.js.ssa.JavaScriptInvoke; import com.ibm.wala.cast.js.types.JavaScriptMethods; -import com.ibm.wala.cast.types.AstMethodReference; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; -import com.ibm.wala.ipa.callgraph.MethodTargetSelector; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.util.CancelException; import com.ibm.wala.util.MonitorUtil; @@ -46,8 +44,8 @@ public class OptimisticCallgraphBuilder extends FieldBasedCallGraphBuilder { private final boolean handleCallApply; - public OptimisticCallgraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, boolean supportFullPointerAnalysis) { - super(cha, options, cache, supportFullPointerAnalysis); + public OptimisticCallgraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView iAnalysisCacheView, boolean supportFullPointerAnalysis) { + super(cha, options, iAnalysisCacheView, supportFullPointerAnalysis); handleCallApply = options instanceof JSAnalysisOptions && ((JSAnalysisOptions)options).handleCallApply(); } diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/PessimisticCallGraphBuilder.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/PessimisticCallGraphBuilder.java index f7b930a0a..ef81ea1ab 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/PessimisticCallGraphBuilder.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/PessimisticCallGraphBuilder.java @@ -15,7 +15,6 @@ import java.util.Iterator; import com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph.FlowGraph; import com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph.vertices.FuncVertex; import com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph.vertices.VertexFactory; -import com.ibm.wala.cast.js.ipa.summaries.JavaScriptConstructorFunctions; import com.ibm.wala.cast.js.ssa.JavaScriptInvoke; import com.ibm.wala.cast.js.types.JavaScriptTypes; import com.ibm.wala.cast.loader.AstMethod; @@ -24,7 +23,7 @@ import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; -import com.ibm.wala.ipa.callgraph.MethodTargetSelector; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ssa.DefUse; import com.ibm.wala.ssa.IR; @@ -42,8 +41,8 @@ import com.ibm.wala.util.MonitorUtil.IProgressMonitor; * */ public class PessimisticCallGraphBuilder extends FieldBasedCallGraphBuilder { - public PessimisticCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, boolean supportFullPointerAnalysis) { - super(cha, options, cache, supportFullPointerAnalysis); + public PessimisticCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView iAnalysisCacheView, boolean supportFullPointerAnalysis) { + super(cha, options, iAnalysisCacheView, supportFullPointerAnalysis); } @Override diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/WorklistBasedOptimisticCallgraphBuilder.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/WorklistBasedOptimisticCallgraphBuilder.java index 9a3af0f93..fdef71b50 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/WorklistBasedOptimisticCallgraphBuilder.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/WorklistBasedOptimisticCallgraphBuilder.java @@ -21,15 +21,12 @@ import com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph.vertices.VarVertex; import com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph.vertices.Vertex; import com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph.vertices.VertexFactory; import com.ibm.wala.cast.js.ipa.callgraph.JSAnalysisOptions; -import com.ibm.wala.cast.js.ipa.summaries.JavaScriptConstructorFunctions; import com.ibm.wala.cast.js.ssa.JavaScriptInvoke; import com.ibm.wala.cast.js.types.JavaScriptMethods; import com.ibm.wala.cast.types.AstMethodReference; -import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.cha.IClassHierarchy; -import com.ibm.wala.ssa.IR; import com.ibm.wala.util.CancelException; import com.ibm.wala.util.MonitorUtil; import com.ibm.wala.util.MonitorUtil.IProgressMonitor; @@ -69,7 +66,7 @@ public class WorklistBasedOptimisticCallgraphBuilder extends FieldBasedCallGraph } @Override - protected Set> extractCallGraphEdges(FlowGraph flowgraph, IProgressMonitor monitor) throws CancelException { + public Set> extractCallGraphEdges(FlowGraph flowgraph, IProgressMonitor monitor) throws CancelException { VertexFactory factory = flowgraph.getVertexFactory(); Set worklist = HashSetFactory.make(); Map> reachingFunctions = HashMapFactory.make(); diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java index 1d2d822d9..c2b061d8d 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java @@ -12,7 +12,7 @@ package com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph; import com.ibm.wala.classLoader.IMethod; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.util.functions.Function; @@ -20,7 +20,7 @@ public class FilteredFlowGraphBuilder extends FlowGraphBuilder { private final Function filter; - public FilteredFlowGraphBuilder(IClassHierarchy cha, AnalysisCache cache, boolean fullPointerAnalysis, Function filter) { + public FilteredFlowGraphBuilder(IClassHierarchy cha, IAnalysisCacheView cache, boolean fullPointerAnalysis, Function filter) { super(cha, cache, fullPointerAnalysis); this.filter = filter; } diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java index 154ab07f2..9e11e6dba 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java @@ -39,9 +39,9 @@ import com.ibm.wala.classLoader.IField; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.classLoader.NewSiteReference; import com.ibm.wala.classLoader.ProgramCounter; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.callgraph.propagation.FilteredPointerKey; import com.ibm.wala.ipa.callgraph.propagation.FilteredPointerKey.TypeFilter; @@ -180,7 +180,7 @@ public class FlowGraph implements Iterable { return graph.iterator(); } - public PointerAnalysis getPointerAnalysis(final CallGraph cg, final AnalysisCache cache, final IProgressMonitor monitor) throws CancelException { + public PointerAnalysis getPointerAnalysis(final CallGraph cg, final IAnalysisCacheView cache, final IProgressMonitor monitor) throws CancelException { return new PointerAnalysis() { private final Map,PrototypeFieldVertex> proto = HashMapFactory.make(); @@ -189,7 +189,7 @@ public class FlowGraph implements Iterable { private final ExtensionGraph dataflow = new ExtensionGraph(graph); - protected IR getIR(final AnalysisCache cache, FuncVertex func) { + protected IR getIR(final IAnalysisCacheView cache, FuncVertex func) { return cache.getIR(func.getConcreteType().getMethod(AstMethodReference.fnSelector)); } diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraphBuilder.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraphBuilder.java index c5286af7e..798c7d35f 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraphBuilder.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraphBuilder.java @@ -38,7 +38,7 @@ import com.ibm.wala.cast.loader.AstMethod.LexicalInformation; import com.ibm.wala.cast.types.AstMethodReference; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ssa.IR; import com.ibm.wala.ssa.SSAGetCaughtExceptionInstruction; @@ -60,10 +60,10 @@ import com.ibm.wala.util.intset.IntSet; */ public class FlowGraphBuilder { private final IClassHierarchy cha; - private final AnalysisCache cache; + private final IAnalysisCacheView cache; private final boolean supportFullPointerAnalysis; - public FlowGraphBuilder(IClassHierarchy cha, AnalysisCache cache, boolean supportPointerAnalysis) { + public FlowGraphBuilder(IClassHierarchy cha, IAnalysisCacheView cache, boolean supportPointerAnalysis) { this.cha = cha; this.cache = cache; this.supportFullPointerAnalysis = supportPointerAnalysis; @@ -104,9 +104,6 @@ public class FlowGraphBuilder { public void visitFunction(FlowGraph flowgraph, IMethod method) { { - if (method.toString().contains("ctor") && method.toString().contains("dollar_init")) { - System.err.println("found it"); - } IR ir = cache.getIR(method); FlowGraphSSAVisitor visitor = new FlowGraphSSAVisitor(ir, flowgraph); diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/UnknownVertex.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/UnknownVertex.java index 8d8252b31..c8f992327 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/UnknownVertex.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/UnknownVertex.java @@ -31,4 +31,4 @@ public class UnknownVertex extends Vertex { public String toString() { return "Unknown"; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/JavaScriptAnalysisEngine.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/JavaScriptAnalysisEngine.java index bbb447d54..8eed55a54 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/JavaScriptAnalysisEngine.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/JavaScriptAnalysisEngine.java @@ -34,17 +34,19 @@ import com.ibm.wala.classLoader.Module; import com.ibm.wala.classLoader.SourceModule; import com.ibm.wala.client.AbstractAnalysisEngine; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraph; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; import com.ibm.wala.ipa.callgraph.CallGraphBuilderCancelException; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; import com.ibm.wala.ipa.cha.ClassHierarchyException; -import com.ibm.wala.ipa.cha.ClassHierarchyFactory; import com.ibm.wala.ipa.cha.IClassHierarchy; +import com.ibm.wala.ipa.cha.SeqClassHierarchyFactory; import com.ibm.wala.util.CancelException; import com.ibm.wala.util.MonitorUtil.IProgressMonitor; import com.ibm.wala.util.collections.HashSetFactory; @@ -72,7 +74,7 @@ public abstract class JavaScriptAnalysisEngine extends Ab @Override public IClassHierarchy buildClassHierarchy() { try { - return ClassHierarchyFactory.make(getScope(), loaderFactory, JavaScriptLoader.JS); + return setClassHierarchy(SeqClassHierarchyFactory.make(getScope(), loaderFactory, JavaScriptLoader.JS)); } catch (ClassHierarchyException e) { Assertions.UNREACHABLE(e.toString()); return null; @@ -99,8 +101,8 @@ public abstract class JavaScriptAnalysisEngine extends Ab } @Override - public AnalysisCache makeDefaultCache() { - return new AnalysisCache(AstIRFactory.makeDefaultFactory()); + public IAnalysisCacheView makeDefaultCache() { + return new AnalysisCacheImpl(AstIRFactory.makeDefaultFactory()); } @Override @@ -140,7 +142,7 @@ public abstract class JavaScriptAnalysisEngine extends Ab @Override - protected CallGraphBuilder getCallGraphBuilder(final IClassHierarchy cha, AnalysisOptions options, final AnalysisCache cache) { + protected CallGraphBuilder getCallGraphBuilder(final IClassHierarchy cha, AnalysisOptions options, final IAnalysisCacheView cache) { Set roots = HashSetFactory.make(); for(Entrypoint e : options.getEntrypoints()) { roots.add(e); @@ -176,7 +178,7 @@ public abstract class JavaScriptAnalysisEngine extends Ab } @Override - public AnalysisCache getAnalysisCache() { + public IAnalysisCacheView getAnalysisCache() { return cache; } @@ -192,7 +194,7 @@ public abstract class JavaScriptAnalysisEngine extends Ab public static class PropagationJavaScriptAnalysisEngine extends JavaScriptAnalysisEngine { @Override - protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { return new ZeroCFABuilderFactory().make((JSAnalysisOptions) options, cache, cha, scope, false); } } diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/impl/ZeroCFABuilderFactory.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/impl/ZeroCFABuilderFactory.java index 43f574a4c..679676854 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/impl/ZeroCFABuilderFactory.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/client/impl/ZeroCFABuilderFactory.java @@ -16,6 +16,7 @@ import com.ibm.wala.cast.js.ipa.callgraph.JSZeroOrOneXCFABuilder; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.cfa.ZeroXInstanceKeys; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -26,7 +27,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy; */ public class ZeroCFABuilderFactory { - public CallGraphBuilder make(JSAnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, AnalysisScope scope, + public CallGraphBuilder make(JSAnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope, boolean keepPointsTo) { com.ibm.wala.ipa.callgraph.impl.Util.addDefaultSelectors(options, cha); options.setSelector(new StandardFunctionTargetSelector(cha, options.getMethodTargetSelector())); diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/FileMapping.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/FileMapping.java index 3b15fd6ad..01b7c1a6b 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/FileMapping.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/FileMapping.java @@ -20,4 +20,4 @@ public interface FileMapping { */ public abstract IncludedPosition getIncludedPosition(Position line); -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/jericho/JerichoHtmlParser.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/jericho/JerichoHtmlParser.java index b36da21f0..9dc945d7f 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/jericho/JerichoHtmlParser.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/jericho/JerichoHtmlParser.java @@ -17,18 +17,18 @@ import java.util.Iterator; import java.util.List; import java.util.Set; -import net.htmlparser.jericho.Config; -import net.htmlparser.jericho.Element; -import net.htmlparser.jericho.Logger; -import net.htmlparser.jericho.LoggerProvider; -import net.htmlparser.jericho.Source; - import com.ibm.wala.cast.ir.translator.TranslatorToCAst; import com.ibm.wala.cast.js.html.IHtmlCallback; import com.ibm.wala.cast.js.html.IHtmlParser; import com.ibm.wala.util.collections.HashSetFactory; import com.ibm.wala.util.warnings.Warning; +import net.htmlparser.jericho.Config; +import net.htmlparser.jericho.Element; +import net.htmlparser.jericho.Logger; +import net.htmlparser.jericho.LoggerProvider; +import net.htmlparser.jericho.Source; + /** * @author danielk diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/jericho/JerichoTag.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/jericho/JerichoTag.java index 3311762f7..e9dd61d93 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/jericho/JerichoTag.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/jericho/JerichoTag.java @@ -17,16 +17,16 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.Map; -import net.htmlparser.jericho.Attribute; -import net.htmlparser.jericho.Element; -import net.htmlparser.jericho.Segment; - import com.ibm.wala.cast.js.html.ITag; import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position; import com.ibm.wala.cast.tree.impl.AbstractSourcePosition; import com.ibm.wala.util.collections.HashMapFactory; import com.ibm.wala.util.collections.Pair; +import net.htmlparser.jericho.Attribute; +import net.htmlparser.jericho.Element; +import net.htmlparser.jericho.Segment; + /** * ITag impel for Jericho generated tags * @author danielk diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ArgumentSpecialization.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ArgumentSpecialization.java index cab2626c5..1a0cc1048 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ArgumentSpecialization.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ArgumentSpecialization.java @@ -64,7 +64,7 @@ public class ArgumentSpecialization { @Override public IR getIR(CGNode node) { if (node.getMethod() instanceof Retranslatable) { - return getAnalysisCache().getSSACache().findOrCreateIR(node.getMethod(), node.getContext(), options.getSSAOptions()); + return getAnalysisCache().getIR(node.getMethod(), node.getContext()); } else { return super.getIR(node); } @@ -73,7 +73,7 @@ public class ArgumentSpecialization { @Override public DefUse getDU(CGNode node) { if (node.getMethod() instanceof Retranslatable) { - return getAnalysisCache().getSSACache().findOrCreateDU(node.getMethod(), node.getContext(), options.getSSAOptions()); + return getAnalysisCache().getDefUse(getIR(node)); } else { return super.getDU(node); } diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCFABuilder.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCFABuilder.java index 55bf4dada..4863aedcd 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCFABuilder.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCFABuilder.java @@ -19,6 +19,7 @@ import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IField; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.ConcreteTypeKey; import com.ibm.wala.ipa.callgraph.propagation.ConstantKey; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; @@ -33,7 +34,7 @@ import com.ibm.wala.util.strings.Atom; */ public abstract class JSCFABuilder extends JSSSAPropagationCallGraphBuilder { - public JSCFABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public JSCFABuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(cha, options, cache, new AstCFAPointerKeys() { private boolean isBogusKey(InstanceKey K) { diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCallGraph.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCallGraph.java index 26786dd23..10b88502f 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCallGraph.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCallGraph.java @@ -22,9 +22,9 @@ import com.ibm.wala.cfg.InducedCFG; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.classLoader.NewSiteReference; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.callgraph.impl.FakeRootMethod; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -37,7 +37,7 @@ import com.ibm.wala.util.collections.HashSetFactory; public class JSCallGraph extends AstCallGraph { - public JSCallGraph(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public JSCallGraph(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(cha, options, cache); } @@ -46,7 +46,7 @@ public class JSCallGraph extends AstCallGraph { public static class JSFakeRoot extends ScriptFakeRoot { - public JSFakeRoot(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public JSFakeRoot(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(fakeRoot, cha.lookupClass(JavaScriptTypes.FakeRoot), cha, options, cache); } diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCallGraphUtil.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCallGraphUtil.java index 18ce91bc9..fc27ba640 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCallGraphUtil.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSCallGraphUtil.java @@ -11,11 +11,14 @@ package com.ibm.wala.cast.js.ipa.callgraph; import java.io.IOException; +import java.io.InputStream; import java.io.PrintWriter; +import java.io.Reader; import java.net.URL; import java.util.Collection; import java.util.Collections; import java.util.HashSet; +import java.util.Iterator; import java.util.Map; import java.util.Set; @@ -41,12 +44,16 @@ import com.ibm.wala.cfg.AbstractCFG; import com.ibm.wala.cfg.IBasicBlock; import com.ibm.wala.classLoader.ClassLoaderFactory; import com.ibm.wala.classLoader.IClass; +import com.ibm.wala.classLoader.Module; +import com.ibm.wala.classLoader.ModuleEntry; import com.ibm.wala.classLoader.SourceModule; import com.ibm.wala.classLoader.SourceURLModule; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.impl.ClassHierarchyClassTargetSelector; +import com.ibm.wala.ipa.callgraph.impl.ClassHierarchyMethodTargetSelector; import com.ibm.wala.ipa.cha.ClassHierarchyException; import com.ibm.wala.ipa.cha.ClassHierarchyFactory; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -54,6 +61,7 @@ import com.ibm.wala.ssa.SymbolTable; import com.ibm.wala.types.MethodReference; import com.ibm.wala.types.TypeName; import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.collections.NonNullSingletonIterator; public class JSCallGraphUtil extends com.ibm.wala.cast.ipa.callgraph.CAstCallGraphUtil { @@ -84,7 +92,9 @@ public class JSCallGraphUtil extends com.ibm.wala.cast.ipa.callgraph.CAstCallGra * (keepIRs), */roots); - com.ibm.wala.ipa.callgraph.impl.Util.addDefaultSelectors(options, cha); + options.setSelector(new ClassHierarchyMethodTargetSelector(cha)); + options.setSelector(new ClassHierarchyClassTargetSelector(cha)); + options.setSelector(new StandardFunctionTargetSelector(cha, options.getMethodTargetSelector())); options.setUseConstantSpecificKeys(true); @@ -175,7 +185,7 @@ public class JSCallGraphUtil extends com.ibm.wala.cast.ipa.callgraph.CAstCallGra return loadAdditionalFile(cha, cl, new SourceURLModule(url)); } - public static Set loadAdditionalFile(IClassHierarchy cha, JavaScriptLoader cl, SourceModule M) + public static Set loadAdditionalFile(IClassHierarchy cha, JavaScriptLoader cl, ModuleEntry M) throws IOException { try { TranslatorToCAst toCAst = getTranslatorFactory().make(new CAstImpl(), M); @@ -244,13 +254,76 @@ public class JSCallGraphUtil extends com.ibm.wala.cast.ipa.callgraph.CAstCallGra } } - public static SourceModule getPrologueFile(final String name) { - return new SourceURLModule(JSCallGraphUtil.class.getClassLoader().getResource(name)) { - @Override - public String getName() { - return name; - } - }; + public static class Bootstrap implements SourceModule, Module, ModuleEntry { + private String name; + private InputStream stream; + private final URL url; + + public Bootstrap(String name, InputStream stream, URL url) { + this.name = name; + this.stream = stream; + this.url = url; + } + + @Override + public Iterator getEntries() { + return new NonNullSingletonIterator(this); + } + + @Override + public boolean isClassFile() { + return false; + } + + @Override + public boolean isSourceFile() { + return true; + } + + @Override + public InputStream getInputStream() { + return stream; + } + + @Override + public boolean isModuleFile() { + return false; + } + + @Override + public Module asModule() { + return this; + } + + @Override + public String getClassName() { + return getName(); + } + + @Override + public Module getContainer() { + return null; + } + + @Override + public String getName() { + return name; + } + + @Override + public Reader getInputReader() { + // TODO Auto-generated method stub + return null; + } + + @Override + public URL getURL() { + return url; + } + }; + + public static Module getPrologueFile(final String name) { + return new Bootstrap(name, JSCallGraphUtil.class.getClassLoader().getResourceAsStream(name), JSCallGraphUtil.class.getClassLoader().getResource(name)); } } diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSSSAPropagationCallGraphBuilder.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSSSAPropagationCallGraphBuilder.java index 89f009f5a..2abb34c78 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSSSAPropagationCallGraphBuilder.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSSSAPropagationCallGraphBuilder.java @@ -48,6 +48,7 @@ import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph; import com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey; import com.ibm.wala.ipa.callgraph.propagation.ConcreteTypeKey; @@ -79,7 +80,6 @@ import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.CancelException; import com.ibm.wala.util.CancelRuntimeException; import com.ibm.wala.util.MonitorUtil; -import com.ibm.wala.util.MonitorUtil.IProgressMonitor; import com.ibm.wala.util.collections.HashSetFactory; import com.ibm.wala.util.intset.IntSet; import com.ibm.wala.util.intset.IntSetAction; @@ -150,7 +150,7 @@ public class JSSSAPropagationCallGraphBuilder extends AstSSAPropagationCallGraph this.scriptBaseURL = url; } - protected JSSSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, + protected JSSSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, PointerKeyFactory pointerKeyFactory) { super(cha, options, cache, pointerKeyFactory); globalObject = new GlobalObjectKey(cha.lookupClass(JavaScriptTypes.Root)); @@ -555,12 +555,7 @@ public class JSSSAPropagationCallGraphBuilder extends AstSSAPropagationCallGraph private Position getInstructionPosition(SSAInstruction instruction) { IMethod method = node.getMethod(); if (method instanceof AstMethod) { - SSAInstruction[] instructions = ir.getInstructions(); - for (int ind = basicBlock.getFirstInstructionIndex(); ind <= basicBlock.getLastInstructionIndex(); ind++) { - if (instruction.equals(instructions[ind])) { - return ((AstMethod) method).getSourcePosition(ind); - } - } + return ((AstMethod) method).getSourcePosition(instruction.iindex); } return null; } @@ -1027,6 +1022,7 @@ public class JSSSAPropagationCallGraphBuilder extends AstSSAPropagationCallGraph public static void processCallingConstraintsInternal(AstSSAPropagationCallGraphBuilder builder, CGNode caller, SSAAbstractInvokeInstruction instruction, CGNode target, InstanceKey[][] constParams, PointerKey uniqueCatchKey) { + IR sourceIR = builder.getCFAContextInterpreter().getIR(caller); SymbolTable sourceST = sourceIR.getSymbolTable(); diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSZeroOrOneXCFABuilder.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSZeroOrOneXCFABuilder.java index 84199f534..58589dbc3 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSZeroOrOneXCFABuilder.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSZeroOrOneXCFABuilder.java @@ -10,10 +10,10 @@ *****************************************************************************/ package com.ibm.wala.cast.js.ipa.callgraph; -import com.ibm.wala.cast.ipa.callgraph.OneLevelForLexicalAccessFunctions; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.ContextSelector; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.MethodTargetSelector; import com.ibm.wala.ipa.callgraph.impl.ContextInsensitiveSelector; import com.ibm.wala.ipa.callgraph.impl.DelegatingContextSelector; @@ -32,13 +32,13 @@ public class JSZeroOrOneXCFABuilder extends JSCFABuilder { private static final boolean USE_OBJECT_SENSITIVITY = false; - public JSZeroOrOneXCFABuilder(IClassHierarchy cha, JSAnalysisOptions options, AnalysisCache cache, + public JSZeroOrOneXCFABuilder(IClassHierarchy cha, JSAnalysisOptions options, IAnalysisCacheView cache, ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter, int instancePolicy, boolean doOneCFA) { super(cha, options, cache); SSAContextInterpreter contextInterpreter = setupSSAContextInterpreter(cha, options, cache, appContextInterpreter); - setupMethodTargetSelector(cha, options); + setupMethodTargetSelector(cha, options, cache); setupContextSelector(options, appContextSelector, doOneCFA); @@ -71,11 +71,11 @@ public class JSZeroOrOneXCFABuilder extends JSCFABuilder { } - private void setupMethodTargetSelector(IClassHierarchy cha, JSAnalysisOptions options) { + private void setupMethodTargetSelector(IClassHierarchy cha, JSAnalysisOptions options, IAnalysisCacheView cache) { MethodTargetSelector targetSelector = new JavaScriptConstructTargetSelector(cha, options .getMethodTargetSelector()); if (options.handleCallApply()) { - targetSelector = new JavaScriptFunctionApplyTargetSelector(new JavaScriptFunctionDotCallTargetSelector(targetSelector)); + targetSelector = new JavaScriptFunctionApplyTargetSelector(new JavaScriptFunctionDotCallTargetSelector(targetSelector, cache)); } if (options.useLoadFileTargetSelector()) { targetSelector = new LoadFileTargetSelector(targetSelector, this); @@ -83,7 +83,7 @@ public class JSZeroOrOneXCFABuilder extends JSCFABuilder { options.setSelector(targetSelector); } - private SSAContextInterpreter setupSSAContextInterpreter(IClassHierarchy cha, JSAnalysisOptions options, AnalysisCache cache, + private SSAContextInterpreter setupSSAContextInterpreter(IClassHierarchy cha, JSAnalysisOptions options, IAnalysisCacheView cache, SSAContextInterpreter appContextInterpreter) { SSAContextInterpreter contextInterpreter = makeDefaultContextInterpreters(appContextInterpreter, options, cha); if (options.handleCallApply()) { diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JavaScriptFunctionApplyContextInterpreter.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JavaScriptFunctionApplyContextInterpreter.java index f8194af1a..6d808c444 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JavaScriptFunctionApplyContextInterpreter.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JavaScriptFunctionApplyContextInterpreter.java @@ -21,6 +21,7 @@ import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.ContextItem; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ssa.ConstantValue; import com.ibm.wala.ssa.DefUse; import com.ibm.wala.ssa.IR; @@ -38,7 +39,7 @@ public class JavaScriptFunctionApplyContextInterpreter extends AstContextInsensi private static final TypeName APPLY_TYPE_NAME = TypeName.findOrCreate("Lprologue.js/Function_prototype_apply"); - public JavaScriptFunctionApplyContextInterpreter(AnalysisOptions options, AnalysisCache cache) { + public JavaScriptFunctionApplyContextInterpreter(AnalysisOptions options, IAnalysisCacheView cache) { super(options, cache); } diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JavaScriptFunctionDotCallTargetSelector.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JavaScriptFunctionDotCallTargetSelector.java index 379ae220f..5759be1f2 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JavaScriptFunctionDotCallTargetSelector.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JavaScriptFunctionDotCallTargetSelector.java @@ -25,6 +25,7 @@ import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.MethodTargetSelector; import com.ibm.wala.ssa.IR; import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; @@ -61,9 +62,11 @@ public class JavaScriptFunctionDotCallTargetSelector implements MethodTargetSele private static final TypeName CALL_TYPE_NAME = TypeName.findOrCreate("Lprologue.js/Function_prototype_call"); private final MethodTargetSelector base; - public JavaScriptFunctionDotCallTargetSelector(MethodTargetSelector base) { - this.base = base; + private IAnalysisCacheView cache; + public JavaScriptFunctionDotCallTargetSelector(MethodTargetSelector base, IAnalysisCacheView cache2) { + this.base = base; + this.cache = cache2; } /* diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ObjectSensitivityContextSelector.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ObjectSensitivityContextSelector.java index 4b0e41fdc..f34c07da6 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ObjectSensitivityContextSelector.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ObjectSensitivityContextSelector.java @@ -82,4 +82,4 @@ public class ObjectSensitivityContextSelector implements ContextSelector { } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/PropertyNameContextSelector.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/PropertyNameContextSelector.java index c940e502f..bd81436dc 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/PropertyNameContextSelector.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/PropertyNameContextSelector.java @@ -19,16 +19,16 @@ import com.ibm.wala.cast.js.ipa.callgraph.correlations.CorrelationFinder; import com.ibm.wala.cast.js.ipa.callgraph.correlations.extraction.ClosureExtractor; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IMethod; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; import com.ibm.wala.ipa.callgraph.ContextItem; import com.ibm.wala.ipa.callgraph.ContextKey; import com.ibm.wala.ipa.callgraph.ContextSelector; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.ConstantKey; -import com.ibm.wala.ipa.callgraph.propagation.SelectiveCPAContext; import com.ibm.wala.ipa.callgraph.propagation.FilteredPointerKey.SingleInstanceFilter; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.callgraph.propagation.SelectiveCPAContext; import com.ibm.wala.ssa.DefUse; import com.ibm.wala.ssa.ReflectiveMemberAccess; import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; @@ -107,7 +107,7 @@ public class PropertyNameContextSelector implements ContextSelector { } } - private final AnalysisCache cache; + private final IAnalysisCacheView cache; private final ContextSelector base; private final int index; @@ -143,11 +143,11 @@ public class PropertyNameContextSelector implements ContextSelector { return dependentParameters; } - public PropertyNameContextSelector(AnalysisCache cache, ContextSelector base) { + public PropertyNameContextSelector(IAnalysisCacheView cache, ContextSelector base) { this(cache, 2, base); } - public PropertyNameContextSelector(AnalysisCache cache, int index, ContextSelector base) { + public PropertyNameContextSelector(IAnalysisCacheView cache, int index, ContextSelector base) { this.cache = cache; this.index = index; this.base = base; @@ -224,4 +224,4 @@ public class PropertyNameContextSelector implements ContextSelector { } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/Correlation.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/Correlation.java index d0c47fdc3..0d30e7483 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/Correlation.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/Correlation.java @@ -47,4 +47,4 @@ public abstract class Correlation { public abstract Position getEndPosition(SSASourcePositionMap positions); public abstract String pp(SSASourcePositionMap positions); public abstract T accept(CorrelationVisitor visitor); -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/CorrelationSummary.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/CorrelationSummary.java index 1f3b930bb..3da8fb694 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/CorrelationSummary.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/CorrelationSummary.java @@ -60,4 +60,4 @@ public final class CorrelationSummary { public SSASourcePositionMap getPositions() { return positions; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/EscapeCorrelation.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/EscapeCorrelation.java index b7b035835..b283b27ea 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/EscapeCorrelation.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/EscapeCorrelation.java @@ -60,4 +60,4 @@ public class EscapeCorrelation extends Correlation { public T accept(CorrelationVisitor visitor) { return visitor.visitEscapeCorrelation(this); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/ReadWriteCorrelation.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/ReadWriteCorrelation.java index 3438a2982..d513ca170 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/ReadWriteCorrelation.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/ReadWriteCorrelation.java @@ -54,4 +54,4 @@ public class ReadWriteCorrelation extends Correlation { public T accept(CorrelationVisitor visitor) { return visitor.visitReadWriteCorrelation(this); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/SSASourcePositionMap.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/SSASourcePositionMap.java index b373d5304..a3497223d 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/SSASourcePositionMap.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/SSASourcePositionMap.java @@ -34,4 +34,4 @@ public class SSASourcePositionMap { public Position getPosition(SSAInstruction inst) { return method.getSourcePosition(instrIndices.getMappedIndex(inst)); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/CAstRewriterExt.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/CAstRewriterExt.java index ab22deed7..47071b2ac 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/CAstRewriterExt.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/CAstRewriterExt.java @@ -24,8 +24,8 @@ import com.ibm.wala.cast.tree.CAstEntity; import com.ibm.wala.cast.tree.CAstNode; import com.ibm.wala.cast.tree.CAstSourcePositionMap; import com.ibm.wala.cast.tree.impl.CAstControlFlowRecorder; -import com.ibm.wala.cast.tree.rewrite.CAstRewriter; import com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey; +import com.ibm.wala.cast.tree.rewrite.CAstRewriter; import com.ibm.wala.util.collections.HashMapFactory; import com.ibm.wala.util.collections.HashSetFactory; import com.ibm.wala.util.collections.Pair; @@ -242,4 +242,4 @@ public abstract class CAstRewriterExt extends CAstRewriter { super(Ast, recursive, rootContext); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/CorrelatedPairExtractorFactory.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/CorrelatedPairExtractorFactory.java index 1b2bf4131..e6614b8e1 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/CorrelatedPairExtractorFactory.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/CorrelatedPairExtractorFactory.java @@ -53,4 +53,4 @@ public class CorrelatedPairExtractorFactory implements CAstRewriterFactory"; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/NodePos.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/NodePos.java index ff4888ee2..972965993 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/NodePos.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/NodePos.java @@ -13,8 +13,8 @@ package com.ibm.wala.cast.js.ipa.callgraph.correlations.extraction; import com.ibm.wala.cast.tree.CAstNode; import com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter; -import com.ibm.wala.cast.tree.rewrite.CAstRewriter; import com.ibm.wala.cast.tree.rewrite.CAstBasicRewriter.NoKey; +import com.ibm.wala.cast.tree.rewrite.CAstRewriter; /** * Representation of a node's position in a CAst entity's syntax tree. The position is stored as a zipper diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/summaries/JavaScriptConstructorFunctions.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/summaries/JavaScriptConstructorFunctions.java index 1ddd0032f..5bd749d17 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/summaries/JavaScriptConstructorFunctions.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/summaries/JavaScriptConstructorFunctions.java @@ -11,9 +11,13 @@ package com.ibm.wala.cast.js.ipa.summaries; -import java.io.File; -import java.io.FileWriter; import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; +import java.io.StringReader; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Iterator; import java.util.Map; import java.util.Set; @@ -27,10 +31,12 @@ import com.ibm.wala.cast.types.AstMethodReference; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.classLoader.Module; +import com.ibm.wala.classLoader.ModuleEntry; import com.ibm.wala.classLoader.NewSiteReference; +import com.ibm.wala.classLoader.SourceModule; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.summaries.MethodSummary; -import com.ibm.wala.shrikeBT.IConditionalBranchInstruction.IOperator; import com.ibm.wala.shrikeBT.IConditionalBranchInstruction.Operator; import com.ibm.wala.ssa.ConstantValue; import com.ibm.wala.ssa.IR; @@ -40,6 +46,7 @@ import com.ibm.wala.types.MethodReference; import com.ibm.wala.types.TypeName; import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.collections.HashMapFactory; +import com.ibm.wala.util.collections.NonNullSingletonIterator; import com.ibm.wala.util.collections.Pair; public class JavaScriptConstructorFunctions { @@ -434,7 +441,7 @@ public class JavaScriptConstructorFunctions { if (!ST.isStringConstant(callStmt.getUse(i))) return makeFunctionConstructor(cls, cls); - StringBuffer fun = new StringBuffer("function _fromctor ("); + final StringBuffer fun = new StringBuffer("function _fromctor ("); for (int j = 1; j < callStmt.getNumberOfUses() - 1; j++) { if (j != 1) fun.append(","); @@ -446,13 +453,83 @@ public class JavaScriptConstructorFunctions { fun.append("}"); try { - String fileName = "ctor$" + ++ctorCount; - File f = new File(System.getProperty("java.io.tmpdir") + File.separator + fileName); - FileWriter FO = new FileWriter(f); - FO.write(fun.toString()); - FO.close(); - - Set fnNames = JSCallGraphUtil.loadAdditionalFile(cha, cl, f.toURI().toURL()); + final String fileName = "ctor$" + ++ctorCount; + ModuleEntry ME = new SourceModule() { + + @Override + public String getName() { + return fileName; + } + + @Override + public boolean isClassFile() { + return false; + } + + @Override + public boolean isSourceFile() { + return true; + } + + @Override + public InputStream getInputStream() { + return new InputStream() { + private int i = 0; + @Override + public int read() throws IOException { + if (i >= fun.length()) { + return -1; + } else { + return fun.codePointAt(i++); + } + } + + }; + } + + @Override + public boolean isModuleFile() { + return false; + } + + @Override + public Module asModule() { + return null; + } + + @Override + public String getClassName() { + return fileName; + } + + @Override + public Module getContainer() { + return null; + } + + @Override + public Iterator getEntries() { + return new NonNullSingletonIterator(this); + } + + @Override + public Reader getInputReader() { + return new StringReader(fun.toString()); + } + + @Override + public URL getURL() { + try { + return new URL("file://" + fileName); + } catch (MalformedURLException e) { + assert false; + return null; + } + } + + }; + + Set fnNames = JSCallGraphUtil.loadAdditionalFile(cha, cl, ME); IClass fcls = null; for(String nm : fnNames) { if (nm.endsWith("_fromctor")) { @@ -460,10 +537,8 @@ public class JavaScriptConstructorFunctions { } } - assert fcls != null : "cannot find class for " + fileName + " in " + f; + assert fcls != null : "cannot find class for " + fileName; - f.delete(); - if (fcls != null) return makeFunctionConstructor(cls, fcls); diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java index 749f24a1f..ca0cf80c6 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java @@ -1015,7 +1015,7 @@ public class JavaScriptLoader extends CAstAbstractModuleLoader { @SuppressWarnings("unchecked") @Override protected TranslatorToCAst getTranslatorToCAst(final CAst ast, ModuleEntry module) { - TranslatorToCAst translator = translatorFactory.make(ast, (SourceModule)module); + TranslatorToCAst translator = translatorFactory.make(ast, module); if(preprocessor != null) translator.addRewriter(preprocessor, true); return translator; diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/JavaScriptLoopUnwindingTranslatorFactory.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/JavaScriptLoopUnwindingTranslatorFactory.java index 64db4fdc0..ddecc21d8 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/JavaScriptLoopUnwindingTranslatorFactory.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/JavaScriptLoopUnwindingTranslatorFactory.java @@ -17,6 +17,7 @@ import com.ibm.wala.cast.tree.rewrite.AstLoopUnwinder.UnwindKey; import com.ibm.wala.cast.tree.rewrite.CAstRewriter; import com.ibm.wala.cast.tree.rewrite.CAstRewriter.RewriteContext; import com.ibm.wala.cast.tree.rewrite.CAstRewriterFactory; +import com.ibm.wala.classLoader.ModuleEntry; import com.ibm.wala.classLoader.SourceFileModule; import com.ibm.wala.classLoader.SourceModule; @@ -36,7 +37,7 @@ public abstract class JavaScriptLoopUnwindingTranslatorFactory protected abstract TranslatorToCAst translateInternal(CAst Ast, SourceModule M, String N); @Override - public TranslatorToCAst make(CAst ast, final SourceModule M) { + public TranslatorToCAst make(CAst ast, final ModuleEntry M) { String N; if (M instanceof SourceFileModule) { N = ((SourceFileModule) M).getClassName(); @@ -44,7 +45,7 @@ public abstract class JavaScriptLoopUnwindingTranslatorFactory N = M.getName(); } - TranslatorToCAst xlator = translateInternal(ast, M, N); + TranslatorToCAst xlator = translateInternal(ast, (SourceModule)M, N); xlator.addRewriter(new CAstRewriterFactory,AstLoopUnwinder.UnwindKey>() { @Override public CAstRewriter, UnwindKey> createCAstRewriter(CAst ast) { diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/JavaScriptTranslatorFactory.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/JavaScriptTranslatorFactory.java index e2f0fd3cc..2ebd9fa05 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/JavaScriptTranslatorFactory.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/JavaScriptTranslatorFactory.java @@ -12,7 +12,7 @@ package com.ibm.wala.cast.js.translator; import com.ibm.wala.cast.ir.translator.TranslatorToCAst; import com.ibm.wala.cast.tree.CAst; -import com.ibm.wala.classLoader.SourceModule; +import com.ibm.wala.classLoader.ModuleEntry; /** * Factory interface for creating translators that generate the CAst for some @@ -21,6 +21,6 @@ import com.ibm.wala.classLoader.SourceModule; */ public interface JavaScriptTranslatorFactory { - TranslatorToCAst make(CAst ast, SourceModule M); + TranslatorToCAst make(CAst ast, ModuleEntry M); } diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/PropertyReadExpander.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/PropertyReadExpander.java index 3a4358f0a..b7317893f 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/PropertyReadExpander.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/translator/PropertyReadExpander.java @@ -18,7 +18,6 @@ import com.ibm.wala.cast.tree.CAstControlFlowMap; import com.ibm.wala.cast.tree.CAstNode; import com.ibm.wala.cast.tree.impl.CAstOperator; import com.ibm.wala.cast.tree.rewrite.CAstRewriter; -import com.ibm.wala.cast.tree.rewrite.CAstRewriter.CopyKey; import com.ibm.wala.util.collections.Pair; import com.ibm.wala.util.debug.Assertions; @@ -29,7 +28,7 @@ import com.ibm.wala.util.debug.Assertions; */ public class PropertyReadExpander extends CAstRewriter { - static enum ExpanderKey implements CopyKey { + static enum ExpanderKey implements com.ibm.wala.cast.tree.rewrite.CAstRewriter.CopyKey { EVERYWHERE, EXTRA { @Override public ExpanderKey parent() { return EVERYWHERE; } diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/types/JavaScriptTypes.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/types/JavaScriptTypes.java index 6647fc0d3..84ca9abd3 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/types/JavaScriptTypes.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/types/JavaScriptTypes.java @@ -71,4 +71,4 @@ public class JavaScriptTypes extends AstTypeReference { public static final TypeReference RegExpObject = TypeReference.findOrCreate(jsLoader, "LRegExpObject"); -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstPattern.java b/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstPattern.java index e8d3b3439..79fa13a38 100644 --- a/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstPattern.java +++ b/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstPattern.java @@ -16,8 +16,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import junit.framework.Assert; - import org.junit.Test; import com.ibm.wala.cast.tree.CAstNode; @@ -27,6 +25,8 @@ import com.ibm.wala.cast.util.CAstPattern.Segments; import com.ibm.wala.cast.util.CAstPrinter; import com.ibm.wala.core.tests.util.WalaTestCase; +import junit.framework.Assert; + public class TestCAstPattern extends WalaTestCase { private static final int NAME_ASSERTION_SINGLE = 501; diff --git a/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstTranslator.java b/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstTranslator.java index 25c498b09..73918993c 100644 --- a/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstTranslator.java +++ b/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstTranslator.java @@ -18,8 +18,6 @@ import java.util.Iterator; import java.util.Map; import java.util.Set; -import junit.framework.Assert; - import com.ibm.wala.cast.ipa.callgraph.CAstCallGraphUtil; import com.ibm.wala.cast.ir.ssa.AstIRFactory; import com.ibm.wala.cast.loader.SingleClassLoaderFactory; @@ -38,6 +36,8 @@ import com.ibm.wala.ssa.SSAOptions; import com.ibm.wala.util.collections.HashMapFactory; import com.ibm.wala.util.collections.Pair; +import junit.framework.Assert; + public abstract class TestCAstTranslator extends WalaTestCase { protected static class TranslatorAssertions { diff --git a/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCallGraphShape.java b/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCallGraphShape.java index 820edf8d5..8c16263ff 100644 --- a/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCallGraphShape.java +++ b/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCallGraphShape.java @@ -13,8 +13,6 @@ package com.ibm.wala.cast.test; import java.util.Collection; import java.util.Iterator; -import junit.framework.Assert; - import com.ibm.wala.cast.loader.AstMethod; import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position; import com.ibm.wala.classLoader.CallSiteReference; @@ -26,6 +24,8 @@ import com.ibm.wala.ssa.SSACFG; import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.util.collections.NonNullSingletonIterator; +import junit.framework.Assert; + public abstract class TestCallGraphShape extends WalaTestCase { protected void verifyCFGAssertions(CallGraph CG, Object[][] assertionData) { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ArgumentInstanceContext.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ArgumentInstanceContext.java index 6aaf8d47c..79753d884 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ArgumentInstanceContext.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ArgumentInstanceContext.java @@ -79,4 +79,4 @@ public class ArgumentInstanceContext implements Context { } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCallGraph.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCallGraph.java index 53a29749e..c34f0d5d4 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCallGraph.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCallGraph.java @@ -20,10 +20,10 @@ import com.ibm.wala.cfg.InducedCFG; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph; @@ -40,17 +40,17 @@ import com.ibm.wala.util.collections.HashSetFactory; import com.ibm.wala.util.functions.Function; public class AstCallGraph extends ExplicitCallGraph { - public AstCallGraph(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public AstCallGraph(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(cha, options, cache); } public static class AstFakeRoot extends AbstractRootMethod { - public AstFakeRoot(MethodReference rootMethod, IClass declaringClass, IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public AstFakeRoot(MethodReference rootMethod, IClass declaringClass, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(rootMethod, declaringClass, cha, options, cache); } - public AstFakeRoot(MethodReference rootMethod, IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public AstFakeRoot(MethodReference rootMethod, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(rootMethod, cha, options, cache); } @@ -68,11 +68,11 @@ public class AstCallGraph extends ExplicitCallGraph { public static abstract class ScriptFakeRoot extends AstFakeRoot { - public ScriptFakeRoot(MethodReference rootMethod, IClass declaringClass, IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public ScriptFakeRoot(MethodReference rootMethod, IClass declaringClass, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(rootMethod, declaringClass, cha, options, cache); } - public ScriptFakeRoot(MethodReference rootMethod, IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public ScriptFakeRoot(MethodReference rootMethod, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(rootMethod, cha, options, cache); } diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstContextInsensitiveSSAContextInterpreter.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstContextInsensitiveSSAContextInterpreter.java index 60a52bb7a..d5a3e8679 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstContextInsensitiveSSAContextInterpreter.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstContextInsensitiveSSAContextInterpreter.java @@ -21,6 +21,7 @@ import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.cfa.ContextInsensitiveSSAInterpreter; import com.ibm.wala.ssa.IR; import com.ibm.wala.util.collections.EmptyIterator; @@ -33,7 +34,7 @@ import com.ibm.wala.util.collections.EmptyIterator; */ public class AstContextInsensitiveSSAContextInterpreter extends ContextInsensitiveSSAInterpreter { - public AstContextInsensitiveSSAContextInterpreter(AnalysisOptions options, AnalysisCache cache) { + public AstContextInsensitiveSSAContextInterpreter(AnalysisOptions options, IAnalysisCacheView cache) { super(options, cache); } diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java index 6139f528b..d79f54d8b 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java @@ -42,6 +42,7 @@ import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph; import com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey; import com.ibm.wala.ipa.callgraph.propagation.HeapModel; @@ -115,7 +116,7 @@ public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCa public abstract GlobalObjectKey getGlobalObject(Atom language); - protected AstSSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, + protected AstSSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, PointerKeyFactory pointerKeyFactory) { super(cha, options, cache, pointerKeyFactory); } @@ -379,7 +380,7 @@ public abstract class AstSSAPropagationCallGraphBuilder extends SSAPropagationCa int lvn = ((LocalPointerKey) lexicalKey).getValueNumber(); IR lir = getBuilder().getCFAContextInterpreter().getIR(lnode); SymbolTable lsymtab = lir.getSymbolTable(); - DefUse ldu = getAnalysisCache().getSSACache().findOrCreateDU(lir, lnode.getContext()); + DefUse ldu = getAnalysisCache().getDefUse(lir); if (contentsAreInvariant(lsymtab, ldu, lvn)) { InstanceKey[] ik = getInvariantContents(lsymtab, ldu, lnode, lvn); system.recordImplicitPointsToSet(lexicalKey); diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstAnalysisScope.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstAnalysisScope.java index 786124156..e4fc761fb 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstAnalysisScope.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstAnalysisScope.java @@ -17,7 +17,7 @@ import java.util.Collections; import com.ibm.wala.cast.loader.SingleClassLoaderFactory; import com.ibm.wala.classLoader.ArrayClassLoader; import com.ibm.wala.classLoader.Language; -import com.ibm.wala.classLoader.SourceModule; +import com.ibm.wala.classLoader.Module; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.types.ClassLoaderReference; import com.ibm.wala.util.debug.Assertions; @@ -40,7 +40,7 @@ public class CAstAnalysisScope extends AnalysisScope { } } - public CAstAnalysisScope(SourceModule[] sources, SingleClassLoaderFactory loaders, Collection languages) + public CAstAnalysisScope(Module[] sources, SingleClassLoaderFactory loaders, Collection languages) throws IOException { this(loaders, languages); for (int i = 0; i < sources.length; i++) { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstCallGraphUtil.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstCallGraphUtil.java index ea64cc5c5..f343a1be5 100755 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstCallGraphUtil.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CAstCallGraphUtil.java @@ -24,9 +24,10 @@ import org.apache.commons.io.input.BOMInputStream; import com.ibm.wala.cast.loader.SingleClassLoaderFactory; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.classLoader.Language; +import com.ibm.wala.classLoader.Module; import com.ibm.wala.classLoader.SourceFileModule; -import com.ibm.wala.classLoader.SourceModule; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; @@ -83,14 +84,14 @@ public class CAstCallGraphUtil { return result; } - public static AnalysisScope makeScope(SourceModule[] files, SingleClassLoaderFactory loaders, Language language) + public static AnalysisScope makeScope(Module[] files, SingleClassLoaderFactory loaders, Language language) throws IOException { CAstAnalysisScope result = new CAstAnalysisScope(files, loaders, Collections.singleton(language)); return result; } public static AnalysisCache makeCache(IRFactory factory) { - return new AnalysisCache(factory); + return new AnalysisCacheImpl(factory); } public static String getShortName(CGNode nd) { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageCallGraph.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageCallGraph.java index 75550b238..182e415f5 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageCallGraph.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageCallGraph.java @@ -19,9 +19,9 @@ import com.ibm.wala.cast.util.TargetLanguageSelector; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.callgraph.impl.FakeRootMethod; @@ -50,7 +50,7 @@ import com.ibm.wala.util.strings.Atom; public class CrossLanguageCallGraph extends AstCallGraph { public CrossLanguageCallGraph(TargetLanguageSelector roots, IClassHierarchy cha, - AnalysisOptions options, AnalysisCache cache) { + AnalysisOptions options, IAnalysisCacheView cache) { super(cha, options, cache); this.roots = roots; } @@ -93,11 +93,11 @@ public class CrossLanguageCallGraph extends AstCallGraph { public class CrossLanguageFakeRoot extends ScriptFakeRoot { - public CrossLanguageFakeRoot(IClass declaringClass, IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public CrossLanguageFakeRoot(IClass declaringClass, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(FakeRootMethod.rootMethod, declaringClass, cha, options, cache); } - public CrossLanguageFakeRoot(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public CrossLanguageFakeRoot(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(FakeRootMethod.rootMethod, cha, options, cache); } diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageMethodTargetSelector.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageMethodTargetSelector.java index f6c07a713..9e87fc569 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageMethodTargetSelector.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/CrossLanguageMethodTargetSelector.java @@ -15,7 +15,6 @@ import java.util.Map; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; -import com.ibm.wala.classLoader.Language; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.MethodTargetSelector; import com.ibm.wala.types.MethodReference; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScopeMappingInstanceKeys.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScopeMappingInstanceKeys.java index 708225165..a11c3d422 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScopeMappingInstanceKeys.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScopeMappingInstanceKeys.java @@ -23,9 +23,9 @@ import com.ibm.wala.ipa.callgraph.propagation.InstanceKeyFactory; import com.ibm.wala.ipa.callgraph.propagation.PointerKey; import com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder; import com.ibm.wala.types.TypeReference; +import com.ibm.wala.util.Predicate; import com.ibm.wala.util.collections.CompoundIterator; import com.ibm.wala.util.collections.EmptyIterator; -import com.ibm.wala.util.Predicate; import com.ibm.wala.util.collections.FilterIterator; import com.ibm.wala.util.collections.NonNullSingletonIterator; import com.ibm.wala.util.collections.Pair; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScriptEntryPoints.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScriptEntryPoints.java index 4163be198..dc27015b1 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScriptEntryPoints.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/ScriptEntryPoints.java @@ -115,4 +115,4 @@ public abstract class ScriptEntryPoints implements Iterable { assert false; return null; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/StandardFunctionTargetSelector.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/StandardFunctionTargetSelector.java index 9f9f40a2e..25a7a2f08 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/StandardFunctionTargetSelector.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/StandardFunctionTargetSelector.java @@ -27,6 +27,7 @@ public class StandardFunctionTargetSelector implements MethodTargetSelector { private final MethodTargetSelector base; public StandardFunctionTargetSelector(IClassHierarchy cha, MethodTargetSelector base) { + assert cha != null; this.cha = cha; this.base = base; } diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/CAstBinaryOp.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/CAstBinaryOp.java index f1254885f..4bf436bb2 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/CAstBinaryOp.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/CAstBinaryOp.java @@ -11,7 +11,6 @@ package com.ibm.wala.cast.ir.ssa; import com.ibm.wala.shrikeBT.IBinaryOpInstruction; -import com.ibm.wala.shrikeBT.IUnaryOpInstruction; public enum CAstBinaryOp implements IBinaryOpInstruction.IOperator { CONCAT, EQ, NE, LT, GE, GT, LE, STRICT_EQ, STRICT_NE; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/CAstUnaryOp.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/CAstUnaryOp.java index 05de50f3f..67a72e3f1 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/CAstUnaryOp.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/CAstUnaryOp.java @@ -10,7 +10,6 @@ *****************************************************************************/ package com.ibm.wala.cast.ir.ssa; -import com.ibm.wala.shrikeBT.IBinaryOpInstruction; import com.ibm.wala.shrikeBT.IUnaryOpInstruction; diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractClassEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractClassEntity.java index 7686a7c13..78874344a 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractClassEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractClassEntity.java @@ -50,4 +50,4 @@ public class AbstractClassEntity extends AbstractDataEntity { public Collection getQualifiers() { return type.getQualifiers(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractCodeEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractCodeEntity.java index 3c44f746d..d288d5f5e 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractCodeEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractCodeEntity.java @@ -89,4 +89,4 @@ public abstract class AbstractCodeEntity extends AbstractEntity { public void setAst(CAstNode Ast) { this.Ast = Ast; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractDataEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractDataEntity.java index 71694e25b..f6796d5af 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractDataEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractDataEntity.java @@ -54,4 +54,4 @@ abstract class AbstractDataEntity extends AbstractEntity { public int getArgumentCount() { return 0; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractEntity.java index 99026bb20..3b1578f55 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractEntity.java @@ -74,4 +74,4 @@ public abstract class AbstractEntity implements CAstEntity { } scopedEntities.get(construct).add(child); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractFieldEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractFieldEntity.java index c8d68ebfa..5a77909dc 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractFieldEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractFieldEntity.java @@ -68,4 +68,4 @@ class AbstractFieldEntity extends AbstractDataEntity { public Collection getQualifiers() { return modifiers; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractScriptEntity.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractScriptEntity.java index b77af1dd2..f110f9b7d 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractScriptEntity.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AbstractScriptEntity.java @@ -76,4 +76,4 @@ public class AbstractScriptEntity extends AbstractCodeEntity { public String getFileName() { return file.getAbsolutePath(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/loader/CAstAbstractLoader.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/loader/CAstAbstractLoader.java index 6babc2375..d2322bdf9 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/loader/CAstAbstractLoader.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/loader/CAstAbstractLoader.java @@ -213,4 +213,4 @@ public abstract class CAstAbstractLoader implements IClassLoader { } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/NodeOfKind.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/NodeOfKind.java index b3850255f..1f961bb1c 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/NodeOfKind.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/NodeOfKind.java @@ -43,4 +43,4 @@ public class NodeOfKind implements NodePattern { return false; return true; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/NodePattern.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/NodePattern.java index 33d10cad3..9f65cdb6b 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/NodePattern.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/NodePattern.java @@ -21,4 +21,4 @@ import com.ibm.wala.cast.tree.CAstNode; */ public interface NodePattern { public abstract boolean matches(CAstNode node); -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/SomeConstant.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/SomeConstant.java index 4c05605b1..64129b66e 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/SomeConstant.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/SomeConstant.java @@ -37,4 +37,4 @@ public class SomeConstant extends NodeOfKind { public Object getLastMatch() { return last_match; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/SubtreeOfKind.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/SubtreeOfKind.java index 61d7d9437..00b76b975 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/SubtreeOfKind.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/SubtreeOfKind.java @@ -28,4 +28,4 @@ public class SubtreeOfKind extends NodeOfKind { public boolean matches(CAstNode node) { return node != null && node.getKind() == this.kind; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/rewrite/CAstBasicRewriter.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/rewrite/CAstBasicRewriter.java index 5e2cb509b..f149eabf6 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/rewrite/CAstBasicRewriter.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/rewrite/CAstBasicRewriter.java @@ -76,4 +76,4 @@ public abstract class CAstBasicRewriter @Override protected abstract CAstNode copyNodes(CAstNode root, final CAstControlFlowMap cfg, NonCopyingContext context, Map, CAstNode> nodeMap); -} \ No newline at end of file +} diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPrinter.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPrinter.java index 6f9556ae6..e5583ff55 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPrinter.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPrinter.java @@ -11,7 +11,6 @@ package com.ibm.wala.cast.util; import java.io.IOException; -import java.io.StringWriter; import java.io.Writer; import java.util.Collection; import java.util.Iterator; @@ -21,6 +20,29 @@ import com.ibm.wala.cast.tree.CAstNode; import com.ibm.wala.cast.tree.CAstSourcePositionMap; public class CAstPrinter { + private static final class StringWriter extends Writer { + private final StringBuffer sb; + + private StringWriter(StringBuffer sb) { + this.sb = sb; + } + + @Override + public void write(char[] cbuf, int off, int len) throws IOException { + sb.append(new String(cbuf, off, len)); + } + + @Override + public void flush() throws IOException { + // do nothing + } + + @Override + public void close() throws IOException { + // do nothing + } + } + private static CAstPrinter instance= new CAstPrinter(); public static void setPrinter(CAstPrinter printer) { @@ -124,30 +146,16 @@ public class CAstPrinter { public String doPrint(CAstNode top, CAstSourcePositionMap pos) { final StringBuffer sb = new StringBuffer(); - Writer writer = new Writer() { - @Override - public void write(char[] cbuf, int off, int len) throws IOException { - sb.append(new String(cbuf, off, len)); - } - - @Override - public void flush() throws IOException { - // do nothing - } - - @Override - public void close() throws IOException { - // do nothing - } - }; + Writer writer = new StringWriter(sb); printTo(top, pos, writer); return sb.toString(); } public String doPrint(CAstEntity ce) { - StringWriter writer = new StringWriter(); + final StringBuffer sb = new StringBuffer(); + StringWriter writer = new StringWriter(sb); printTo(ce, writer); - return writer.toString(); + return sb.toString(); } public static String print(CAstEntity ce) { diff --git a/com.ibm.wala.core.testdata/src/cfg/MonitorTest.java b/com.ibm.wala.core.testdata/src/cfg/MonitorTest.java index 3f25c3183..d01966d26 100644 --- a/com.ibm.wala.core.testdata/src/cfg/MonitorTest.java +++ b/com.ibm.wala.core.testdata/src/cfg/MonitorTest.java @@ -44,4 +44,4 @@ public class MonitorTest { void dummy() { } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.testdata/src/demandpa/TestMethodRecursion.java b/com.ibm.wala.core.testdata/src/demandpa/TestMethodRecursion.java index 730196f03..cda149681 100644 --- a/com.ibm.wala.core.testdata/src/demandpa/TestMethodRecursion.java +++ b/com.ibm.wala.core.testdata/src/demandpa/TestMethodRecursion.java @@ -66,4 +66,4 @@ public class TestMethodRecursion { Object o3 = foo(o1, o2, false); DemandPATestUtil.testThisVar(o3); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.testdata/src/multiDim/TestMultiDim.java b/com.ibm.wala.core.testdata/src/multiDim/TestMultiDim.java index 85dfb292b..5583865f7 100644 --- a/com.ibm.wala.core.testdata/src/multiDim/TestMultiDim.java +++ b/com.ibm.wala.core.testdata/src/multiDim/TestMultiDim.java @@ -29,4 +29,4 @@ public class TestMultiDim { String[][][] x = new String[3][4][]; doNothing(x); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.testdata/src/slice/JustThrow.java b/com.ibm.wala.core.testdata/src/slice/JustThrow.java index 86fb2e680..bdf41bb26 100644 --- a/com.ibm.wala.core.testdata/src/slice/JustThrow.java +++ b/com.ibm.wala.core.testdata/src/slice/JustThrow.java @@ -15,4 +15,4 @@ public class JustThrow { } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.testdata/src/slice/TestThrowCatch.java b/com.ibm.wala.core.testdata/src/slice/TestThrowCatch.java index 05618b4c7..aee17f7e4 100644 --- a/com.ibm.wala.core.testdata/src/slice/TestThrowCatch.java +++ b/com.ibm.wala.core.testdata/src/slice/TestThrowCatch.java @@ -41,4 +41,4 @@ public class TestThrowCatch { doNothing(x); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/launchers/ConstructAllIRs.launch b/com.ibm.wala.core.tests/launchers/ConstructAllIRs.launch index 346f07618..b43baef4e 100644 --- a/com.ibm.wala.core.tests/launchers/ConstructAllIRs.launch +++ b/com.ibm.wala.core.tests/launchers/ConstructAllIRs.launch @@ -1,4 +1,4 @@ - + @@ -6,6 +6,7 @@ + diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/arraybounds/ArrayboundsAnalysisTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/arraybounds/ArrayboundsAnalysisTest.java index 4753c0b09..3230885ad 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/arraybounds/ArrayboundsAnalysisTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/arraybounds/ArrayboundsAnalysisTest.java @@ -1,5 +1,8 @@ package com.ibm.wala.core.tests.arraybounds; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.not; + import java.io.IOException; import org.hamcrest.Matcher; @@ -9,8 +12,6 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ErrorCollector; -import static org.hamcrest.CoreMatchers.*; - import com.ibm.wala.analysis.arraybounds.ArrayOutOfBoundsAnalysis; import com.ibm.wala.analysis.arraybounds.ArrayOutOfBoundsAnalysis.UnnecessaryCheck; import com.ibm.wala.classLoader.IClass; diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/arraybounds/PruneArrayOutOfBoundExceptionEdge.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/arraybounds/PruneArrayOutOfBoundExceptionEdge.java index 133aa7887..c2afec116 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/arraybounds/PruneArrayOutOfBoundExceptionEdge.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/arraybounds/PruneArrayOutOfBoundExceptionEdge.java @@ -1,6 +1,9 @@ package com.ibm.wala.core.tests.arraybounds; -import static org.hamcrest.CoreMatchers.*; +import static org.hamcrest.CoreMatchers.anyOf; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.everyItem; +import static org.hamcrest.CoreMatchers.hasItem; import java.io.IOException; import java.util.LinkedHashSet; diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/basic/GraphDataflowTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/basic/GraphDataflowTest.java index 3a5e310f2..8aced6577 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/basic/GraphDataflowTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/basic/GraphDataflowTest.java @@ -217,4 +217,4 @@ public class GraphDataflowTest extends WalaTestCase { } return result.toString(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/AcyclicCallGraphTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/AcyclicCallGraphTest.java index fe219dc72..8501a9992 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/AcyclicCallGraphTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/AcyclicCallGraphTest.java @@ -10,7 +10,7 @@ import org.junit.Test; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -38,7 +38,7 @@ public class AcyclicCallGraphTest extends WalaTestCase { "Lrecurse/NList"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(), cha, scope, false); IBinaryNaturalRelation backEdges = Acyclic.computeBackEdges(cg, cg.getFakeRootNode()); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CPATest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CPATest.java index 2d4d3773d..d43c16748 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CPATest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CPATest.java @@ -18,7 +18,7 @@ import org.junit.Test; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -57,7 +57,7 @@ public class CPATest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, testClass); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - SSAPropagationCallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCache(), cha, scope); + SSAPropagationCallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCacheImpl(), cha, scope); builder.setContextSelector(new CPAContextSelector(builder.getContextSelector())); CallGraph cg = builder.makeCallGraph(options, null); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CallGraphTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CallGraphTest.java index f88dbe2a1..da83b7dc6 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CallGraphTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CallGraphTest.java @@ -24,6 +24,7 @@ import com.ibm.wala.core.tests.demandpa.AbstractPtrTest; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -76,7 +77,7 @@ public class CallGraphTest extends WalaTestCase { TestConstants.JAVA_CUP_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - doCallGraphs(options, new AnalysisCache(), cha, scope, useShortProfile()); + doCallGraphs(options, new AnalysisCacheImpl(), cha, scope, useShortProfile()); } @Test public void testBcelVerifier() throws ClassHierarchyException, IllegalArgumentException, CancelException, IOException { @@ -86,7 +87,7 @@ public class CallGraphTest extends WalaTestCase { TestConstants.BCEL_VERIFIER_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - doCallGraphs(options, new AnalysisCache(), cha, scope); + doCallGraphs(options, new AnalysisCacheImpl(), cha, scope); } @Test public void testJLex() throws ClassHierarchyException, IllegalArgumentException, CancelException, IOException { @@ -96,7 +97,7 @@ public class CallGraphTest extends WalaTestCase { .makeMainEntrypoints(scope, cha, TestConstants.JLEX_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - doCallGraphs(options, new AnalysisCache(), cha, scope); + doCallGraphs(options, new AnalysisCacheImpl(), cha, scope); } @Test public void testCornerCases() throws ClassHierarchyException, IllegalArgumentException, CancelException, IOException { @@ -106,7 +107,7 @@ public class CallGraphTest extends WalaTestCase { Iterable entrypoints = new AllApplicationEntrypoints(scope, cha); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - doCallGraphs(options, new AnalysisCache(), cha, scope); + doCallGraphs(options, new AnalysisCacheImpl(), cha, scope); // we expect a warning or two about class Abstract1, which has no concrete // subclasses @@ -126,7 +127,7 @@ public class CallGraphTest extends WalaTestCase { TestConstants.HELLO_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - doCallGraphs(options, new AnalysisCache(), cha, scope); + doCallGraphs(options, new AnalysisCacheImpl(), cha, scope); } @Test public void testStaticInit() throws ClassHierarchyException, IllegalArgumentException, CancelException, IOException { @@ -136,7 +137,7 @@ public class CallGraphTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, "LstaticInit/TestStaticInit"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(), cha, scope, false); boolean foundDoNothing = false; for (CGNode n : cg) { if (n.toString().contains("doNothing")) { @@ -146,7 +147,7 @@ public class CallGraphTest extends WalaTestCase { } Assert.assertTrue(foundDoNothing); options.setHandleStaticInit(false); - cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(), cha, scope, false); for (CGNode n : cg) { Assert.assertTrue(!n.toString().contains("doNothing")); } @@ -159,7 +160,7 @@ public class CallGraphTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, "Llambda/SortingExample"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(), cha, scope, false); boolean foundSortForward = false; for (CGNode n : cg) { if (n.toString().contains("sortForward")) { @@ -176,7 +177,7 @@ public class CallGraphTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, "LstaticInit/TestSystemProperties"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - SSAPropagationCallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCache(), cha, scope); + SSAPropagationCallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options); for (CGNode n : cg) { if (n.toString().equals("Node: < Application, LstaticInit/TestSystemProperties, main([Ljava/lang/String;)V > Context: Everywhere")) { @@ -201,7 +202,7 @@ public class CallGraphTest extends WalaTestCase { TestConstants.RECURSE_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - doCallGraphs(options, new AnalysisCache(), cha, scope); + doCallGraphs(options, new AnalysisCacheImpl(), cha, scope); } @Test public void testHelloAllEntrypoints() throws ClassHierarchyException, IllegalArgumentException, CancelException, IOException { @@ -211,7 +212,7 @@ public class CallGraphTest extends WalaTestCase { Iterable entrypoints = new AllApplicationEntrypoints(scope, cha); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - doCallGraphs(options, new AnalysisCache(), cha, scope); + doCallGraphs(options, new AnalysisCacheImpl(), cha, scope); } @Test public void testIO() throws ClassHierarchyException, IllegalArgumentException, CancelException, IOException { @@ -220,7 +221,7 @@ public class CallGraphTest extends WalaTestCase { Iterable entrypoints = makePrimordialPublicEntrypoints(scope, cha, "java/io"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(), cha, scope, false); } public static Iterable makePrimordialPublicEntrypoints(AnalysisScope scope, ClassHierarchy cha, String pkg) { @@ -259,7 +260,7 @@ public class CallGraphTest extends WalaTestCase { Iterable entrypoints = makePrimordialMainEntrypoints(scope, cha); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(), cha, scope, false); } @Test @@ -269,7 +270,7 @@ public class CallGraphTest extends WalaTestCase { ClassHierarchy cha = ClassHierarchyFactory.make(scope); Iterable entrypoints = Util.makeMainEntrypoints(scope, cha, "Ldemandpa/TestArraysCopyOf"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - AnalysisCache cache = new AnalysisCache(); + AnalysisCache cache = new AnalysisCacheImpl(); CallGraphBuilder builder = Util.makeZeroOneContainerCFABuilder(options, cache, cha, scope); CallGraph cg = builder.makeCallGraph(options, null); PointerAnalysis pa = builder.getPointerAnalysis(); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/ClassConstantTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/ClassConstantTest.java index 67d84196a..138654984 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/ClassConstantTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/ClassConstantTest.java @@ -18,7 +18,7 @@ import org.junit.Test; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -51,7 +51,7 @@ public class ClassConstantTest extends WalaTestCase { // make call graph Iterable entrypoints = Util.makeMainEntrypoints(scope, cha, TestConstants.CLASSCONSTANT_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(), cha, scope, false); // System.out.println("\nCall graph:"); // Trace.println(cg); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CloneTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CloneTest.java index 0dd1d29d2..ada9f270c 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CloneTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/CloneTest.java @@ -20,7 +20,7 @@ import org.junit.Test; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -47,7 +47,7 @@ public class CloneTest extends WalaTestCase { Iterable entrypoints = new AllApplicationEntrypoints(scope, cha); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildRTA(options, new AnalysisCache(),cha, scope); + CallGraph cg = CallGraphTestUtil.buildRTA(options, new AnalysisCacheImpl(),cha, scope); // Find node corresponding to java.text.MessageFormat.clone() TypeReference t = TypeReference.findOrCreate(ClassLoaderReference.Primordial, "Ljava/text/MessageFormat"); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/DefaultMethodsTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/DefaultMethodsTest.java index 34ce34ab9..695295f78 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/DefaultMethodsTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/DefaultMethodsTest.java @@ -17,7 +17,7 @@ import org.junit.Test; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -44,7 +44,7 @@ public class DefaultMethodsTest extends WalaTestCase { "LdefaultMethods/DefaultMethods"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(), cha, scope, false); // Find node corresponding to main TypeReference tm = TypeReference.findOrCreate(ClassLoaderReference.Application, "LdefaultMethods/DefaultMethods"); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/FinalizerTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/FinalizerTest.java index f5d6c4306..c672f70e4 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/FinalizerTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/FinalizerTest.java @@ -11,22 +11,18 @@ package com.ibm.wala.core.tests.callGraph; import java.io.IOException; -import java.util.Iterator; -import java.util.Set; import org.junit.Assert; import org.junit.Test; -import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; import com.ibm.wala.ipa.callgraph.Entrypoint; -import com.ibm.wala.ipa.callgraph.impl.AllApplicationEntrypoints; import com.ibm.wala.ipa.cha.ClassHierarchy; import com.ibm.wala.ipa.cha.ClassHierarchyException; import com.ibm.wala.ipa.cha.ClassHierarchyFactory; @@ -48,7 +44,7 @@ public class FinalizerTest extends WalaTestCase { "Lfinalizers/Finalizers"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(), cha, scope, false); // Find node corresponding to finalize TypeReference t = TypeReference.findOrCreate(ClassLoaderReference.Application, "Lfinalizers/Finalizers"); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/Java7CallGraphTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/Java7CallGraphTest.java index 66975ac84..55eabf920 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/Java7CallGraphTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/Java7CallGraphTest.java @@ -21,6 +21,7 @@ import org.junit.Test; import com.ibm.wala.analysis.reflection.java7.MethodHandles; import com.ibm.wala.core.tests.shrike.DynamicCallGraphTestBase; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraph; @@ -55,7 +56,7 @@ public class Java7CallGraphTest extends DynamicCallGraphTestBase { ClassHierarchy cha = ClassHierarchyFactory.make(scope); Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, "Lpack/ocamljavaMain"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - AnalysisCache cache = new AnalysisCache(); + AnalysisCache cache = new AnalysisCacheImpl(); SSAPropagationCallGraphBuilder builder = Util.makeZeroOneContainerCFABuilder(options, cache, cha, scope); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/LambdaTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/LambdaTest.java index b55a7d870..457211903 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/LambdaTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/LambdaTest.java @@ -20,7 +20,7 @@ import org.junit.Test; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -49,7 +49,7 @@ public class LambdaTest extends WalaTestCase { "Llambda/SortingExample"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(), cha, scope, false); // Find compareTo TypeReference str = TypeReference.findOrCreate(ClassLoaderReference.Primordial, "Ljava/lang/String"); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/PiNodeCallGraphTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/PiNodeCallGraphTest.java index f637290cc..75772fb34 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/PiNodeCallGraphTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/PiNodeCallGraphTest.java @@ -20,7 +20,7 @@ import org.junit.Test; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -29,6 +29,7 @@ import com.ibm.wala.ipa.callgraph.Entrypoint; import com.ibm.wala.ipa.cha.ClassHierarchy; import com.ibm.wala.ipa.cha.ClassHierarchyException; import com.ibm.wala.ipa.cha.ClassHierarchyFactory; +import com.ibm.wala.ssa.DefaultIRFactory; import com.ibm.wala.ssa.SSAOptions; import com.ibm.wala.ssa.SSAPiNodePolicy; import com.ibm.wala.types.ClassLoaderReference; @@ -82,7 +83,7 @@ public class PiNodeCallGraphTest extends WalaTestCase { SSAPiNodePolicy policy = usePiNodes ? SSAOptions.getAllBuiltInPiNodes() : null; options.getSSAOptions().setPiNodePolicy(policy); - return CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + return CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(new DefaultIRFactory(), options.getSSAOptions()), cha, scope, false); } private void checkCallAssertions(CallGraph cg, int desiredNumberOfTargets, int desiredNumberOfCalls, int numLocalCastCallees) { @@ -119,4 +120,4 @@ public class PiNodeCallGraphTest extends WalaTestCase { checkCallAssertions(doGraph(true), 1, 2, 1); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/ReflectionTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/ReflectionTest.java index 913d63b69..61136b2bf 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/ReflectionTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/ReflectionTest.java @@ -23,7 +23,7 @@ import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -93,7 +93,7 @@ public class ReflectionTest extends WalaTestCase { AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); Warnings.clear(); - CallGraphTest.doCallGraphs(options, new AnalysisCache(), cha, scope); + CallGraphTest.doCallGraphs(options, new AnalysisCacheImpl(), cha, scope); for (Iterator it = Warnings.iterator(); it.hasNext();) { Warning w = it.next(); if (w.toString().indexOf("com/ibm/jvm") > 0) { @@ -117,7 +117,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT2_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Ljava/lang/Integer"); MethodReference mr = MethodReference.findOrCreate(tr, "", "()V"); @@ -136,7 +136,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT3_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Ljava/lang/Class"); MethodReference mr = MethodReference.findOrCreate(tr, "newInstance", "()Ljava/lang/Object;"); @@ -168,7 +168,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT4_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Ljava/lang/Class"); MethodReference mr = MethodReference.findOrCreate(tr, "newInstance", "()Ljava/lang/Object;"); @@ -198,7 +198,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT5_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Ljava/lang/Class"); MethodReference mr = MethodReference.findOrCreate(tr, "newInstance", "()Ljava/lang/Object;"); @@ -228,7 +228,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT6_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Ljava/lang/Class"); MethodReference mr = MethodReference.findOrCreate(tr, "newInstance", "()Ljava/lang/Object;"); @@ -255,7 +255,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT7_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); final String mainClass = "Lreflection/Reflect7"; TypeReference mainTr = TypeReference.findOrCreate(ClassLoaderReference.Application, mainClass); @@ -338,7 +338,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT8_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Primordial, "Ljava/lang/Integer"); MethodReference mr = MethodReference.findOrCreate(tr, "toString", "()Ljava/lang/String;"); Set nodes = cg.getNodes(mr); @@ -356,7 +356,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT9_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Primordial, "Ljava/lang/Integer"); MethodReference mr = MethodReference.findOrCreate(tr, "toString", "()Ljava/lang/String;"); Set nodes = cg.getNodes(mr); @@ -374,7 +374,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT10_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Primordial, "Ljava/lang/Integer"); MethodReference mr = MethodReference.findOrCreate(tr, "toString", "()Ljava/lang/String;"); Set nodes = cg.getNodes(mr); @@ -392,7 +392,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT11_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Primordial, "Ljava/lang/Object"); MethodReference mr = MethodReference.findOrCreate(tr, "wait", "()V"); Set nodes = cg.getNodes(mr); @@ -410,7 +410,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT12_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Lreflection/Helper"); MethodReference mr = MethodReference.findOrCreate(tr, "m", "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V"); Set nodes = cg.getNodes(mr); @@ -431,7 +431,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT13_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Lreflection/Helper"); MethodReference mr = MethodReference.findOrCreate(tr, "m", "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V"); Set nodes = cg.getNodes(mr); @@ -452,7 +452,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT14_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Lreflection/Helper"); MethodReference mr = MethodReference.findOrCreate(tr, "s", "(Ljava/lang/Object;Ljava/lang/Object;)V"); Set nodes = cg.getNodes(mr); @@ -474,7 +474,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT15_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Lreflection/Helper"); MethodReference mr = MethodReference.findOrCreate(tr, "", "(Ljava/lang/Object;Ljava/lang/Object;)V"); Set nodes = cg.getNodes(mr); @@ -501,7 +501,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT16_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Primordial, "Ljava/lang/Integer"); MethodReference mr = MethodReference.findOrCreate(tr, "toString", "()Ljava/lang/String;"); Set nodes = cg.getNodes(mr); @@ -519,7 +519,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT17_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Lreflection/Helper"); MethodReference mr = MethodReference.findOrCreate(tr, "t", "(Ljava/lang/Integer;)V"); CGNode node = cg.getNode(cg.getClassHierarchy().resolveMethod(mr), Everywhere.EVERYWHERE); @@ -537,7 +537,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT18_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Lreflection/Helper"); MethodReference mr = MethodReference.findOrCreate(tr, "t", "(Ljava/lang/Integer;)V"); CGNode node = cg.getNode(cg.getClassHierarchy().resolveMethod(mr), Everywhere.EVERYWHERE); @@ -558,7 +558,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT19_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Primordial, "Ljava/lang/Integer"); MethodReference mr = MethodReference.findOrCreate(tr, "toString", "()Ljava/lang/String;"); Set nodes = cg.getNodes(mr); @@ -576,7 +576,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT20_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Lreflection/Helper"); MethodReference mr = MethodReference.findOrCreate(tr, "o", "(Ljava/lang/Object;Ljava/lang/Object;)V"); Set nodes = cg.getNodes(mr); @@ -595,7 +595,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT21_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Lreflection/Helper"); MethodReference mr = MethodReference.findOrCreate(tr, "", "(Ljava/lang/Object;Ljava/lang/Object;)V"); Set nodes = cg.getNodes(mr); @@ -614,7 +614,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT22_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Lreflection/Helper"); MethodReference mr = MethodReference.findOrCreate(tr, "", "(Ljava/lang/Integer;)V"); Set nodes = cg.getNodes(mr); @@ -633,7 +633,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECT23_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tr = TypeReference.findOrCreate(ClassLoaderReference.Application, "Lreflection/Helper"); MethodReference mr = MethodReference.findOrCreate(tr, "u", "(Ljava/lang/Integer;)V"); Set nodes = cg.getNodes(mr); @@ -679,7 +679,7 @@ public class ReflectionTest extends WalaTestCase { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, TestConstants.REFLECTGETMETHODCONTEXT_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); Set cgn; cgn = cg.getNodes(mabar); Assert.assertTrue(cgn.isEmpty()); cgn = cg.getNodes(mabaz); Assert.assertTrue(cgn.isEmpty()); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/SyntheticTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/SyntheticTest.java index 28f2a2386..f43aecb72 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/SyntheticTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/callGraph/SyntheticTest.java @@ -19,7 +19,7 @@ import org.junit.Test; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -51,7 +51,7 @@ public class SyntheticTest extends WalaTestCase { SubtypesEntrypoint e = new SubtypesEntrypoint(m, cha); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, Collections.singleton(e)); - CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCache(), cha, scope, false); + CallGraph cg = CallGraphTestUtil.buildZeroCFA(options, new AnalysisCacheImpl(), cha, scope, false); TypeReference tA = TypeReference.findOrCreate(ClassLoaderReference.Application, "LmultiTypes/Foo$A"); MethodReference barA = MethodReference.findOrCreate(tA, "bar", "()V"); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/CodeDeletedTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/CodeDeletedTest.java index 7b2867332..764570bf6 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/CodeDeletedTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/CodeDeletedTest.java @@ -18,8 +18,9 @@ import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisScope; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.ClassHierarchy; import com.ibm.wala.ipa.cha.ClassHierarchyException; import com.ibm.wala.ipa.cha.ClassHierarchyFactory; @@ -46,7 +47,7 @@ public class CodeDeletedTest extends WalaTestCase { ClassHierarchy cha = ClassHierarchyFactory.make(scope); TypeReference ref = TypeReference.findOrCreate(ClassLoaderReference.Application, "LCodeDeleted"); IClass klass = cha.lookupClass(ref); - AnalysisCache cache = new AnalysisCache(); + IAnalysisCacheView cache = new AnalysisCacheImpl(); for (IMethod m : klass.getDeclaredMethods()) { if (m.toString().contains("foo")) { // should throw WalaRuntimeException diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/ExclusionsTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/ExclusionsTest.java index 25a51454d..99e0d9bcd 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/ExclusionsTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/ExclusionsTest.java @@ -12,8 +12,6 @@ package com.ibm.wala.core.tests.cha; import java.io.IOException; -import junit.framework.Assert; - import org.junit.Test; import com.ibm.wala.core.tests.util.TestConstants; @@ -24,6 +22,8 @@ import com.ibm.wala.util.config.AnalysisScopeReader; import com.ibm.wala.util.io.FileProvider; import com.ibm.wala.util.strings.StringStuff; +import junit.framework.Assert; + public class ExclusionsTest { @Test diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/SourceMapTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/SourceMapTest.java index f3ea3d351..08bcbef3a 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/SourceMapTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/cha/SourceMapTest.java @@ -67,4 +67,4 @@ public class SourceMapTest extends WalaTestCase { Assert.assertTrue(container != null); System.err.println("container: " + container); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/demandpa/AbstractPtrTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/demandpa/AbstractPtrTest.java index 51712ddf7..beb16bf32 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/demandpa/AbstractPtrTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/demandpa/AbstractPtrTest.java @@ -57,6 +57,7 @@ import com.ibm.wala.demandpa.flowgraph.IFlowLabel; import com.ibm.wala.demandpa.util.MemoryAccessMap; import com.ibm.wala.demandpa.util.PABasedMemoryAccessMap; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -234,7 +235,7 @@ public abstract class AbstractPtrTest { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, mainClass); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - final AnalysisCache analysisCache = new AnalysisCache(); + final AnalysisCache analysisCache = new AnalysisCacheImpl(); CallGraphBuilder cgBuilder = Util.makeZeroCFABuilder(options, analysisCache, cha, scope); final CallGraph cg = cgBuilder.makeCallGraph(options, null); // System.err.println(cg.toString()); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/exceptionpruning/ExceptionAnalysis2EdgeFilterTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/exceptionpruning/ExceptionAnalysis2EdgeFilterTest.java index b6b4a4b82..7987c5feb 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/exceptionpruning/ExceptionAnalysis2EdgeFilterTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/exceptionpruning/ExceptionAnalysis2EdgeFilterTest.java @@ -1,6 +1,7 @@ package com.ibm.wala.core.tests.exceptionpruning; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.io.File; import java.io.IOException; @@ -16,6 +17,7 @@ import com.ibm.wala.analysis.exceptionanalysis.ExceptionAnalysis2EdgeFilter; import com.ibm.wala.cfg.ControlFlowGraph; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -79,7 +81,7 @@ public class ExceptionAnalysis2EdgeFilterTest { options.getSSAOptions().setPiNodePolicy(new AllIntegerDueToBranchePiPolicy()); ReferenceCleanser.registerClassHierarchy(cha); - AnalysisCache cache = new AnalysisCache(); + AnalysisCache cache = new AnalysisCacheImpl(); ReferenceCleanser.registerCache(cache); CallGraphBuilder builder = Util.makeZeroCFABuilder(options, cache, cha, scope); cg = builder.makeCallGraph(options, null); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/exceptionpruning/ExceptionAnalysisTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/exceptionpruning/ExceptionAnalysisTest.java index 20d88615a..a366b6895 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/exceptionpruning/ExceptionAnalysisTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/exceptionpruning/ExceptionAnalysisTest.java @@ -1,7 +1,7 @@ package com.ibm.wala.core.tests.exceptionpruning; -import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.anyOf; +import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.not; import java.io.File; @@ -19,6 +19,7 @@ import com.ibm.wala.analysis.exceptionanalysis.IntraproceduralExceptionAnalysis; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -74,7 +75,7 @@ public class ExceptionAnalysisTest { options.getSSAOptions().setPiNodePolicy(new AllIntegerDueToBranchePiPolicy()); ReferenceCleanser.registerClassHierarchy(cha); - AnalysisCache cache = new AnalysisCache(); + AnalysisCache cache = new AnalysisCacheImpl(); ReferenceCleanser.registerCache(cache); CallGraphBuilder builder = Util.makeZeroCFABuilder(options, cache, cha, scope); cg = builder.makeCallGraph(options, null); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CFGSanitizerTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CFGSanitizerTest.java index 8755d008e..6d7e7467b 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CFGSanitizerTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CFGSanitizerTest.java @@ -14,8 +14,6 @@ import java.io.IOException; import java.io.InputStream; import java.util.Map; -import junit.framework.Assert; - import org.junit.Test; import com.ibm.wala.cfg.CFGSanitizer; @@ -39,6 +37,8 @@ import com.ibm.wala.util.config.AnalysisScopeReader; import com.ibm.wala.util.graph.Graph; import com.ibm.wala.util.io.FileProvider; +import junit.framework.Assert; + /** * Test integrity of CFGs */ diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CFGTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CFGTest.java index 6d6a72df5..5c8776ae3 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CFGTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CFGTest.java @@ -21,6 +21,7 @@ import com.ibm.wala.classLoader.Language; import com.ibm.wala.core.tests.util.WalaTestCase; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.cha.ClassHierarchyException; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -127,7 +128,7 @@ public class CFGTest extends WalaTestCase { MethodReference mr = StringStuff.makeMethodReference("cfg.MonitorTest.sync1()V"); IMethod m = cha.resolveMethod(mr); - AnalysisCache cache = makeAnalysisCache(); + IAnalysisCacheView cache = makeAnalysisCache(); IR ir = cache.getIR(m); System.out.println(ir); SSACFG controlFlowGraph = ir.getControlFlowGraph(); @@ -139,7 +140,7 @@ public class CFGTest extends WalaTestCase { MethodReference mr = StringStuff.makeMethodReference("cfg.MonitorTest.sync2()V"); IMethod m = cha.resolveMethod(mr); - AnalysisCache cache = makeAnalysisCache(); + IAnalysisCacheView cache = makeAnalysisCache(); IR ir = cache.getIR(m); System.out.println(ir); SSACFG controlFlowGraph = ir.getControlFlowGraph(); @@ -154,7 +155,7 @@ public class CFGTest extends WalaTestCase { MethodReference mr = StringStuff.makeMethodReference("cfg.MonitorTest.sync3()V"); IMethod m = cha.resolveMethod(mr); - AnalysisCache cache = makeAnalysisCache(); + IAnalysisCacheView cache = makeAnalysisCache(); IR ir = cache.getIR(m); SSACFG controlFlowGraph = ir.getControlFlowGraph(); Assert.assertEquals(1, controlFlowGraph.getSuccNodeCount(controlFlowGraph.getBlockForInstruction(33))); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CornerCasesTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CornerCasesTest.java index e822cafcd..acc04232a 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CornerCasesTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/CornerCasesTest.java @@ -21,7 +21,7 @@ import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.classLoader.ShrikeCTMethod; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.impl.Everywhere; @@ -81,7 +81,7 @@ public class CornerCasesTest extends WalaTestCase { ShrikeCTMethod m = (ShrikeCTMethod) klass.getMethod(new Selector(Atom.findOrCreateAsciiAtom("foo"), Descriptor .findOrCreateUTF8("()Ljava/lang/Object;"))); Assert.assertTrue(m != null); - IR ir = new AnalysisCache().getSSACache().findOrCreateIR(m, Everywhere.EVERYWHERE, options.getSSAOptions()); + IR ir = new AnalysisCacheImpl().getSSACache().findOrCreateIR(m, Everywhere.EVERYWHERE, options.getSSAOptions()); TypeInference.make(ir, false); } diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/LocalNamesTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/LocalNamesTest.java index 614c3e607..09761a053 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/LocalNamesTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/LocalNamesTest.java @@ -22,6 +22,7 @@ import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.impl.Everywhere; @@ -72,7 +73,7 @@ public class LocalNamesTest extends WalaTestCase { (new FileProvider()).getFile("J2SEClassHierarchyExclusions.txt"), MY_CLASSLOADER); options = new AnalysisOptions(scope, null); - cache = new AnalysisCache(); + cache = new AnalysisCacheImpl(); ClassLoaderFactory factory = new ClassLoaderFactoryImpl(scope.getExclusions()); try { diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/MultiNewArrayTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/MultiNewArrayTest.java index 2e8378807..34d0b6239 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/MultiNewArrayTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ir/MultiNewArrayTest.java @@ -20,8 +20,9 @@ import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.classLoader.Language; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisScope; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.cha.ClassHierarchy; import com.ibm.wala.ipa.cha.ClassHierarchyException; @@ -48,7 +49,7 @@ public class MultiNewArrayTest extends WalaTestCase { Assert.assertTrue(klass != null); IMethod m = klass.getMethod(Selector.make(Language.JAVA, "testNewMultiArray()V")); Assert.assertTrue(m != null); - AnalysisCache cache = new AnalysisCache(); + IAnalysisCacheView cache = new AnalysisCacheImpl(); IR ir = cache.getIRFactory().makeIR(m, Everywhere.EVERYWHERE, new SSAOptions()); Assert.assertTrue(ir != null); SSAInstruction[] instructions = ir.getInstructions(); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/MultiDimArrayTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/MultiDimArrayTest.java index 570bc36df..d9dd79779 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/MultiDimArrayTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/MultiDimArrayTest.java @@ -19,7 +19,7 @@ import org.junit.Test; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -64,7 +64,7 @@ public class MultiDimArrayTest extends WalaTestCase { .makeMainEntrypoints(scope, cha, TestConstants.MULTI_DIM_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCache(),cha, scope); + CallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCacheImpl(),cha, scope); CallGraph cg = builder.makeCallGraph(options, null); PointerAnalysis pa = builder.getPointerAnalysis(); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/TypeBasedArrayAliasTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/TypeBasedArrayAliasTest.java index 82dae4791..02b129ec2 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/TypeBasedArrayAliasTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/TypeBasedArrayAliasTest.java @@ -19,7 +19,7 @@ import org.junit.Test; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -47,7 +47,7 @@ public class TypeBasedArrayAliasTest extends WalaTestCase { AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); // RTA yields a TypeBasedPointerAnalysis - CallGraphBuilder builder = Util.makeRTABuilder(options, new AnalysisCache(),cha, scope); + CallGraphBuilder builder = Util.makeRTABuilder(options, new AnalysisCacheImpl(),cha, scope); CallGraph cg = builder.makeCallGraph(options, null); PointerAnalysis pa = builder.getPointerAnalysis(); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/ZeroLengthArrayTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/ZeroLengthArrayTest.java index 77d2cb8c0..2d9536d68 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/ZeroLengthArrayTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/ptrs/ZeroLengthArrayTest.java @@ -12,13 +12,11 @@ package com.ibm.wala.core.tests.ptrs; import java.io.IOException; -import junit.framework.Assert; - import org.junit.Test; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.core.tests.util.TestConstants; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -40,6 +38,8 @@ import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.CancelException; import com.ibm.wala.util.intset.OrdinalSet; +import junit.framework.Assert; + public class ZeroLengthArrayTest { @Test @@ -51,7 +51,7 @@ public class ZeroLengthArrayTest { TestConstants.ZERO_LENGTH_ARRAY_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); PointerAnalysis pa = builder.getPointerAnalysis(); // System.err.println(pa); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTest.java index 4a599dc95..111af5d35 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTest.java @@ -18,7 +18,7 @@ import org.junit.Test; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.core.tests.util.TestConstants; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraph; @@ -47,7 +47,7 @@ public class DynamicCallGraphTest extends DynamicCallGraphTestBase { ClassHierarchy cha = ClassHierarchyFactory.make(scope); Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, mainClass); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - return CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCache(), cha, scope, false); + return CallGraphTestUtil.buildZeroOneCFA(options, new AnalysisCacheImpl(), cha, scope, false); } @Test diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/slicer/SlicerTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/slicer/SlicerTest.java index 7ca1c0998..27d293bea 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/slicer/SlicerTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/slicer/SlicerTest.java @@ -26,7 +26,7 @@ import org.junit.Test; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.examples.drivers.PDFSlice; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -104,7 +104,7 @@ public class SlicerTest { TestConstants.SLICE1_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -134,7 +134,7 @@ public class SlicerTest { TestConstants.SLICE2_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMethod(cg, "baz"); @@ -158,7 +158,7 @@ public class SlicerTest { TestConstants.SLICE3_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMethod(cg, "main"); @@ -181,7 +181,7 @@ public class SlicerTest { TestConstants.SLICE4_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -204,7 +204,7 @@ public class SlicerTest { TestConstants.SLICE5_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode n = findMethod(cg, "baz"); @@ -234,7 +234,7 @@ public class SlicerTest { TestConstants.SLICE7_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneContainerCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneContainerCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -262,7 +262,7 @@ public class SlicerTest { TestConstants.SLICE8_MAIN); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode process = findMethod(cg, Descriptor.findOrCreateUTF8("()V"), Atom.findOrCreateUnicodeAtom("process")); @@ -288,7 +288,7 @@ public class SlicerTest { TestConstants.SLICE_TESTCD1); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -311,7 +311,7 @@ public class SlicerTest { TestConstants.SLICE_TESTCD2); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -334,7 +334,7 @@ public class SlicerTest { TestConstants.SLICE_TESTCD3); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -357,7 +357,7 @@ public class SlicerTest { TestConstants.SLICE_TESTCD4); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -387,7 +387,7 @@ public class SlicerTest { TestConstants.SLICE_TESTCD5); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -411,7 +411,7 @@ public class SlicerTest { TestConstants.SLICE_TESTCD6); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -435,7 +435,7 @@ public class SlicerTest { TestConstants.SLICE_TESTID); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -458,7 +458,7 @@ public class SlicerTest { TestConstants.SLICE_TESTARRAYS); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -482,7 +482,7 @@ public class SlicerTest { TestConstants.SLICE_TESTFIELDS); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -506,7 +506,7 @@ public class SlicerTest { TestConstants.SLICE_TESTTHIN1); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -540,7 +540,7 @@ public class SlicerTest { TestConstants.SLICE_TESTGLOBAL); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -565,7 +565,7 @@ public class SlicerTest { TestConstants.SLICE_TESTMULTITARGET); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -588,7 +588,7 @@ public class SlicerTest { TestConstants.SLICE_TESTRECURSION); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -613,7 +613,7 @@ public class SlicerTest { TestConstants.SLICE_TEST_PRIM_GETTER_SETTER); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode test = findMethod(cg, "test"); @@ -648,7 +648,7 @@ public class SlicerTest { Util.addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), cha); ContextSelector appSelector = null; SSAContextInterpreter appInterpreter = null; - SSAPropagationCallGraphBuilder builder = new nCFABuilder(1, cha, options, new AnalysisCache(), appSelector, appInterpreter); + SSAPropagationCallGraphBuilder builder = new nCFABuilder(1, cha, options, new AnalysisCacheImpl(), appSelector, appInterpreter); // nCFABuilder uses type-based heap abstraction by default, but we want allocation sites // NOTE: we disable ZeroXInstanceKeys.SMUSH_PRIMITIVE_HOLDERS for this test, since IntWrapper // is a primitive holder @@ -680,7 +680,7 @@ public class SlicerTest { TestConstants.SLICE_TESTTHROWCATCH); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -705,7 +705,7 @@ public class SlicerTest { TestConstants.SLICE_TESTMESSAGEFORMAT); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); @@ -731,7 +731,7 @@ public class SlicerTest { TestConstants.SLICE_TESTINETADDR); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); SDG sdg = new SDG(cg, builder.getPointerAnalysis(), DataDependenceOptions.NO_BASE_NO_HEAP, ControlDependenceOptions.FULL); GraphIntegrity.check(sdg); @@ -746,7 +746,7 @@ public class SlicerTest { TestConstants.SLICE_JUSTTHROW); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); CGNode main = findMainMethod(cg); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/typeInference/TypeInferenceTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/typeInference/TypeInferenceTest.java index 5ea440272..c83749910 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/typeInference/TypeInferenceTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/typeInference/TypeInferenceTest.java @@ -23,9 +23,10 @@ import com.ibm.wala.classLoader.ClassLoaderFactoryImpl; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.core.tests.util.WalaTestCase; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.cha.ClassHierarchy; import com.ibm.wala.ipa.cha.ClassHierarchyException; @@ -56,7 +57,7 @@ public class TypeInferenceTest extends WalaTestCase { private static AnalysisOptions options; - private static AnalysisCache cache; + private static IAnalysisCacheView cache; public static void main(String[] args) { justThisTest(TypeInferenceTest.class); @@ -68,7 +69,7 @@ public class TypeInferenceTest extends WalaTestCase { scope = AnalysisScopeReader.readJavaScope(TestConstants.WALA_TESTDATA, (new FileProvider()).getFile("J2SEClassHierarchyExclusions.txt"), MY_CLASSLOADER); options = new AnalysisOptions(scope, null); - cache = new AnalysisCache(); + cache = new AnalysisCacheImpl(); ClassLoaderFactory factory = new ClassLoaderFactoryImpl(scope.getExclusions()); try { diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/util/WalaTestCase.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/util/WalaTestCase.java index a69fcc333..df87a93f7 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/util/WalaTestCase.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/util/WalaTestCase.java @@ -20,6 +20,7 @@ import org.junit.runner.JUnitCore; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.core.tests.ir.AnnotationTest; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.cha.ClassHierarchyException; import com.ibm.wala.ipa.cha.ClassHierarchyFactory; @@ -67,7 +68,7 @@ public abstract class WalaTestCase { } protected AnalysisCache makeAnalysisCache() { - return new AnalysisCache(); + return new AnalysisCacheImpl(); } public static IClassHierarchy makeCHA() throws IOException, ClassHierarchyException { diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/CompareToZeroOneCFADriver.java b/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/CompareToZeroOneCFADriver.java index 1b5299cd4..79e78d447 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/CompareToZeroOneCFADriver.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/CompareToZeroOneCFADriver.java @@ -57,7 +57,7 @@ import com.ibm.wala.demandpa.flowgraph.IFlowLabel; import com.ibm.wala.demandpa.util.CallGraphMapUtil; import com.ibm.wala.demandpa.util.MemoryAccessMap; import com.ibm.wala.demandpa.util.SimpleMemoryAccessMap; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -151,13 +151,13 @@ public class CompareToZeroOneCFADriver { } private static void doTests(AnalysisScope scope, final ClassHierarchy cha, AnalysisOptions options) throws IllegalArgumentException, CancelException { - final SSAPropagationCallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + final SSAPropagationCallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); final CallGraph oldCG = builder.makeCallGraph(options,null); final PointerAnalysis pa = builder.getPointerAnalysis(); // now, run our analysis // build an RTA call graph - CallGraphBuilder rtaBuilder = Util.makeRTABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder rtaBuilder = Util.makeRTABuilder(options, new AnalysisCacheImpl(), cha, scope); final CallGraph cg = rtaBuilder.makeCallGraph(options, null); // System.err.println(cg.toString()); @@ -228,7 +228,7 @@ public class CompareToZeroOneCFADriver { private static IDemandPointerAnalysis makeDemandPointerAnalysis(AnalysisOptions options, ClassHierarchy cha, AnalysisScope scope, CallGraph cg, MemoryAccessMap fam) { - SSAPropagationCallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + SSAPropagationCallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); // return new TestNewGraphPointsTo(cg, builder, fam, cha, warnings); DemandRefinementPointsTo fullDemandPointsTo = DemandRefinementPointsTo.makeWithDefaultFlowGraph(cg, builder, fam, cha, options, new DummyStateMachine.Factory()); // fullDemandPointsTo.setOnTheFly(true); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/TestAgainstSimpleDriver.java b/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/TestAgainstSimpleDriver.java index 3cb37677e..b3eca3fcb 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/TestAgainstSimpleDriver.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/demandpa/driver/TestAgainstSimpleDriver.java @@ -58,7 +58,7 @@ import com.ibm.wala.demandpa.alg.statemachine.DummyStateMachine; import com.ibm.wala.demandpa.flowgraph.IFlowLabel; import com.ibm.wala.demandpa.util.MemoryAccessMap; import com.ibm.wala.demandpa.util.SimpleMemoryAccessMap; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -117,7 +117,7 @@ public class TestAgainstSimpleDriver { AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); // build an RTA call graph - CallGraphBuilder rtaBuilder = Util.makeRTABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder rtaBuilder = Util.makeRTABuilder(options, new AnalysisCacheImpl(), cha, scope); final CallGraph cg = rtaBuilder.makeCallGraph(options, null); // System.err.println(cg.toString()); @@ -164,7 +164,7 @@ public class TestAgainstSimpleDriver { private static IDemandPointerAnalysis makeDemandPointerAnalysis(AnalysisOptions options, ClassHierarchy cha, AnalysisScope scope, CallGraph cg, MemoryAccessMap fam) { - SSAPropagationCallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + SSAPropagationCallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); // return new TestNewGraphPointsTo(cg, builder, fam, cha, warnings); DemandRefinementPointsTo fullDemandPointsTo = DemandRefinementPointsTo.makeWithDefaultFlowGraph(cg, builder, fam, cha, options, new DummyStateMachine.Factory()); // fullDemandPointsTo.setCGRefinePolicy(new AlwaysRefineCGPolicy()); @@ -174,4 +174,4 @@ public class TestAgainstSimpleDriver { return fullDemandPointsTo; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/ConstructAllIRs.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/ConstructAllIRs.java index c56488e77..f7ed4dab2 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/ConstructAllIRs.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/ConstructAllIRs.java @@ -15,6 +15,7 @@ import java.io.IOException; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.impl.Everywhere; @@ -67,7 +68,7 @@ public class ConstructAllIRs { // register class hierarchy and AnalysisCache with the reference cleanser, so that their soft references are appropriately wiped ReferenceCleanser.registerClassHierarchy(cha); - AnalysisCache cache = new AnalysisCache(); + AnalysisCache cache = new AnalysisCacheImpl(); ReferenceCleanser.registerCache(cache); AnalysisOptions options = new AnalysisOptions(); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/CountParameters.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/CountParameters.java index 99e4871f0..198b83f9b 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/CountParameters.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/CountParameters.java @@ -61,4 +61,4 @@ public class CountParameters { System.out.println((float)nParameters/(float)nMethods + " parameters per method"); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/GetLoadedFields.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/GetLoadedFields.java index b8145ac28..261ecc069 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/GetLoadedFields.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/GetLoadedFields.java @@ -66,4 +66,4 @@ public class GetLoadedFields { System.out.println(nMethods + " methods"); System.out.println((float)nFields/(float)nMethods + " fields read per method"); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/SimpleThreadEscapeAnalysis.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/SimpleThreadEscapeAnalysis.java index 546747a96..8451725b0 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/SimpleThreadEscapeAnalysis.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/SimpleThreadEscapeAnalysis.java @@ -30,6 +30,7 @@ import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Util; import com.ibm.wala.ipa.callgraph.propagation.HeapModel; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; @@ -90,7 +91,7 @@ public class SimpleThreadEscapeAnalysis extends AbstractAnalysisEngine { } @Override - protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { return Util.makeZeroCFABuilder(options, cache, cha, scope); } diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/ContextSensitiveReachingDefs.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/ContextSensitiveReachingDefs.java index 572971cc2..3008eaac1 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/ContextSensitiveReachingDefs.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/ContextSensitiveReachingDefs.java @@ -27,9 +27,9 @@ import com.ibm.wala.dataflow.IFDS.PathEdge; import com.ibm.wala.dataflow.IFDS.TabulationDomain; import com.ibm.wala.dataflow.IFDS.TabulationResult; import com.ibm.wala.dataflow.IFDS.TabulationSolver; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cfg.BasicBlockInContext; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ssa.SSAInstruction; @@ -63,7 +63,7 @@ public class ContextSensitiveReachingDefs { */ private final ReachingDefsDomain domain = new ReachingDefsDomain(); - public ContextSensitiveReachingDefs(CallGraph cg, AnalysisCache cache) { + public ContextSensitiveReachingDefs(CallGraph cg, IAnalysisCacheView cache) { this.cha = cg.getClassHierarchy(); // we use an ICFGSupergraph, which basically adapts ExplodedInterproceduralCFG to the ISupergraph interface this.supergraph = ICFGSupergraph.make(cg, cache); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/DataflowTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/DataflowTest.java index b049c9591..77ebec4e1 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/DataflowTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/DataflowTest.java @@ -14,8 +14,6 @@ import java.io.ByteArrayInputStream; import java.util.ArrayList; import java.util.List; -import junit.framework.Assert; - import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -27,7 +25,7 @@ import com.ibm.wala.core.tests.util.WalaTestCase; import com.ibm.wala.dataflow.IFDS.ISupergraph; import com.ibm.wala.dataflow.IFDS.TabulationResult; import com.ibm.wala.dataflow.graph.BitVectorSolver; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -35,6 +33,7 @@ import com.ibm.wala.ipa.callgraph.CallGraph; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; import com.ibm.wala.ipa.callgraph.CallGraphBuilderCancelException; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.callgraph.impl.Util; import com.ibm.wala.ipa.cfg.BasicBlockInContext; @@ -55,6 +54,8 @@ import com.ibm.wala.util.config.FileOfClasses; import com.ibm.wala.util.intset.IntIterator; import com.ibm.wala.util.intset.IntSet; +import junit.framework.Assert; + /** * Tests of various flow analysis engines. */ @@ -107,7 +108,7 @@ public class DataflowTest extends WalaTestCase { @Test public void testIntraproc1() { - AnalysisCache cache = new AnalysisCache(); + IAnalysisCacheView cache = new AnalysisCacheImpl(); final MethodReference ref = MethodReference.findOrCreate(ClassLoaderReference.Application, "Ldataflow/StaticDataflow", "test1", "()V"); IMethod method = cha.resolveMethod(ref); @@ -126,7 +127,7 @@ public class DataflowTest extends WalaTestCase { @Test public void testIntraproc2() { - AnalysisCache cache = new AnalysisCache(); + IAnalysisCacheView cache = new AnalysisCacheImpl(); final MethodReference ref = MethodReference.findOrCreate(ClassLoaderReference.Application, "Ldataflow/StaticDataflow", "test2", "()V"); IMethod method = cha.resolveMethod(ref); @@ -150,7 +151,7 @@ public class DataflowTest extends WalaTestCase { "Ldataflow/StaticDataflow"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); ExplodedInterproceduralCFG icfg = ExplodedInterproceduralCFG.make(cg); ContextInsensitiveReachingDefs reachingDefs = new ContextInsensitiveReachingDefs(icfg, cha); @@ -182,9 +183,9 @@ public class DataflowTest extends WalaTestCase { "Ldataflow/StaticDataflow"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); - AnalysisCache cache = new AnalysisCache(); + IAnalysisCacheView cache = new AnalysisCacheImpl(); ContextSensitiveReachingDefs reachingDefs = new ContextSensitiveReachingDefs(cg, cache); TabulationResult, CGNode, Pair> result = reachingDefs.analyze(); ISupergraph, CGNode> supergraph = reachingDefs.getSupergraph(); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/InitializerTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/InitializerTest.java index 8edf80c22..2176d6b9d 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/InitializerTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/InitializerTest.java @@ -13,14 +13,12 @@ package com.ibm.wala.examples.analysis.dataflow; import java.io.IOException; -import junit.framework.Assert; - import com.ibm.wala.classLoader.IClass; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.core.tests.util.TestConstants; import com.ibm.wala.dataflow.IFDS.ISupergraph; import com.ibm.wala.dataflow.IFDS.TabulationResult; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -28,18 +26,20 @@ import com.ibm.wala.ipa.callgraph.CallGraph; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; import com.ibm.wala.ipa.callgraph.CallGraphBuilderCancelException; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Util; import com.ibm.wala.ipa.cfg.BasicBlockInContext; import com.ibm.wala.ipa.cha.ClassHierarchyException; import com.ibm.wala.ipa.cha.ClassHierarchyFactory; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ssa.analysis.IExplodedBasicBlock; -import com.ibm.wala.util.collections.Pair; import com.ibm.wala.util.config.AnalysisScopeReader; import com.ibm.wala.util.intset.IntIterator; import com.ibm.wala.util.intset.IntSet; import com.ibm.wala.util.io.FileProvider; +import junit.framework.Assert; + public class InitializerTest { /** @@ -69,7 +69,7 @@ public class InitializerTest { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, "LstaticInit/TestStaticInit"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = null; try { cg = builder.makeCallGraph(options, null); @@ -83,7 +83,7 @@ public class InitializerTest { System.out.println("Start"); - AnalysisCache cache = new AnalysisCache(); + IAnalysisCacheView cache = new AnalysisCacheImpl(); StaticInitializer reachingDefs = new StaticInitializer(cg, cache); TabulationResult, CGNode, IClass> result = reachingDefs.analyze(); ISupergraph, CGNode> supergraph = reachingDefs.getSupergraph(); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java index 7803cbf0d..76f021e40 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java @@ -12,13 +12,10 @@ package com.ibm.wala.examples.analysis.dataflow; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; import com.ibm.wala.classLoader.IClass; -import com.ibm.wala.classLoader.IField; -import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.dataflow.IFDS.ICFGSupergraph; import com.ibm.wala.dataflow.IFDS.IFlowFunction; import com.ibm.wala.dataflow.IFDS.IMergeFunction; @@ -32,9 +29,9 @@ import com.ibm.wala.dataflow.IFDS.PartiallyBalancedTabulationSolver; import com.ibm.wala.dataflow.IFDS.PathEdge; import com.ibm.wala.dataflow.IFDS.TabulationDomain; import com.ibm.wala.dataflow.IFDS.TabulationResult; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cfg.BasicBlockInContext; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ssa.SSAGetInstruction; @@ -45,7 +42,6 @@ import com.ibm.wala.ssa.SSAPutInstruction; import com.ibm.wala.ssa.analysis.IExplodedBasicBlock; import com.ibm.wala.util.CancelException; import com.ibm.wala.util.collections.HashSetFactory; -import com.ibm.wala.util.collections.Pair; import com.ibm.wala.util.intset.IntSet; import com.ibm.wala.util.intset.MutableMapping; import com.ibm.wala.util.intset.MutableSparseIntSet; @@ -72,7 +68,7 @@ public class StaticInitializer { return initialized; } - public StaticInitializer(CallGraph cg, AnalysisCache cache) { + public StaticInitializer(CallGraph cg, IAnalysisCacheView cache) { cha = cg.getClassHierarchy(); supergraph = ICFGSupergraph.make(cg, cache); } @@ -170,7 +166,7 @@ public class StaticInitializer { } } else if(instruction instanceof SSAGetInstruction) { final SSAGetInstruction getInstr = (SSAGetInstruction) instruction; - if (getInstr.isStatic()) { //Auf konstante überprüfen + if (getInstr.isStatic()) { //Auf konstante �berpr�fen return new IUnaryFlowFunction() { public IntSet getTargets(int d1) { diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/JavaViewerDriver.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/JavaViewerDriver.java index 8b90b93ed..342b78813 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/JavaViewerDriver.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/JavaViewerDriver.java @@ -15,7 +15,7 @@ import java.io.IOException; import java.util.Properties; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraph; @@ -64,7 +64,7 @@ public class JavaViewerDriver { // // // build the call graph // // - com.ibm.wala.ipa.callgraph.CallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCache(), cha, scope); + com.ibm.wala.ipa.callgraph.CallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); PointerAnalysis pa = builder.getPointerAnalysis(); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFCallGraph.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFCallGraph.java index 921988b2d..49401477d 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFCallGraph.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFCallGraph.java @@ -18,7 +18,7 @@ import java.util.Properties; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.examples.properties.WalaExamplesProperties; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -32,8 +32,8 @@ import com.ibm.wala.ipa.cha.ClassHierarchyFactory; import com.ibm.wala.properties.WalaProperties; import com.ibm.wala.types.ClassLoaderReference; import com.ibm.wala.util.CancelException; -import com.ibm.wala.util.WalaException; import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.WalaException; import com.ibm.wala.util.collections.HashSetFactory; import com.ibm.wala.util.config.AnalysisScopeReader; import com.ibm.wala.util.debug.Assertions; @@ -156,7 +156,7 @@ public class PDFCallGraph { // // // build the call graph // // - com.ibm.wala.ipa.callgraph.CallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCache(), cha, scope); + com.ibm.wala.ipa.callgraph.CallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); System.err.println(CallGraphStats.getStats(cg)); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFControlDependenceGraph.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFControlDependenceGraph.java index c82dd2512..3ae0066b2 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFControlDependenceGraph.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFControlDependenceGraph.java @@ -19,6 +19,7 @@ import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.examples.properties.WalaExamplesProperties; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.impl.Everywhere; @@ -27,7 +28,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchyFactory; import com.ibm.wala.properties.WalaProperties; import com.ibm.wala.ssa.IR; import com.ibm.wala.ssa.ISSABasicBlock; -import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.ssa.SSAOptions; import com.ibm.wala.types.MethodReference; import com.ibm.wala.util.WalaException; @@ -101,7 +101,7 @@ public class PDFControlDependenceGraph { } AnalysisOptions options = new AnalysisOptions(); options.getSSAOptions().setPiNodePolicy(SSAOptions.getAllBuiltInPiNodes()); - AnalysisCache cache = new AnalysisCache(); + AnalysisCache cache = new AnalysisCacheImpl(); IR ir = cache.getSSACache().findOrCreateIR(m, Everywhere.EVERYWHERE, options.getSSAOptions() ); if (ir == null) { @@ -161,4 +161,4 @@ public class PDFControlDependenceGraph { throw new UnsupportedOperationException("invalid command-line, args[2] should be -sig, but is " + args[0]); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFSDG.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFSDG.java index 847b89504..87fa08bdd 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFSDG.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFSDG.java @@ -16,7 +16,7 @@ import java.util.Properties; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.examples.properties.WalaExamplesProperties; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraph; @@ -34,8 +34,8 @@ import com.ibm.wala.ipa.slicer.Slicer.DataDependenceOptions; import com.ibm.wala.ipa.slicer.Statement; import com.ibm.wala.properties.WalaProperties; import com.ibm.wala.util.CancelException; -import com.ibm.wala.util.WalaException; import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.WalaException; import com.ibm.wala.util.config.AnalysisScopeReader; import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.graph.Graph; @@ -126,7 +126,7 @@ public class PDFSDG { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, mainClass); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph cg = builder.makeCallGraph(options,null); SDG sdg = new SDG(cg, builder.getPointerAnalysis(), dOptions, cOptions); try { @@ -224,4 +224,4 @@ public class PDFSDG { throw new UnsupportedOperationException("expected command-line to include -appJar"); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFSlice.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFSlice.java index d5ecc4c10..eee86ce39 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFSlice.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFSlice.java @@ -18,7 +18,7 @@ import java.util.Properties; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.core.tests.slicer.SlicerTest; import com.ibm.wala.examples.properties.WalaExamplesProperties; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -45,8 +45,8 @@ import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.ssa.SSAInvokeInstruction; import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.CancelException; -import com.ibm.wala.util.WalaException; import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.WalaException; import com.ibm.wala.util.config.AnalysisScopeReader; import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.graph.Graph; @@ -153,7 +153,7 @@ public class PDFSlice { ClassHierarchy cha = ClassHierarchyFactory.make(scope); Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, mainClass); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - CallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCache(), cha, scope); + CallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCacheImpl(), cha, scope); // CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, new // AnalysisCache(), cha, scope); CallGraph cg = builder.makeCallGraph(options, null); @@ -321,4 +321,4 @@ public class PDFSlice { throw new UnsupportedOperationException("expected command-line to include -srcCaller"); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFTypeHierarchy.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFTypeHierarchy.java index e3f1be86d..cc96d336a 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFTypeHierarchy.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFTypeHierarchy.java @@ -24,9 +24,9 @@ import com.ibm.wala.ipa.cha.ClassHierarchyFactory; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.properties.WalaProperties; import com.ibm.wala.types.ClassLoaderReference; +import com.ibm.wala.util.Predicate; import com.ibm.wala.util.WalaException; import com.ibm.wala.util.collections.CollectionFilter; -import com.ibm.wala.util.Predicate; import com.ibm.wala.util.config.AnalysisScopeReader; import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.graph.Graph; @@ -147,4 +147,4 @@ public class PDFTypeHierarchy { } return result; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFWalaIR.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFWalaIR.java index ade8d30ea..1f980d3c0 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFWalaIR.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/PDFWalaIR.java @@ -18,6 +18,7 @@ import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.examples.properties.WalaExamplesProperties; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.impl.Everywhere; @@ -95,7 +96,7 @@ public class PDFWalaIR { options.getSSAOptions().setPiNodePolicy(SSAOptions.getAllBuiltInPiNodes()); // Create an object which caches IRs and related information, reconstructing them lazily on demand. - AnalysisCache cache = new AnalysisCache(); + AnalysisCache cache = new AnalysisCacheImpl(); // Build the IR and cache it. IR ir = cache.getSSACache().findOrCreateIR(m, Everywhere.EVERYWHERE, options.getSSAOptions()); @@ -152,4 +153,4 @@ public class PDFWalaIR { throw new UnsupportedOperationException("invalid command-line, args[2] should be -sig, but is " + args[0]); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/ScopeFileCallGraph.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/ScopeFileCallGraph.java index 2d565c660..d66d5ff5b 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/ScopeFileCallGraph.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/drivers/ScopeFileCallGraph.java @@ -19,6 +19,7 @@ import java.util.Properties; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraph; @@ -79,7 +80,7 @@ public class ScopeFileCallGraph { options.setEntrypoints(entrypoints); // you can dial down reflection handling if you like // options.setReflectionOptions(ReflectionOptions.NONE); - AnalysisCache cache = new AnalysisCache(); + AnalysisCache cache = new AnalysisCacheImpl(); // other builders can be constructed with different Util methods CallGraphBuilder builder = Util.makeZeroOneContainerCFABuilder(options, cache, cha, scope); // CallGraphBuilder builder = Util.makeNCFABuilder(2, options, cache, cha, scope); diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/properties/WalaExamplesProperties.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/properties/WalaExamplesProperties.java index 4abc41769..a61b35b5c 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/properties/WalaExamplesProperties.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/properties/WalaExamplesProperties.java @@ -46,4 +46,4 @@ public final class WalaExamplesProperties { return new File((new FileProvider()).filePathFromURL(url)).getParentFile().getParentFile().getAbsolutePath(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/DirectedHyperEdge.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/DirectedHyperEdge.java index e0dd2a4f2..ce7fc1bf1 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/DirectedHyperEdge.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/DirectedHyperEdge.java @@ -3,8 +3,6 @@ package com.ibm.wala.analysis.arraybounds.hypergraph; import java.util.HashSet; import java.util.Set; -import com.ibm.wala.analysis.arraybounds.hypergraph.DirectedHyperGraph; -import com.ibm.wala.analysis.arraybounds.hypergraph.HyperNode; import com.ibm.wala.analysis.arraybounds.hypergraph.weight.edgeweights.EdgeWeight; /** diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/DirectedHyperGraph.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/DirectedHyperGraph.java index 3b4e9da3c..75e066c46 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/DirectedHyperGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/DirectedHyperGraph.java @@ -5,8 +5,6 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import com.ibm.wala.analysis.arraybounds.hypergraph.DirectedHyperEdge; -import com.ibm.wala.analysis.arraybounds.hypergraph.HyperNode; import com.ibm.wala.analysis.arraybounds.hypergraph.weight.Weight; /** diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/HyperNode.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/HyperNode.java index a0c4af9b0..758da2695 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/HyperNode.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/HyperNode.java @@ -3,8 +3,6 @@ package com.ibm.wala.analysis.arraybounds.hypergraph; import java.util.HashSet; import java.util.Set; -import com.ibm.wala.analysis.arraybounds.hypergraph.DirectedHyperEdge; -import com.ibm.wala.analysis.arraybounds.hypergraph.DirectedHyperGraph; import com.ibm.wala.analysis.arraybounds.hypergraph.weight.Weight; /** diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/NormalOrder.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/NormalOrder.java index c3655ff85..e07e3fabc 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/NormalOrder.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/NormalOrder.java @@ -2,7 +2,6 @@ package com.ibm.wala.analysis.arraybounds.hypergraph.weight; import java.util.Comparator; -import com.ibm.wala.analysis.arraybounds.hypergraph.weight.Weight; import com.ibm.wala.analysis.arraybounds.hypergraph.weight.Weight.Type; /** diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/ReverseOrder.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/ReverseOrder.java index e2e73297d..72c9397cc 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/ReverseOrder.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/ReverseOrder.java @@ -2,8 +2,6 @@ package com.ibm.wala.analysis.arraybounds.hypergraph.weight; import java.util.Comparator; -import com.ibm.wala.analysis.arraybounds.hypergraph.weight.NormalOrder; -import com.ibm.wala.analysis.arraybounds.hypergraph.weight.Weight; import com.ibm.wala.analysis.arraybounds.hypergraph.weight.Weight.Type; /** diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/Weight.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/Weight.java index 5345b9a5a..c7fda2e9c 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/Weight.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/Weight.java @@ -1,9 +1,5 @@ package com.ibm.wala.analysis.arraybounds.hypergraph.weight; -import com.ibm.wala.analysis.arraybounds.hypergraph.weight.NormalOrder; -import com.ibm.wala.analysis.arraybounds.hypergraph.weight.ReverseOrder; -import com.ibm.wala.analysis.arraybounds.hypergraph.weight.Weight; - /** * A weight may be not set, a number or unlimited, note that the meaning of * unlimited is given by the chosen order (see {@link NormalOrder} and diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/edgeweights/AdditiveEdgeWeight.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/edgeweights/AdditiveEdgeWeight.java index 678f2d7e5..89b5830a5 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/edgeweights/AdditiveEdgeWeight.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/arraybounds/hypergraph/weight/edgeweights/AdditiveEdgeWeight.java @@ -1,8 +1,6 @@ package com.ibm.wala.analysis.arraybounds.hypergraph.weight.edgeweights; import com.ibm.wala.analysis.arraybounds.hypergraph.weight.Weight; -import com.ibm.wala.analysis.arraybounds.hypergraph.weight.edgeweights.AdditiveEdgeWeight; -import com.ibm.wala.analysis.arraybounds.hypergraph.weight.edgeweights.EdgeWeight; /** * EdgeWeight that adds a specific value. diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/ExceptionAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/ExceptionAnalysis.java index c5d5809cd..e7fa58180 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/ExceptionAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/ExceptionAnalysis.java @@ -31,8 +31,8 @@ import com.ibm.wala.ipa.cfg.exceptionpruning.interprocedural.InterproceduralExce import com.ibm.wala.ipa.cha.ClassHierarchy; import com.ibm.wala.ssa.ISSABasicBlock; import com.ibm.wala.ssa.SSAInstruction; -import com.ibm.wala.ssa.SSAInvokeInstruction; import com.ibm.wala.ssa.SSAInstruction.Visitor; +import com.ibm.wala.ssa.SSAInvokeInstruction; import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.CancelException; import com.ibm.wala.util.MonitorUtil.IProgressMonitor; diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/IntraproceduralExceptionAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/IntraproceduralExceptionAnalysis.java index d951f8a71..62bc2515d 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/IntraproceduralExceptionAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/IntraproceduralExceptionAnalysis.java @@ -30,9 +30,9 @@ import com.ibm.wala.ipa.cha.ClassHierarchy; import com.ibm.wala.ssa.IR; import com.ibm.wala.ssa.ISSABasicBlock; import com.ibm.wala.ssa.SSAInstruction; +import com.ibm.wala.ssa.SSAInstruction.Visitor; import com.ibm.wala.ssa.SSAInvokeInstruction; import com.ibm.wala.ssa.SSAThrowInstruction; -import com.ibm.wala.ssa.SSAInstruction.Visitor; import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.intset.IntIterator; import com.ibm.wala.util.intset.IntSet; diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/package-info.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/package-info.java index 211ea02a6..4dd3cc99b 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/package-info.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/exceptionanalysis/package-info.java @@ -5,4 +5,4 @@ * in combination with {@link com.ibm.wala.analysis.exceptionanalysis.ExceptionAnalysis2EdgeFilter} */ -package com.ibm.wala.analysis.exceptionanalysis; \ No newline at end of file +package com.ibm.wala.analysis.exceptionanalysis; diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/pointers/HeapGraphImpl.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/pointers/HeapGraphImpl.java index 99de4e7d3..e5574f1c9 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/pointers/HeapGraphImpl.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/pointers/HeapGraphImpl.java @@ -20,7 +20,6 @@ import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; import com.ibm.wala.ipa.callgraph.propagation.PointerKey; import com.ibm.wala.util.Predicate; import com.ibm.wala.util.graph.Graph; -import com.ibm.wala.util.graph.NumberedGraph; import com.ibm.wala.util.graph.impl.NumberedNodeIterator; import com.ibm.wala.util.graph.traverse.DFS; import com.ibm.wala.util.intset.IntSet; diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/AbstractReflectionInterpreter.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/AbstractReflectionInterpreter.java index e1e961073..b61b52fdd 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/AbstractReflectionInterpreter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/AbstractReflectionInterpreter.java @@ -29,6 +29,7 @@ import com.ibm.wala.classLoader.NewSiteReference; import com.ibm.wala.classLoader.SyntheticMethod; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.shrikeBT.IInvokeInstruction; @@ -65,7 +66,7 @@ public abstract class AbstractReflectionInterpreter implements SSAContextInterpr /** * cache of analysis information */ - protected AnalysisCache cache; + protected IAnalysisCacheView cache; protected int getLocalForType(TypeReference T) { @@ -270,4 +271,4 @@ public abstract class AbstractReflectionInterpreter implements SSAContextInterpr allInstructions.add(s); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassFactoryContextSelector.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassFactoryContextSelector.java index f9a3f2034..89edac7f8 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassFactoryContextSelector.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassFactoryContextSelector.java @@ -128,4 +128,4 @@ class ClassFactoryContextSelector implements ContextSelector { return EmptyIntSet.instance; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassNewInstanceContextSelector.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassNewInstanceContextSelector.java index d6c6a7843..5f88a1460 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassNewInstanceContextSelector.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ClassNewInstanceContextSelector.java @@ -67,4 +67,4 @@ class ClassNewInstanceContextSelector implements ContextSelector { return EmptyIntSet.instance; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/FactoryBypassInterpreter.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/FactoryBypassInterpreter.java index 41725911f..99d87267a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/FactoryBypassInterpreter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/FactoryBypassInterpreter.java @@ -36,6 +36,7 @@ import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.summaries.SummarizedMethod; import com.ibm.wala.ipa.summaries.SyntheticIR; @@ -77,9 +78,9 @@ public class FactoryBypassInterpreter extends AbstractReflectionInterpreter { /** * @param options governing analysis options */ - public FactoryBypassInterpreter(AnalysisOptions options, AnalysisCache cache) { + public FactoryBypassInterpreter(AnalysisOptions options, IAnalysisCacheView iAnalysisCacheView) { this.options = options; - this.cache = cache; + this.cache = iAnalysisCacheView; } @Override @@ -91,7 +92,7 @@ public class FactoryBypassInterpreter extends AbstractReflectionInterpreter { System.err.println("generating IR for " + node); } SpecializedFactoryMethod m = findOrCreateSpecializedFactoryMethod(node); - return cache.getSSACache().findOrCreateIR(m, node.getContext(), options.getSSAOptions()); + return cache.getIR(m, node.getContext()); } private Set getTypesForContext(Context context) { @@ -203,7 +204,7 @@ public class FactoryBypassInterpreter extends AbstractReflectionInterpreter { if (m != null) { TypeAbstraction T = typeRef2TypeAbstraction(cha, type); m.addStatementsForTypeAbstraction(T); - cache.getSSACache().invalidate(m, context); + cache.invalidate(m, context); } return true; } @@ -334,7 +335,7 @@ public class FactoryBypassInterpreter extends AbstractReflectionInterpreter { throw new IllegalArgumentException("node is null"); } SpecializedFactoryMethod m = findOrCreateSpecializedFactoryMethod(node); - return cache.getSSACache().findOrCreateDU(m, node.getContext(), options.getSSAOptions()); + return cache.getDefUse(getIR(node)); } protected class SpecializedFactoryMethod extends SpecializedMethod { diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/GetClassContextSelector.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/GetClassContextSelector.java index 2140a3e0f..c593a2869 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/GetClassContextSelector.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/GetClassContextSelector.java @@ -58,4 +58,4 @@ public class GetClassContextSelector implements ContextSelector { } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/JavaLangClassContextSelector.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/JavaLangClassContextSelector.java index 365d1e63d..0f29ac920 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/JavaLangClassContextSelector.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/JavaLangClassContextSelector.java @@ -96,4 +96,4 @@ class JavaLangClassContextSelector implements ContextSelector { return EmptyIntSet.instance; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ReflectionContextInterpreter.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ReflectionContextInterpreter.java index 1ed95f08f..2e95d678e 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ReflectionContextInterpreter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ReflectionContextInterpreter.java @@ -19,6 +19,7 @@ import com.ibm.wala.classLoader.NewSiteReference; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter; import com.ibm.wala.ipa.callgraph.propagation.cfa.DelegatingSSAContextInterpreter; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -34,7 +35,7 @@ import com.ibm.wala.types.FieldReference; public class ReflectionContextInterpreter { public static SSAContextInterpreter createReflectionContextInterpreter(IClassHierarchy cha, AnalysisOptions options, - AnalysisCache cache) { + IAnalysisCacheView iAnalysisCacheView) { if (options == null) { throw new IllegalArgumentException("null options"); @@ -104,7 +105,7 @@ public class ReflectionContextInterpreter { if (options.getReflectionOptions().getNumFlowToCastIterations() > 0) { // need the factory bypass interpreter - result = new DelegatingSSAContextInterpreter(new FactoryBypassInterpreter(options, cache), result); + result = new DelegatingSSAContextInterpreter(new FactoryBypassInterpreter(options, iAnalysisCacheView), result); } if (!options.getReflectionOptions().isIgnoreStringConstants()) { result = new DelegatingSSAContextInterpreter(new GetClassContextInterpeter(), new DelegatingSSAContextInterpreter( diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ReflectiveInvocationSelector.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ReflectiveInvocationSelector.java index 1894ed133..cc6aa32b5 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ReflectiveInvocationSelector.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/ReflectiveInvocationSelector.java @@ -137,4 +137,4 @@ class ReflectiveInvocationSelector implements ContextSelector { return EmptyIntSet.instance; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/stackMachine/AbstractIntStackMachine.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/stackMachine/AbstractIntStackMachine.java index 30e5d3e47..45b30ee9b 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/stackMachine/AbstractIntStackMachine.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/stackMachine/AbstractIntStackMachine.java @@ -1152,4 +1152,4 @@ public abstract class AbstractIntStackMachine implements FixedPointConstants { } } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/typeInference/TypeVariable.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/typeInference/TypeVariable.java index 0571f737c..a5597211a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/typeInference/TypeVariable.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/typeInference/TypeVariable.java @@ -48,4 +48,4 @@ public class TypeVariable extends AbstractVariable { public String toString() { return type.toString(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/AbstractCFG.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/AbstractCFG.java index 113a5abf5..1990ceca6 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/AbstractCFG.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/AbstractCFG.java @@ -42,7 +42,7 @@ import com.ibm.wala.util.intset.SimpleIntVector; /** * Common functionality for {@link ControlFlowGraph} implementations. */ -public abstract class AbstractCFG> implements ControlFlowGraph, Constants { +public abstract class AbstractCFG> implements ControlFlowGraph, MinimalCFG, Constants { /** * The method this AbstractCFG represents diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/ControlFlowGraph.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/ControlFlowGraph.java index 28d023270..ffb26427a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/ControlFlowGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/ControlFlowGraph.java @@ -10,9 +10,6 @@ *******************************************************************************/ package com.ibm.wala.cfg; -import java.util.Collection; -import java.util.List; - import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.util.graph.NumberedGraph; import com.ibm.wala.util.intset.BitVector; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java index b58437605..e4ad3654f 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java @@ -19,7 +19,6 @@ import java.util.List; import java.util.Set; import com.ibm.wala.cfg.ControlFlowGraph; -import com.ibm.wala.dataflow.graph.DataflowSolver; import com.ibm.wala.ipa.cfg.PrunedCFG; import com.ibm.wala.ssa.IR; import com.ibm.wala.ssa.ISSABasicBlock; diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MutableCFG.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MutableCFG.java index b93e93db4..e4a171595 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MutableCFG.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/MutableCFG.java @@ -166,4 +166,4 @@ public class MutableCFG> extends SparseNumberedGraph return thisPreds; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NegativeGraphFilter.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NegativeGraphFilter.java index b4372aaa6..6c8e50d19 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NegativeGraphFilter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NegativeGraphFilter.java @@ -46,4 +46,4 @@ public class NegativeGraphFilter> implements EdgeFilter return !deleted.hasEdge(src, dst); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerFrameWork.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerFrameWork.java index 33c94d82e..b38054c21 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerFrameWork.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerFrameWork.java @@ -71,4 +71,4 @@ public class NullPointerFrameWork implements IKilldall return transferFunct; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java index d32397ac6..77ed2c6f2 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java @@ -552,4 +552,4 @@ public class NullPointerState extends AbstractVariable { } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/SSACFGNullPointerAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/SSACFGNullPointerAnalysis.java index 1ea2d3c84..639ca4209 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/SSACFGNullPointerAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/SSACFGNullPointerAnalysis.java @@ -96,4 +96,4 @@ public class SSACFGNullPointerAnalysis implements ExceptionPruningAnalysis { public Module getContainer() { return reader.getModuleEntry().getContainer(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/client/AbstractAnalysisEngine.java b/com.ibm.wala.core/src/com/ibm/wala/client/AbstractAnalysisEngine.java index b475d8b00..a7d6f83eb 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/client/AbstractAnalysisEngine.java +++ b/com.ibm.wala.core/src/com/ibm/wala/client/AbstractAnalysisEngine.java @@ -22,11 +22,13 @@ import com.ibm.wala.classLoader.ClassLoaderFactoryImpl; import com.ibm.wala.classLoader.JarFileModule; import com.ibm.wala.classLoader.Module; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraph; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Util; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; @@ -34,6 +36,8 @@ import com.ibm.wala.ipa.cha.ClassHierarchyException; import com.ibm.wala.ipa.cha.ClassHierarchyFactory; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.slicer.SDG; +import com.ibm.wala.ipa.slicer.Slicer.ControlDependenceOptions; +import com.ibm.wala.ipa.slicer.Slicer.DataDependenceOptions; import com.ibm.wala.ssa.DefaultIRFactory; import com.ibm.wala.types.ClassLoaderReference; import com.ibm.wala.util.CancelException; @@ -43,8 +47,6 @@ import com.ibm.wala.util.config.SetOfClasses; import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.io.FileProvider; -import static com.ibm.wala.ipa.slicer.Slicer.*; - /** * Abstract base class for analysis engine implementations * @@ -92,7 +94,7 @@ public abstract class AbstractAnalysisEngine implements A /** * A cache of IRs and stuff */ - private AnalysisCache cache = makeDefaultCache(); + private IAnalysisCacheView cache = makeDefaultCache(); /** * The standard J2SE libraries to analyze @@ -131,7 +133,7 @@ public abstract class AbstractAnalysisEngine implements A } }; - protected abstract CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache); + protected abstract CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache2); protected CallGraphBuilder buildCallGraph(IClassHierarchy cha, AnalysisOptions options, boolean savePointerAnalysis, IProgressMonitor monitor) throws IllegalArgumentException, CancelException { @@ -198,8 +200,8 @@ public abstract class AbstractAnalysisEngine implements A return cha; } - protected void setClassHierarchy(IClassHierarchy cha) { - this.cha = cha; + protected IClassHierarchy setClassHierarchy(IClassHierarchy cha) { + return this.cha = cha; } /** @@ -287,8 +289,8 @@ public abstract class AbstractAnalysisEngine implements A return new AnalysisOptions(getScope(), entrypoints); } - public AnalysisCache makeDefaultCache() { - return new AnalysisCache(new DefaultIRFactory()); + public IAnalysisCacheView makeDefaultCache() { + return new AnalysisCacheImpl(new DefaultIRFactory()); } protected Iterable makeDefaultEntrypoints(AnalysisScope scope, IClassHierarchy cha) { @@ -320,7 +322,7 @@ public abstract class AbstractAnalysisEngine implements A return defaultCallGraphBuilder().makeCallGraph(options, null); } - public AnalysisCache getCache() { + public IAnalysisCacheView getCache() { return cache; } diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/BackwardsSupergraph.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/BackwardsSupergraph.java index c8b2bcf51..e09dae2a3 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/BackwardsSupergraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/BackwardsSupergraph.java @@ -386,4 +386,4 @@ public class BackwardsSupergraph implements ISupergraph { Assertions.UNREACHABLE(); return null; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/CallFlowEdges.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/CallFlowEdges.java index 9a3de66b0..10850d2e5 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/CallFlowEdges.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/CallFlowEdges.java @@ -156,4 +156,4 @@ public class CallFlowEdges { return result; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ICFGSupergraph.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ICFGSupergraph.java index 431c63aec..86fc4a9fa 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ICFGSupergraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ICFGSupergraph.java @@ -24,21 +24,17 @@ package com.ibm.wala.dataflow.IFDS; import java.util.Iterator; import com.ibm.wala.cfg.ControlFlowGraph; -import com.ibm.wala.classLoader.IMethod; -import com.ibm.wala.ipa.callgraph.AnalysisCache; -import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; -import com.ibm.wala.ipa.callgraph.Context; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cfg.BasicBlockInContext; import com.ibm.wala.ipa.cfg.ExplodedInterproceduralCFG; import com.ibm.wala.ipa.cha.IClassHierarchy; -import com.ibm.wala.ssa.IR; import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.ssa.analysis.IExplodedBasicBlock; -import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.collections.FilterIterator; import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.graph.Graph; @@ -54,16 +50,16 @@ import com.ibm.wala.util.intset.IntSet; */ public class ICFGSupergraph implements ISupergraph, CGNode> { - private final AnalysisCache analysisCache; + private final IAnalysisCacheView analysisCache; private final ExplodedInterproceduralCFG icfg; - protected ICFGSupergraph(ExplodedInterproceduralCFG icfg, AnalysisCache cache) { + protected ICFGSupergraph(ExplodedInterproceduralCFG icfg, IAnalysisCacheView cache) { this.icfg = icfg; this.analysisCache = cache; } - public static ICFGSupergraph make(CallGraph cg, AnalysisCache cache) { + public static ICFGSupergraph make(CallGraph cg, IAnalysisCacheView cache) { ICFGSupergraph w = new ICFGSupergraph(ExplodedInterproceduralCFG.make(cg), cache); return w; } diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ISupergraph.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ISupergraph.java index 56de92c91..5d370732d 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ISupergraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ISupergraph.java @@ -133,4 +133,4 @@ public interface ISupergraph extends NumberedGraph { */ byte classifyEdge(T src, T dest); -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/IdentityFlowFunction.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/IdentityFlowFunction.java index 5d8bb6cfd..80a19cce4 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/IdentityFlowFunction.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/IdentityFlowFunction.java @@ -38,4 +38,4 @@ public class IdentityFlowFunction implements IReversibleFlowFunction { return "Identity Flow"; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/LocalPathEdges.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/LocalPathEdges.java index d58e6ccfb..d41e625d7 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/LocalPathEdges.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/LocalPathEdges.java @@ -450,4 +450,4 @@ public class LocalPathEdges { } return result; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/LocalSummaryEdges.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/LocalSummaryEdges.java index 500332bf5..d78cd0d6e 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/LocalSummaryEdges.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/LocalSummaryEdges.java @@ -156,4 +156,4 @@ public class LocalSummaryEdges { return result; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/PathEdge.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/PathEdge.java index 5dba1e257..fb568ccf5 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/PathEdge.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/PathEdge.java @@ -107,4 +107,4 @@ public final class PathEdge { public T getTarget() { return target; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/alg/refinepolicy/TunedFieldRefinementPolicy.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/alg/refinepolicy/TunedFieldRefinementPolicy.java index fb03684aa..ef545b6b9 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/alg/refinepolicy/TunedFieldRefinementPolicy.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/alg/refinepolicy/TunedFieldRefinementPolicy.java @@ -98,4 +98,4 @@ public class TunedFieldRefinementPolicy implements FieldRefinePolicy { this.cha = cha; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractDemandFlowGraph.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractDemandFlowGraph.java index b610a59a1..0ad338d33 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractDemandFlowGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractDemandFlowGraph.java @@ -61,7 +61,6 @@ import com.ibm.wala.ssa.IR; import com.ibm.wala.ssa.ISSABasicBlock; import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; import com.ibm.wala.ssa.SSAInstruction; -import com.ibm.wala.ssa.SSAInvokeInstruction; import com.ibm.wala.ssa.SSAPhiInstruction; import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.collections.HashMapFactory; @@ -392,4 +391,4 @@ public abstract class AbstractDemandFlowGraph extends AbstractFlowGraph { super(mam, heapModel, cha, cg); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractFlowGraph.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractFlowGraph.java index 45ff136cf..9938e252c 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractFlowGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractFlowGraph.java @@ -75,6 +75,7 @@ import com.ibm.wala.ssa.SSAArrayLoadInstruction; import com.ibm.wala.ssa.SSAArrayStoreInstruction; import com.ibm.wala.ssa.SSAGetInstruction; import com.ibm.wala.ssa.SSAInstruction; +import com.ibm.wala.ssa.SSAInvokeInstruction; import com.ibm.wala.ssa.SSANewInstruction; import com.ibm.wala.ssa.SSAPutInstruction; import com.ibm.wala.ssa.SymbolTable; diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/IFlowGraph.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/IFlowGraph.java index 542c9b2a8..81f760e06 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/IFlowGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/IFlowGraph.java @@ -22,6 +22,7 @@ import com.ibm.wala.ipa.callgraph.propagation.PointerKey; import com.ibm.wala.ipa.callgraph.propagation.StaticFieldKey; import com.ibm.wala.ipa.callgraph.propagation.cfa.CallerSiteContext; import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; +import com.ibm.wala.ssa.SSAInvokeInstruction; import com.ibm.wala.util.graph.labeled.LabeledGraph; public interface IFlowGraph extends LabeledGraph { @@ -100,4 +101,4 @@ public interface IFlowGraph extends LabeledGraph { */ public abstract Set getPossibleTargets(CGNode caller, CallSiteReference site, LocalPointerKey actualPk); -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/PointerKeyAndCallSite.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/PointerKeyAndCallSite.java index 4a7984583..e001a58e5 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/PointerKeyAndCallSite.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/PointerKeyAndCallSite.java @@ -89,4 +89,4 @@ public class PointerKeyAndCallSite { return false; return true; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/SimpleDemandPointerFlowGraph.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/SimpleDemandPointerFlowGraph.java index 21b246dea..f52041f68 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/SimpleDemandPointerFlowGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/SimpleDemandPointerFlowGraph.java @@ -1314,4 +1314,4 @@ public class SimpleDemandPointerFlowGraph extends SlowSparseNumberedGraph getAnnotations() { return Collections.emptySet(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/MemoryAccessMap.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/MemoryAccessMap.java index ef7769e90..461526b70 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/MemoryAccessMap.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/MemoryAccessMap.java @@ -40,4 +40,4 @@ public interface MemoryAccessMap { * get the heap model used in this memory access map */ public HeapModel getHeapModel(); -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/PointerParamValueNumIterator.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/PointerParamValueNumIterator.java index c7b392274..9efac36bd 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/PointerParamValueNumIterator.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/PointerParamValueNumIterator.java @@ -118,4 +118,4 @@ public class PointerParamValueNumIterator implements Iterator { throw new UnsupportedOperationException(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/SimpleMemoryAccessMap.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/SimpleMemoryAccessMap.java index 4169e7da1..c86d5d941 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/SimpleMemoryAccessMap.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/util/SimpleMemoryAccessMap.java @@ -460,4 +460,4 @@ public class SimpleMemoryAccessMap implements MemoryAccessMap { + " for array access instruction"; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/AnalysisCache.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/AnalysisCache.java index 5b36ec619..b0ae8b7be 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/AnalysisCache.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/AnalysisCache.java @@ -13,7 +13,6 @@ package com.ibm.wala.ipa.callgraph; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ssa.DefUse; -import com.ibm.wala.ssa.DefaultIRFactory; import com.ibm.wala.ssa.IR; import com.ibm.wala.ssa.IRFactory; import com.ibm.wala.ssa.SSACache; @@ -25,29 +24,25 @@ import com.ibm.wala.util.ref.ReferenceCleanser; * * Someday this should maybe go away? */ -public class AnalysisCache { +public class AnalysisCache implements IAnalysisCacheView { private final IRFactory irFactory; private final SSACache ssaCache; private final SSAOptions ssaOptions; - public AnalysisCache(IRFactory irFactory, SSAOptions ssaOptions) { + public AnalysisCache(IRFactory irFactory, SSAOptions ssaOptions, SSACache cache) { super(); this.ssaOptions = ssaOptions; this.irFactory = irFactory; - this.ssaCache = new SSACache(irFactory); + this.ssaCache = cache; ReferenceCleanser.registerCache(this); } - public AnalysisCache(IRFactory irFactory) { - this(irFactory, new AnalysisOptions().getSSAOptions()); - } - - public AnalysisCache() { - this(new DefaultIRFactory()); - } - + /* + * @see com.ibm.wala.ipa.callgraph.IAnalysisCacheView#invalidate(com.ibm.wala.classLoader.IMethod, com.ibm.wala.ipa.callgraph.Context) + */ + @Override public void invalidate(IMethod method, Context C) { ssaCache.invalidate(method, C); } @@ -60,24 +55,34 @@ public class AnalysisCache { return ssaOptions; } + /* + * @see com.ibm.wala.ipa.callgraph.IAnalysisCacheView#getIRFactory() + */ + @Override public IRFactory getIRFactory() { return irFactory; } - /** - * Find or create an IR for the method using the {@link Everywhere} context and default {@link SSAOptions} + /* + * @see com.ibm.wala.ipa.callgraph.IAnalysisCacheView#getIR(com.ibm.wala.classLoader.IMethod) */ - public IR getIR(IMethod method) { + @Override + public IR getIR(IMethod method, Context context) { if (method == null) { throw new IllegalArgumentException("method is null"); } - return ssaCache.findOrCreateIR(method, Everywhere.EVERYWHERE, ssaOptions); + return ssaCache.findOrCreateIR(method, context, ssaOptions); } - - /** - * Find or create a DefUse for the IR using the {@link Everywhere} context + @Override + public IR getIR(IMethod m) { + return getIR(m, Everywhere.EVERYWHERE); + } + + /* + * @see com.ibm.wala.ipa.callgraph.IAnalysisCacheView#getDefUse(com.ibm.wala.ssa.IR) */ + @Override public DefUse getDefUse(IR ir) { if (ir == null) { throw new IllegalArgumentException("ir is null"); diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/CallGraphBuilder.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/CallGraphBuilder.java index 01a875c2a..7ec222867 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/CallGraphBuilder.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/CallGraphBuilder.java @@ -14,7 +14,6 @@ package com.ibm.wala.ipa.callgraph; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; import com.ibm.wala.ipa.cha.IClassHierarchy; -import com.ibm.wala.util.CancelException; import com.ibm.wala.util.MonitorUtil.IProgressMonitor; /** @@ -39,7 +38,7 @@ public interface CallGraphBuilder { /** * @return A cache of various analysis artifacts used during call graph construction. */ - public AnalysisCache getAnalysisCache(); + public IAnalysisCacheView getAnalysisCache(); public IClassHierarchy getClassHierarchy(); diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/cha/CHACallGraph.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/cha/CHACallGraph.java index 2e8287cc9..0156cd6af 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/cha/CHACallGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/cha/CHACallGraph.java @@ -19,11 +19,12 @@ import java.util.Stack; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.classLoader.NewSiteReference; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.BasicCallGraph; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.callgraph.impl.FakeRootMethod; @@ -52,7 +53,7 @@ import com.ibm.wala.util.intset.MutableIntSet; public class CHACallGraph extends BasicCallGraph { private final IClassHierarchy cha; private final AnalysisOptions options; - private final AnalysisCache cache; + private final IAnalysisCacheView cache; private boolean isInitialized = false; @@ -105,7 +106,7 @@ public class CHACallGraph extends BasicCallGraph { public CHACallGraph(IClassHierarchy cha) { this.cha = cha; this.options = new AnalysisOptions(); - this.cache = new AnalysisCache(); + this.cache = new AnalysisCacheImpl(); setInterpreter(new ContextInsensitiveCHAContextInterpreter()); } diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AbstractRootMethod.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AbstractRootMethod.java index f8e8c03bf..8a080dc6f 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AbstractRootMethod.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AbstractRootMethod.java @@ -22,10 +22,10 @@ import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.classLoader.NewSiteReference; import com.ibm.wala.classLoader.SyntheticMethod; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.rta.RTAContextInterpreter; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.summaries.SyntheticIR; @@ -68,12 +68,12 @@ public abstract class AbstractRootMethod extends SyntheticMethod { private final AnalysisOptions options; - protected final AnalysisCache cache; + protected final IAnalysisCacheView cache; protected final SSAInstructionFactory insts; public AbstractRootMethod(MethodReference method, IClass declaringClass, final IClassHierarchy cha, AnalysisOptions options, - AnalysisCache cache) { + IAnalysisCacheView cache) { super(method, declaringClass, true, false); this.cha = cha; this.options = options; @@ -89,7 +89,7 @@ public abstract class AbstractRootMethod extends SyntheticMethod { } } - public AbstractRootMethod(MethodReference method, final IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public AbstractRootMethod(MethodReference method, final IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { this(method, new FakeRootClass(cha), cha, options, cache); } diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AllApplicationEntrypoints.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AllApplicationEntrypoints.java index 13277157e..4d4003bf1 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AllApplicationEntrypoints.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AllApplicationEntrypoints.java @@ -60,4 +60,4 @@ public class AllApplicationEntrypoints extends HashSet { private boolean isApplicationClass(AnalysisScope scope, IClass klass) { return scope.getApplicationLoader().equals(klass.getClassLoader().getReference()); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ArgumentTypeEntrypoint.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ArgumentTypeEntrypoint.java index 8d513d863..fee883bb5 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ArgumentTypeEntrypoint.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ArgumentTypeEntrypoint.java @@ -110,4 +110,4 @@ public class ArgumentTypeEntrypoint extends Entrypoint { return paramTypes.length; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ClassHierarchyClassTargetSelector.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ClassHierarchyClassTargetSelector.java index 031375a6b..75197b7c1 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ClassHierarchyClassTargetSelector.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ClassHierarchyClassTargetSelector.java @@ -44,4 +44,4 @@ public class ClassHierarchyClassTargetSelector implements ClassTargetSelector { return klass; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/DefaultContextSelector.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/DefaultContextSelector.java index 4ebecd88a..668de58e1 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/DefaultContextSelector.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/DefaultContextSelector.java @@ -52,4 +52,4 @@ public class DefaultContextSelector implements ContextSelector { return delegate.getRelevantParameters(caller, site); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ExplicitCallGraph.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ExplicitCallGraph.java index fd574c35e..168c67426 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ExplicitCallGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/ExplicitCallGraph.java @@ -20,10 +20,10 @@ import com.ibm.wala.cfg.ControlFlowGraph; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.classLoader.NewSiteReference; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.shrikeBT.BytecodeConstants; @@ -32,8 +32,8 @@ import com.ibm.wala.ssa.IR; import com.ibm.wala.ssa.ISSABasicBlock; import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.util.CancelException; -import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.collections.FilterIterator; import com.ibm.wala.util.collections.HashSetFactory; import com.ibm.wala.util.collections.IntMapIterator; @@ -58,7 +58,7 @@ public class ExplicitCallGraph extends BasicCallGraph imp protected final AnalysisOptions options; - private final AnalysisCache cache; + private final IAnalysisCacheView cache; private final long maxNumberOfNodes; @@ -67,7 +67,7 @@ public class ExplicitCallGraph extends BasicCallGraph imp */ private final ExplicitEdgeManager edgeManager = makeEdgeManger(); - public ExplicitCallGraph(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public ExplicitCallGraph(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(); if (options == null) { throw new IllegalArgumentException("null options"); @@ -515,7 +515,7 @@ public class ExplicitCallGraph extends BasicCallGraph imp return n.getPossibleTargetNumbers(site); } - public AnalysisCache getAnalysisCache() { + public IAnalysisCacheView getAnalysisCache() { return cache; } } diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/FakeRootMethod.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/FakeRootMethod.java index 7d069beea..d84b60b1c 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/FakeRootMethod.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/FakeRootMethod.java @@ -12,8 +12,8 @@ package com.ibm.wala.ipa.callgraph.impl; import com.ibm.wala.cfg.IBasicBlock; import com.ibm.wala.classLoader.IMethod; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.types.Descriptor; import com.ibm.wala.types.MemberReference; @@ -33,7 +33,7 @@ public class FakeRootMethod extends AbstractRootMethod { public static final MethodReference rootMethod = MethodReference.findOrCreate(FakeRootClass.FAKE_ROOT_CLASS, name, descr); - public FakeRootMethod(final IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public FakeRootMethod(final IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(rootMethod, cha, options, cache); } diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/FakeWorldClinitMethod.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/FakeWorldClinitMethod.java index 5afe40180..feedf395d 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/FakeWorldClinitMethod.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/FakeWorldClinitMethod.java @@ -10,8 +10,8 @@ *******************************************************************************/ package com.ibm.wala.ipa.callgraph.impl; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.types.Descriptor; import com.ibm.wala.types.MethodReference; @@ -29,7 +29,7 @@ public class FakeWorldClinitMethod extends AbstractRootMethod { private static final MethodReference worldClinitMethod = MethodReference.findOrCreate(FakeRootClass.FAKE_ROOT_CLASS, name, Descriptor .findOrCreate(new TypeName[0], TypeReference.VoidName)); - public FakeWorldClinitMethod(final IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public FakeWorldClinitMethod(final IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(worldClinitMethod, cha, options, cache); } } diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/UnionContextSelector.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/UnionContextSelector.java index e7e079989..c4ddb0d85 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/UnionContextSelector.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/UnionContextSelector.java @@ -15,8 +15,8 @@ import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; -import com.ibm.wala.ipa.callgraph.DelegatingContext; import com.ibm.wala.ipa.callgraph.ContextSelector; +import com.ibm.wala.ipa.callgraph.DelegatingContext; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.util.intset.IntSet; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/Util.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/Util.java index 8349072b3..a964ad53b 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/Util.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/Util.java @@ -27,6 +27,7 @@ import com.ibm.wala.ipa.callgraph.CallGraphBuilder; import com.ibm.wala.ipa.callgraph.ClassTargetSelector; import com.ibm.wala.ipa.callgraph.ContextSelector; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.MethodTargetSelector; import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter; import com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder; @@ -331,7 +332,7 @@ public class Util { * @param scope representation of the analysis scope * @return a 0-CFA Call Graph Builder. */ - public static SSAPropagationCallGraphBuilder makeZeroCFABuilder(AnalysisOptions options, AnalysisCache cache, + public static SSAPropagationCallGraphBuilder makeZeroCFABuilder(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope) { return makeZeroCFABuilder(options, cache, cha, scope, null, null); } @@ -345,7 +346,7 @@ public class Util { * @return a 0-CFA Call Graph Builder. * @throws IllegalArgumentException if options is null */ - public static SSAPropagationCallGraphBuilder makeZeroCFABuilder(AnalysisOptions options, AnalysisCache cache, + public static SSAPropagationCallGraphBuilder makeZeroCFABuilder(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope, ContextSelector customSelector, SSAContextInterpreter customInterpreter) { if (options == null) { diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/AssignOperator.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/AssignOperator.java index 2def3ae28..62bb0d951 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/AssignOperator.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/AssignOperator.java @@ -67,4 +67,4 @@ class AssignOperator extends UnaryOperator implements IPoin public boolean isComplex() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/ConcreteTypeKey.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/ConcreteTypeKey.java index 77767916d..22a139721 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/ConcreteTypeKey.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/ConcreteTypeKey.java @@ -21,8 +21,8 @@ import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ssa.IR; import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.types.TypeReference; -import com.ibm.wala.util.collections.ComposedIterator; import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.collections.ComposedIterator; import com.ibm.wala.util.collections.FilterIterator; import com.ibm.wala.util.collections.MapIterator; import com.ibm.wala.util.collections.Pair; @@ -126,4 +126,4 @@ public final class ConcreteTypeKey implements InstanceKey { } }; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/IPointerOperator.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/IPointerOperator.java index 01ce89607..35f588108 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/IPointerOperator.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/IPointerOperator.java @@ -20,4 +20,4 @@ public interface IPointerOperator { */ boolean isComplex(); -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationCallGraphBuilder.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationCallGraphBuilder.java index 0ff3b85da..5294ebd71 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationCallGraphBuilder.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationCallGraphBuilder.java @@ -32,6 +32,7 @@ import com.ibm.wala.ipa.callgraph.CallGraphBuilderCancelException; import com.ibm.wala.ipa.callgraph.Context; import com.ibm.wala.ipa.callgraph.ContextSelector; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod; import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph; import com.ibm.wala.ipa.callgraph.propagation.rta.RTAContextInterpreter; @@ -99,7 +100,7 @@ public abstract class PropagationCallGraphBuilder implements CallGraphBuilder { /** * Cache of IRs and things */ - private final AnalysisCache analysisCache; + private final IAnalysisCacheView analysisCache; /** * Set of nodes that have already been traversed for constraints @@ -175,7 +176,7 @@ public abstract class PropagationCallGraphBuilder implements CallGraphBuilder { * @param options governing call graph construction options * @param pointerKeyFactory factory which embodies pointer abstraction policy */ - protected PropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, + protected PropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, PointerKeyFactory pointerKeyFactory) { if (cha == null) { throw new IllegalArgumentException("cha is null"); @@ -1486,7 +1487,7 @@ public abstract class PropagationCallGraphBuilder implements CallGraphBuilder { } @Override - public AnalysisCache getAnalysisCache() { + public IAnalysisCacheView getAnalysisCache() { return analysisCache; }; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationGraph.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationGraph.java index d78ea2078..7d5b4d326 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationGraph.java @@ -25,9 +25,9 @@ import com.ibm.wala.fixpoint.IFixedPointSystem; import com.ibm.wala.fixpoint.IVariable; import com.ibm.wala.fixpoint.UnaryOperator; import com.ibm.wala.fixpoint.UnaryStatement; +import com.ibm.wala.util.Predicate; import com.ibm.wala.util.collections.CompoundIterator; import com.ibm.wala.util.collections.EmptyIterator; -import com.ibm.wala.util.Predicate; import com.ibm.wala.util.collections.FilterIterator; import com.ibm.wala.util.collections.HashSetFactory; import com.ibm.wala.util.collections.SmallMap; @@ -506,8 +506,7 @@ public class PropagationGraph implements IFixedPointSystem */ @Override public boolean containsNode(PointsToSetVariable N) { - Assertions.UNREACHABLE(); - return false; + return delegateGraph.containsNode(N); } /* diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/ReturnValueKey.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/ReturnValueKey.java index b6591140f..3d0044c40 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/ReturnValueKey.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/ReturnValueKey.java @@ -34,4 +34,4 @@ public class ReturnValueKey extends NodeKey { public int hashCode() { return 1283 * super.internalHashCode(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SSAPropagationCallGraphBuilder.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SSAPropagationCallGraphBuilder.java index 0c01ecbc0..0bfc64445 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SSAPropagationCallGraphBuilder.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SSAPropagationCallGraphBuilder.java @@ -36,6 +36,7 @@ import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.ContextKey; import com.ibm.wala.ipa.callgraph.ContextSelector; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod; import com.ibm.wala.ipa.callgraph.impl.DefaultEntrypoint; import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph; @@ -158,7 +159,7 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap public IProgressMonitor monitor; - protected SSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, + protected SSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, PointerKeyFactory pointerKeyFactory) { super(cha, options, cache, pointerKeyFactory); // this.usePreTransitiveSolver = options.usePreTransitiveSolver(); @@ -644,7 +645,7 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap return builder.options; } - protected AnalysisCache getAnalysisCache() { + protected IAnalysisCacheView getAnalysisCache() { return builder.getAnalysisCache(); } @@ -1728,9 +1729,9 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap previousPtrs[i] = IntSetUtil.getDefaultIntSetFactory().make(); } } - + private byte cpa(PointsToSetVariable lhs, final PointsToSetVariable[] rhs) { - final MutableBoolean changed = new MutableBoolean(); + final MutableBoolean changed = new MutableBoolean(); for(int rhsIndex = 0; rhsIndex < rhs.length; rhsIndex++) { final int y = rhsIndex; IntSet currentObjs = rhs[rhsIndex].getValue(); @@ -1748,7 +1749,7 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap recv = v[0].getConcreteType(); } CGNode target = getTargetForCall(node, call.getCallSite(), recv, v); - if (target != null) { + if (target != null) { changed.b = true; processResolvedCall(node, call, target, constParams, uniqueCatch); if (!haveAlreadyVisited(target)) { diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SelectiveCPAContext.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SelectiveCPAContext.java index d5c0930de..8438458d7 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SelectiveCPAContext.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/SelectiveCPAContext.java @@ -11,7 +11,6 @@ package com.ibm.wala.ipa.callgraph.propagation; -import java.util.HashMap; import java.util.Map; import com.ibm.wala.ipa.callgraph.Context; @@ -85,4 +84,4 @@ public class SelectiveCPAContext implements Context { parameterObjs.equals(((SelectiveCPAContext)other).parameterObjs); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/CallString.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/CallString.java index 5bf80e195..9795471c6 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/CallString.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/CallString.java @@ -84,4 +84,4 @@ public class CallString implements ContextItem { return this.methods; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/CallStringContext.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/CallStringContext.java index c3e64ea62..14e15cde9 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/CallStringContext.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/CallStringContext.java @@ -47,4 +47,4 @@ public class CallStringContext implements Context { return null; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ContextInsensitiveSSAInterpreter.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ContextInsensitiveSSAInterpreter.java index c078a27e2..915b9143a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ContextInsensitiveSSAInterpreter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ContextInsensitiveSSAInterpreter.java @@ -15,6 +15,7 @@ import com.ibm.wala.classLoader.IClass; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter; import com.ibm.wala.ipa.callgraph.propagation.rta.ContextInsensitiveRTAInterpreter; @@ -30,7 +31,7 @@ public class ContextInsensitiveSSAInterpreter extends ContextInsensitiveRTAInter protected final AnalysisOptions options; - public ContextInsensitiveSSAInterpreter(AnalysisOptions options, AnalysisCache cache) { + public ContextInsensitiveSSAInterpreter(AnalysisOptions options, IAnalysisCacheView cache) { super(cache); this.options = options; } @@ -42,7 +43,7 @@ public class ContextInsensitiveSSAInterpreter extends ContextInsensitiveRTAInter } // Note: since this is context-insensitive, we cache an IR based on the // EVERYWHERE context - return getAnalysisCache().getSSACache().findOrCreateIR(node.getMethod(), Everywhere.EVERYWHERE, options.getSSAOptions()); + return getAnalysisCache().getIR(node.getMethod(), Everywhere.EVERYWHERE); } @Override @@ -73,6 +74,6 @@ public class ContextInsensitiveSSAInterpreter extends ContextInsensitiveRTAInter } // Note: since this is context-insensitive, we cache an IR based on the // EVERYWHERE context - return getAnalysisCache().getSSACache().findOrCreateDU(node.getMethod(), Everywhere.EVERYWHERE, options.getSSAOptions()); + return getAnalysisCache().getDefUse(getAnalysisCache().getIR(node.getMethod(), Everywhere.EVERYWHERE)); } } diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/DefaultSSAInterpreter.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/DefaultSSAInterpreter.java index cd1b84605..a18f59fc9 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/DefaultSSAInterpreter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/DefaultSSAInterpreter.java @@ -20,6 +20,7 @@ import com.ibm.wala.classLoader.NewSiteReference; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter; import com.ibm.wala.ipa.callgraph.propagation.rta.DefaultRTAInterpreter; import com.ibm.wala.ssa.DefUse; @@ -36,7 +37,7 @@ public class DefaultSSAInterpreter extends DefaultRTAInterpreter implements SSAC private final ContextInsensitiveSSAInterpreter defaultInterpreter; - public DefaultSSAInterpreter(AnalysisOptions options, AnalysisCache cache) { + public DefaultSSAInterpreter(AnalysisOptions options, IAnalysisCacheView cache) { super(options, cache); cloneInterpreter = new CloneInterpreter(); defaultInterpreter = new ContextInsensitiveSSAInterpreter(options, cache); diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ExceptionReturnValueKey.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ExceptionReturnValueKey.java index 080f1f7b0..9859d25c5 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ExceptionReturnValueKey.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ExceptionReturnValueKey.java @@ -38,4 +38,4 @@ public final class ExceptionReturnValueKey extends ReturnValueKey { public int hashCode() { return 1201 * super.internalHashCode(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/FallbackContextInterpreter.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/FallbackContextInterpreter.java index b1fa8ac2b..42b7e1000 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/FallbackContextInterpreter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/FallbackContextInterpreter.java @@ -152,4 +152,4 @@ public class FallbackContextInterpreter implements SSAContextInterpreter { public ControlFlowGraph getCFG(CGNode n) { return shrikeCI.getCFG(n); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ZeroXCFABuilder.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ZeroXCFABuilder.java index dce681cfc..737165b98 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ZeroXCFABuilder.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ZeroXCFABuilder.java @@ -15,6 +15,7 @@ import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.ContextSelector; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.DefaultContextSelector; import com.ibm.wala.ipa.callgraph.impl.DelegatingContextSelector; import com.ibm.wala.ipa.callgraph.impl.Util; @@ -27,7 +28,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy; */ public class ZeroXCFABuilder extends SSAPropagationCallGraphBuilder { - public ZeroXCFABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, ContextSelector appContextSelector, + public ZeroXCFABuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter, int instancePolicy) { super(cha, options, cache, new DefaultPointerKeyFactory()); @@ -83,7 +84,7 @@ public class ZeroXCFABuilder extends SSAPropagationCallGraphBuilder { return new ZeroXCFABuilder(cha, options, cache, null, null, instancePolicy); } - public static ZeroXCFABuilder make(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, + public static ZeroXCFABuilder make(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter, int instancePolicy) throws IllegalArgumentException { if (options == null) { throw new IllegalArgumentException("options == null"); diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/BasicRTABuilder.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/BasicRTABuilder.java index daa08fa9d..da30a01d7 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/BasicRTABuilder.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/BasicRTABuilder.java @@ -230,4 +230,4 @@ public class BasicRTABuilder extends AbstractRTABuilder { return new DispatchOperator(site, (ExplicitNode) node); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/CallSite.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/CallSite.java index 5985f967d..4de5044d3 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/CallSite.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/CallSite.java @@ -45,4 +45,4 @@ public final class CallSite extends Pair { return getSite().getDeclaredTarget().getSelector(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/ContextInsensitiveRTAInterpreter.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/ContextInsensitiveRTAInterpreter.java index c4727faef..195aefbee 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/ContextInsensitiveRTAInterpreter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/ContextInsensitiveRTAInterpreter.java @@ -18,6 +18,7 @@ import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.NewSiteReference; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.cha.ContextInsensitiveCHAContextInterpreter; import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter; import com.ibm.wala.shrikeCT.InvalidClassFileException; @@ -29,13 +30,13 @@ import com.ibm.wala.util.debug.Assertions; */ public abstract class ContextInsensitiveRTAInterpreter extends ContextInsensitiveCHAContextInterpreter implements RTAContextInterpreter, SSAContextInterpreter { - private final AnalysisCache analysisCache; + private final IAnalysisCacheView analysisCache; - public ContextInsensitiveRTAInterpreter(AnalysisCache cache) { + public ContextInsensitiveRTAInterpreter(IAnalysisCacheView cache) { this.analysisCache = cache; } - public AnalysisCache getAnalysisCache() { + public IAnalysisCacheView getAnalysisCache() { return analysisCache; } diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/DefaultRTAInterpreter.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/DefaultRTAInterpreter.java index bf78234cb..379e9d1d9 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/DefaultRTAInterpreter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/DefaultRTAInterpreter.java @@ -19,6 +19,7 @@ import com.ibm.wala.classLoader.NewSiteReference; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.FakeRootMethod; import com.ibm.wala.ipa.callgraph.propagation.cfa.ContextInsensitiveSSAInterpreter; import com.ibm.wala.types.FieldReference; @@ -35,7 +36,7 @@ public class DefaultRTAInterpreter implements RTAContextInterpreter { /** * @param options governing analysis options */ - public DefaultRTAInterpreter(AnalysisOptions options, AnalysisCache cache) { + public DefaultRTAInterpreter(AnalysisOptions options, IAnalysisCacheView cache) { defaultInterpreter = new ContextInsensitiveSSAInterpreter(options, cache); } diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/DelegatingExplicitCallGraph.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/DelegatingExplicitCallGraph.java index 3457925c2..ef0036793 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/DelegatingExplicitCallGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/DelegatingExplicitCallGraph.java @@ -15,10 +15,10 @@ import java.util.Set; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IMethod; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.util.debug.Assertions; @@ -46,7 +46,7 @@ public class DelegatingExplicitCallGraph extends ExplicitCallGraph { * @param cha * @param options */ - public DelegatingExplicitCallGraph(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public DelegatingExplicitCallGraph(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(cha, options, cache); } diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/RTAContextInterpreter.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/RTAContextInterpreter.java index 971d3c041..308185065 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/RTAContextInterpreter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/RTAContextInterpreter.java @@ -48,4 +48,4 @@ public interface RTAContextInterpreter extends CHAContextInterpreter { * @return true iff a NEW type was recorded, false if the type was previously recorded. */ public boolean recordFactoryType(CGNode node, IClass klass); -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/ApplicationLoaderPolicy.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/ApplicationLoaderPolicy.java index 7548ffd99..24ae180e2 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/ApplicationLoaderPolicy.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/ApplicationLoaderPolicy.java @@ -31,4 +31,4 @@ public class ApplicationLoaderPolicy implements PruningPolicy { return n.getMethod().getDeclaringClass().getClassLoader().getName().equals(AnalysisScope.APPLICATION); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/EdgeFilter.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/EdgeFilter.java index a651ac388..eb7f6bc1f 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/EdgeFilter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/EdgeFilter.java @@ -30,4 +30,4 @@ public interface EdgeFilter { */ boolean hasExceptionalEdge(T src, T dst); -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/filter/NullPointerExceptionFilter.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/filter/NullPointerExceptionFilter.java index 7585732ec..7a254b55a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/filter/NullPointerExceptionFilter.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/filter/NullPointerExceptionFilter.java @@ -8,7 +8,6 @@ import com.ibm.wala.analysis.nullpointer.IntraproceduralNullPointerAnalysis; import com.ibm.wala.cfg.exc.intra.NullPointerState.State; import com.ibm.wala.ipa.cfg.exceptionpruning.ExceptionFilter; import com.ibm.wala.ipa.cfg.exceptionpruning.FilteredException; -import com.ibm.wala.ssa.ISSABasicBlock; import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.types.TypeReference; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/filter/package-info.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/filter/package-info.java index ca2456180..48ce6301f 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/filter/package-info.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/filter/package-info.java @@ -4,4 +4,4 @@ * @author Stephan Gocht {@code } * */ -package com.ibm.wala.ipa.cfg.exceptionpruning.filter; \ No newline at end of file +package com.ibm.wala.ipa.cfg.exceptionpruning.filter; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/interprocedural/package-info.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/interprocedural/package-info.java index 7a11d6fe8..71492335a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/interprocedural/package-info.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/interprocedural/package-info.java @@ -5,4 +5,4 @@ * @author stephan * */ -package com.ibm.wala.ipa.cfg.exceptionpruning.interprocedural; \ No newline at end of file +package com.ibm.wala.ipa.cfg.exceptionpruning.interprocedural; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/package-info.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/package-info.java index 5e778355c..77343bd0b 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/package-info.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/exceptionpruning/package-info.java @@ -12,4 +12,4 @@ * @author Stephan Gocht {@code } * */ -package com.ibm.wala.ipa.cfg.exceptionpruning; \ No newline at end of file +package com.ibm.wala.ipa.cfg.exceptionpruning; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/cha/ClassHierarchy.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/cha/ClassHierarchy.java index aa9ec3ead..bf829a179 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/cha/ClassHierarchy.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/cha/ClassHierarchy.java @@ -19,6 +19,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import com.ibm.wala.classLoader.ArrayClass; import com.ibm.wala.classLoader.ClassLoaderFactory; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/cha/ClassHierarchyWarning.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/cha/ClassHierarchyWarning.java index 454e8cdff..2a320fdb7 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/cha/ClassHierarchyWarning.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/cha/ClassHierarchyWarning.java @@ -32,4 +32,4 @@ public class ClassHierarchyWarning extends Warning { public static ClassHierarchyWarning create(String message) { return new ClassHierarchyWarning(message); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/modref/GenReach.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/modref/GenReach.java index 07e2d1e72..e7d2ab038 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/modref/GenReach.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/modref/GenReach.java @@ -102,4 +102,4 @@ public class GenReach extends BitVectorFramework { } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ExceptionalReturnCallee.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ExceptionalReturnCallee.java index b59a2ec13..4496bd2ca 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ExceptionalReturnCallee.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ExceptionalReturnCallee.java @@ -26,4 +26,4 @@ public class ExceptionalReturnCallee extends Statement { public Kind getKind() { return Kind.EXC_RET_CALLEE; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ExceptionalReturnCaller.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ExceptionalReturnCaller.java index 079d192ad..a1e97b39d 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ExceptionalReturnCaller.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ExceptionalReturnCaller.java @@ -37,4 +37,4 @@ public class ExceptionalReturnCaller extends StatementWithInstructionIndex imple public Kind getKind() { return Kind.EXC_RET_CALLER; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/HeapReachingDefs.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/HeapReachingDefs.java index b3523f7d5..36d0ea438 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/HeapReachingDefs.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/HeapReachingDefs.java @@ -32,7 +32,6 @@ import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; import com.ibm.wala.ipa.callgraph.propagation.PointerKey; import com.ibm.wala.ipa.callgraph.propagation.StaticFieldKey; -import com.ibm.wala.ipa.modref.DelegatingExtendedHeapModel; import com.ibm.wala.ipa.modref.ExtendedHeapModel; import com.ibm.wala.ipa.modref.ModRef; import com.ibm.wala.ipa.slicer.HeapStatement.HeapReturnCaller; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/NormalReturnCallee.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/NormalReturnCallee.java index 9711254b8..7a47d47bc 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/NormalReturnCallee.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/NormalReturnCallee.java @@ -26,4 +26,4 @@ public class NormalReturnCallee extends Statement { public Kind getKind() { return Kind.NORMAL_RET_CALLEE; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/NormalReturnCaller.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/NormalReturnCaller.java index 3bdc8cfda..b41169b75 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/NormalReturnCaller.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/NormalReturnCaller.java @@ -37,4 +37,4 @@ public class NormalReturnCaller extends StatementWithInstructionIndex implements public Kind getKind() { return Kind.NORMAL_RET_CALLER; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/PDG.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/PDG.java index 7f2b140bc..6bb974151 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/PDG.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/PDG.java @@ -29,7 +29,6 @@ import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; import com.ibm.wala.ipa.callgraph.propagation.PointerKey; import com.ibm.wala.ipa.cfg.ExceptionPrunedCFG; import com.ibm.wala.ipa.cfg.PrunedCFG; -import com.ibm.wala.ipa.modref.DelegatingExtendedHeapModel; import com.ibm.wala.ipa.modref.ExtendedHeapModel; import com.ibm.wala.ipa.modref.ModRef; import com.ibm.wala.ipa.slicer.Slicer.ControlDependenceOptions; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ParamCallee.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ParamCallee.java index ec8b7f87f..8ba030478 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ParamCallee.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ParamCallee.java @@ -64,4 +64,4 @@ public class ParamCallee extends Statement implements ValueNumberCarrier { } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ParamCaller.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ParamCaller.java index 52570bf57..b2789aaf7 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ParamCaller.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ParamCaller.java @@ -70,4 +70,4 @@ public class ParamCaller extends StatementWithInstructionIndex implements ValueN } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ReachabilityFunctions.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ReachabilityFunctions.java index 9eabeca12..54a0674b9 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ReachabilityFunctions.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ReachabilityFunctions.java @@ -77,4 +77,4 @@ public class ReachabilityFunctions implements IFlowFunctionMap { return FLOW_REACHES; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/SDGSupergraph.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/SDGSupergraph.java index 663b0a052..b0cbb3e98 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/SDGSupergraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/SDGSupergraph.java @@ -16,8 +16,8 @@ import com.ibm.wala.dataflow.IFDS.ISupergraph; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.slicer.Slicer.ControlDependenceOptions; import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; -import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.collections.FilterIterator; import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.graph.Graph; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/thin/CISDG.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/thin/CISDG.java index 99e94fae4..b8783692a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/thin/CISDG.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/thin/CISDG.java @@ -264,4 +264,4 @@ public class CISDG implements ISDG { public IClassHierarchy getClassHierarchy() { return noHeap.getClassHierarchy(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/BypassClassTargetSelector.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/BypassClassTargetSelector.java index f679c07b5..2ab511d62 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/BypassClassTargetSelector.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/BypassClassTargetSelector.java @@ -110,4 +110,4 @@ public class BypassClassTargetSelector implements ClassTargetSelector { return parent.getAllocatedTarget(caller, site); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/VolatileMethodSummary.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/VolatileMethodSummary.java index 9b76e5305..c44efb37b 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/VolatileMethodSummary.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/VolatileMethodSummary.java @@ -42,19 +42,19 @@ */ package com.ibm.wala.ipa.summaries; -import com.ibm.wala.ipa.summaries.MethodSummary; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.ibm.wala.classLoader.ProgramCounter; +import com.ibm.wala.ssa.ConstantValue; import com.ibm.wala.ssa.SSAGotoInstruction; import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.ssa.SSAInstructionFactory; import com.ibm.wala.ssa.SymbolTable; -import com.ibm.wala.ssa.ConstantValue; import com.ibm.wala.types.MemberReference; import com.ibm.wala.types.TypeReference; - -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; import com.ibm.wala.util.strings.Atom; /** diff --git a/com.ibm.wala.core/src/com/ibm/wala/ssa/AuxiliaryCache.java b/com.ibm.wala.core/src/com/ibm/wala/ssa/AuxiliaryCache.java index d6b35ac66..e53a7f645 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ssa/AuxiliaryCache.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ssa/AuxiliaryCache.java @@ -30,7 +30,7 @@ import com.ibm.wala.util.ref.CacheReference; * * This doesn't work very well ... GCs don't do such a great job with SoftReferences ... revamp it. */ -class AuxiliaryCache { +public class AuxiliaryCache implements IAuxiliaryCache { /** * A mapping from IMethod -> SSAOptions -> SoftReference -> IR @@ -47,9 +47,10 @@ class AuxiliaryCache { */ private int nItems = 0; - /** - * The existence of this is unfortunate. + /* + * @see com.ibm.wala.ssa.IAuxiliaryCache#wipe() */ + @Override public synchronized void wipe() { dictionary = HashMapFactory.make(); nItems = 0; @@ -85,11 +86,10 @@ class AuxiliaryCache { } } - /** - * @param m a method - * @param options options governing ssa construction - * @return the object cached for m, or null if none found + /* + * @see com.ibm.wala.ssa.IAuxiliaryCache#find(com.ibm.wala.classLoader.IMethod, com.ibm.wala.ipa.callgraph.Context, com.ibm.wala.ssa.SSAOptions) */ + @Override public synchronized Object find(IMethod m, Context c, SSAOptions options) { // methodMap: SSAOptions -> SoftReference Pair p = Pair.make(m, c); @@ -102,12 +102,10 @@ class AuxiliaryCache { } } - /** - * cache new auxiliary information for an pair - * - * @param m a method - * @param options options governing ssa construction + /* + * @see com.ibm.wala.ssa.IAuxiliaryCache#cache(com.ibm.wala.classLoader.IMethod, com.ibm.wala.ipa.callgraph.Context, com.ibm.wala.ssa.SSAOptions, java.lang.Object) */ + @Override public synchronized void cache(IMethod m, Context c, SSAOptions options, Object aux) { nItems++; @@ -121,9 +119,10 @@ class AuxiliaryCache { methodMap.put(options, ref); } - /** - * invalidate all cached information about a method + /* + * @see com.ibm.wala.ssa.IAuxiliaryCache#invalidate(com.ibm.wala.classLoader.IMethod, com.ibm.wala.ipa.callgraph.Context) */ + @Override public void invalidate(IMethod method, Context c) { dictionary.remove(Pair.make(method, c)); } diff --git a/com.ibm.wala.core/src/com/ibm/wala/ssa/ReflectiveMemberAccess.java b/com.ibm.wala.core/src/com/ibm/wala/ssa/ReflectiveMemberAccess.java index 95e675bc1..742ab001a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ssa/ReflectiveMemberAccess.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ssa/ReflectiveMemberAccess.java @@ -60,4 +60,4 @@ public abstract class ReflectiveMemberAccess extends SSAInstruction { return true; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ssa/SSAAbstractBinaryInstruction.java b/com.ibm.wala.core/src/com/ibm/wala/ssa/SSAAbstractBinaryInstruction.java index bf972a6f0..d3bbda0fe 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ssa/SSAAbstractBinaryInstruction.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ssa/SSAAbstractBinaryInstruction.java @@ -68,4 +68,4 @@ public abstract class SSAAbstractBinaryInstruction extends SSAInstruction { return 6311 * result ^ 2371 * val1 + val2; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/ssa/SSACFG.java b/com.ibm.wala.core/src/com/ibm/wala/ssa/SSACFG.java index 468aa4bf9..6c25b484e 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ssa/SSACFG.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ssa/SSACFG.java @@ -23,6 +23,7 @@ import com.ibm.wala.cfg.BytecodeCFG; import com.ibm.wala.cfg.ControlFlowGraph; import com.ibm.wala.cfg.IBasicBlock; import com.ibm.wala.cfg.InducedCFG; +import com.ibm.wala.cfg.MinimalCFG; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IClassLoader; import com.ibm.wala.classLoader.IMethod; @@ -55,7 +56,7 @@ import com.ibm.wala.util.warnings.Warnings; * As the current implementation stands, the delegate graph stores the graph structure, and this class additionally stores * {@link BasicBlock}s and the {@link SSAInstruction} array. */ -public class SSACFG implements ControlFlowGraph { +public class SSACFG implements ControlFlowGraph, MinimalCFG { private static final boolean DEBUG = false; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ssa/SSACache.java b/com.ibm.wala.core/src/com/ibm/wala/ssa/SSACache.java index 8ceb0867f..2e04349a9 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ssa/SSACache.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ssa/SSACache.java @@ -34,18 +34,20 @@ public class SSACache { /** * A cache of SSA IRs */ - final private AuxiliaryCache irCache = new AuxiliaryCache(); + final private IAuxiliaryCache irCache; /** * A cache of DefUse information */ - final private AuxiliaryCache duCache = new AuxiliaryCache(); + final private IAuxiliaryCache duCache; /** * @param factory a factory for creating IRs */ - public SSACache(IRFactory factory) { + public SSACache(IRFactory factory, IAuxiliaryCache irCache, IAuxiliaryCache duCache) { this.factory = factory; + this.irCache = irCache; + this.duCache = duCache; } /** diff --git a/com.ibm.wala.core/src/com/ibm/wala/ssa/analysis/ExplodedControlFlowGraph.java b/com.ibm.wala.core/src/com/ibm/wala/ssa/analysis/ExplodedControlFlowGraph.java index 5497b2d1a..00e8ca90d 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ssa/analysis/ExplodedControlFlowGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ssa/analysis/ExplodedControlFlowGraph.java @@ -660,4 +660,4 @@ public class ExplodedControlFlowGraph implements ControlFlowGraph iterator() { return warnings.iterator(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/WalaViewer.java b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/WalaViewer.java index 7751b5ffb..0a9000c43 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/WalaViewer.java +++ b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/WalaViewer.java @@ -70,4 +70,4 @@ public class WalaViewer extends JFrame { System.exit(0); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DalvikCallGraphTestBase.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DalvikCallGraphTestBase.java index 7a6897d2d..5f8aa02d8 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DalvikCallGraphTestBase.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DalvikCallGraphTestBase.java @@ -10,6 +10,8 @@ *******************************************************************************/ package com.ibm.wala.dalvik.test.callGraph; +import static com.ibm.wala.dalvik.test.util.Util.makeDalvikScope; + import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -27,12 +29,14 @@ import com.ibm.wala.dalvik.classLoader.DexIRFactory; import com.ibm.wala.dalvik.util.AndroidEntryPointLocator; import com.ibm.wala.dalvik.util.AndroidEntryPointLocator.LocatorFlags; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisOptions.ReflectionOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.CallGraph; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Util; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; @@ -59,8 +63,6 @@ import com.ibm.wala.util.collections.Pair; import com.ibm.wala.util.functions.Function; import com.ibm.wala.util.io.TemporaryFile; -import static com.ibm.wala.dalvik.test.util.Util.makeDalvikScope; - public class DalvikCallGraphTestBase extends DynamicCallGraphTestBase { protected static Set processCG(CallGraph cg, Predicate filter, Function map) { @@ -99,7 +101,7 @@ public class DalvikCallGraphTestBase extends DynamicCallGraphTestBase { @SuppressWarnings("unused") - private static SSAContextInterpreter makeDefaultInterpreter(AnalysisOptions options, AnalysisCache cache) { + private static SSAContextInterpreter makeDefaultInterpreter(AnalysisOptions options, IAnalysisCacheView cache) { return new DefaultSSAInterpreter(options, cache) { @Override public Iterator iterateNewSites(CGNode node) { @@ -129,7 +131,7 @@ public class DalvikCallGraphTestBase extends DynamicCallGraphTestBase { final IClassHierarchy cha = ClassHierarchyFactory.make(scope); - AnalysisCache cache = new AnalysisCache(new DexIRFactory()); + AnalysisCache cache = new AnalysisCacheImpl(new DexIRFactory()); List es = getEntrypoints(cha); @@ -171,7 +173,7 @@ public class DalvikCallGraphTestBase extends DynamicCallGraphTestBase { Iterable entrypoints = Util.makeMainEntrypoints(scope, cha, mainClassName); - AnalysisCache cache = new AnalysisCache(new DexIRFactory()); + AnalysisCache cache = new AnalysisCacheImpl(new DexIRFactory()); AnalysisOptions options = new AnalysisOptions(scope, entrypoints); diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DroidBenchCGTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DroidBenchCGTest.java index 10ce7d6a7..dcadeb6b1 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DroidBenchCGTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/DroidBenchCGTest.java @@ -10,6 +10,8 @@ *******************************************************************************/ package com.ibm.wala.dalvik.test.callGraph; +import static com.ibm.wala.dalvik.test.util.Util.walaProperties; + import java.io.File; import java.net.URI; import java.util.Collection; @@ -41,8 +43,6 @@ import com.ibm.wala.util.collections.Pair; import com.ibm.wala.util.functions.VoidFunction; import com.ibm.wala.util.io.FileUtil; -import static com.ibm.wala.dalvik.test.util.Util.walaProperties; - public abstract class DroidBenchCGTest extends DalvikCallGraphTestBase { private static MethodReference ref(String type, String name, String sig) { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparisonTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparisonTest.java index f72aed277..2fc037868 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparisonTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparisonTest.java @@ -23,7 +23,7 @@ import org.junit.Test; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.core.tests.util.TestConstants; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -53,7 +53,7 @@ public class JVMLDalvikComparisonTest extends DalvikCallGraphTestBase { ClassHierarchy cha = ClassHierarchyFactory.make(scope); Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, mainClass); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - SSAPropagationCallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCache(), cha, scope); + SSAPropagationCallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCacheImpl(), cha, scope); CallGraph CG = builder.makeCallGraph(options); return Pair.make(CG, builder.getPointerAnalysis()); } diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/AliasingTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/AliasingTest.java index 6cb173695..bac1be081 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/AliasingTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/AliasingTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class AliasingTest extends DroidBenchCGTest { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/AndroidSpecificTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/AndroidSpecificTest.java index 24a85c96c..7a29da82e 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/AndroidSpecificTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/AndroidSpecificTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class AndroidSpecificTest extends DroidBenchCGTest { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/CallbacksTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/CallbacksTest.java index 4a365647f..aea38dca3 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/CallbacksTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/CallbacksTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class CallbacksTest extends DroidBenchCGTest { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/EmulatorDetectionTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/EmulatorDetectionTest.java index ef801f142..96d1ee89b 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/EmulatorDetectionTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/EmulatorDetectionTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class EmulatorDetectionTest extends DroidBenchCGTest { public EmulatorDetectionTest(URI[] androidLibs, File androidJavaJar, String apkFile, Set uncalled) { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/FieldAndObjectSensitivityTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/FieldAndObjectSensitivityTest.java index 14805b615..27cc1aecb 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/FieldAndObjectSensitivityTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/FieldAndObjectSensitivityTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class FieldAndObjectSensitivityTest extends DroidBenchCGTest { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/GeneralJavaTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/GeneralJavaTest.java index bceef8004..efeb87035 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/GeneralJavaTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/GeneralJavaTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class GeneralJavaTest extends DroidBenchCGTest { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ImplicitFlowsTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ImplicitFlowsTest.java index bb3915aec..262c22aeb 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ImplicitFlowsTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ImplicitFlowsTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class ImplicitFlowsTest extends DroidBenchCGTest { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/InterAppCommunicationTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/InterAppCommunicationTest.java index 6beff64f3..a17633ba5 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/InterAppCommunicationTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/InterAppCommunicationTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class InterAppCommunicationTest extends DroidBenchCGTest { public InterAppCommunicationTest(URI[] androidLibs, File androidJavaJar, String apkFile, Set uncalled) { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/InterComponentCommunicationTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/InterComponentCommunicationTest.java index 35c3e3cb9..43f54d23f 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/InterComponentCommunicationTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/InterComponentCommunicationTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class InterComponentCommunicationTest extends DroidBenchCGTest { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/LifecycleTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/LifecycleTest.java index a8b1aab56..860768ad3 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/LifecycleTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/LifecycleTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class LifecycleTest extends DroidBenchCGTest { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ReflectionTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ReflectionTest.java index 31fba772f..870ad5968 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ReflectionTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ReflectionTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class ReflectionTest extends DroidBenchCGTest { diff --git a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ThreadingTest.java b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ThreadingTest.java index 7b1e86080..e15f7e8c1 100644 --- a/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ThreadingTest.java +++ b/com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/droidbench/ThreadingTest.java @@ -1,5 +1,7 @@ package com.ibm.wala.dalvik.test.callGraph.droidbench; +import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; + import java.io.File; import java.io.IOException; import java.net.URI; @@ -13,8 +15,6 @@ import org.junit.runners.Parameterized.Parameters; import com.ibm.wala.dalvik.test.callGraph.DroidBenchCGTest; import com.ibm.wala.types.MethodReference; -import static com.ibm.wala.dalvik.test.util.Util.androidJavaLib; - @RunWith(Parameterized.class) public class ThreadingTest extends DroidBenchCGTest { diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModel.java index 3a2574742..df319c916 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/AndroidModel.java @@ -46,7 +46,6 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.logging.Logger; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; @@ -68,10 +67,10 @@ import com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa.IntentStarters.StarterF import com.ibm.wala.dalvik.util.AndroidComponent; import com.ibm.wala.dalvik.util.AndroidEntryPointManager; import com.ibm.wala.dalvik.util.AndroidTypes; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.cha.IClassHierarchyDweller; import com.ibm.wala.ipa.summaries.MethodSummary; @@ -130,7 +129,7 @@ public class AndroidModel /* makes SummarizedMethod */ protected IClassHierarchy cha; protected AnalysisOptions options; - protected AnalysisCache cache; + protected IAnalysisCacheView cache; private AbstractAndroidModel labelSpecial; private IInstantiationBehavior instanceBehavior; private SSAValueManager paramManager; @@ -153,7 +152,7 @@ public class AndroidModel /* makes SummarizedMethod */ protected boolean built; protected SummarizedMethod model; - public AndroidModel(final IClassHierarchy cha, final AnalysisOptions options, final AnalysisCache cache) { + public AndroidModel(final IClassHierarchy cha, final AnalysisOptions options, final IAnalysisCacheView cache) { this.options = options; this.cha = cha; this.cache = cache; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/IntentModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/IntentModel.java index d9eba0612..2636594cd 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/IntentModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/IntentModel.java @@ -40,12 +40,10 @@ */ package com.ibm.wala.dalvik.ipa.callgraph.androidModel; -import java.util.logging.Logger; - import com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint; import com.ibm.wala.dalvik.util.AndroidComponent; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.summaries.SummarizedMethod; import com.ibm.wala.util.CancelException; @@ -71,7 +69,7 @@ public class IntentModel extends AndroidModel { ep.belongsTo(AndroidComponent.PROVIDER); } - public IntentModel(final IClassHierarchy cha, final AnalysisOptions options, final AnalysisCache cache, Atom target) { + public IntentModel(final IClassHierarchy cha, final AnalysisOptions options, final IAnalysisCacheView cache, Atom target) { super(cha, options, cache); this.target = target; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MicroModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MicroModel.java index 7862c12ef..758587289 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MicroModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MicroModel.java @@ -40,11 +40,9 @@ */ package com.ibm.wala.dalvik.ipa.callgraph.androidModel; -import java.util.logging.Logger; - import com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.summaries.SummarizedMethod; import com.ibm.wala.util.CancelException; @@ -70,7 +68,7 @@ public class MicroModel extends AndroidModel { return ep.isMemberOf(this.target); } - public MicroModel(final IClassHierarchy cha, final AnalysisOptions options, final AnalysisCache cache, Atom target) { + public MicroModel(final IClassHierarchy cha, final AnalysisOptions options, final IAnalysisCacheView cache, Atom target) { super(cha, options, cache); this.target = target; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MiniModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MiniModel.java index 985d971fe..c0b7dbb49 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MiniModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/MiniModel.java @@ -40,12 +40,10 @@ */ package com.ibm.wala.dalvik.ipa.callgraph.androidModel; -import java.util.logging.Logger; - import com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint; import com.ibm.wala.dalvik.util.AndroidComponent; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.summaries.SummarizedMethod; import com.ibm.wala.types.Descriptor; @@ -93,7 +91,7 @@ public class MiniModel extends AndroidModel { return descr; } - public MiniModel(final IClassHierarchy cha, final AnalysisOptions options, final AnalysisCache cache, + public MiniModel(final IClassHierarchy cha, final AnalysisOptions options, final IAnalysisCacheView cache, final AndroidComponent forCompo) throws CancelException { super(cha, options, cache); diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/AndroidModelParameterManager.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/AndroidModelParameterManager.java index eca3f1f06..06c572d6c 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/AndroidModelParameterManager.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/AndroidModelParameterManager.java @@ -44,7 +44,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.logging.Logger; import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.types.MethodReference; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java index df3b7592e..e798beb6a 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java @@ -44,7 +44,6 @@ import java.io.IOException; import java.io.Serializable; import java.util.HashMap; import java.util.Map; -import java.util.logging.Logger; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IClassLoader; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/ReuseParameters.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/ReuseParameters.java index 556b94c42..47bd9217a 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/ReuseParameters.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/ReuseParameters.java @@ -42,7 +42,6 @@ package com.ibm.wala.dalvik.ipa.callgraph.androidModel.parameters; import java.util.ArrayList; import java.util.List; -import java.util.logging.Logger; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.dalvik.ipa.callgraph.androidModel.AndroidModel; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/SpecializedInstantiator.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/SpecializedInstantiator.java index 860c2087e..ba6df272e 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/SpecializedInstantiator.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/SpecializedInstantiator.java @@ -44,7 +44,6 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.logging.Logger; import com.ibm.wala.classLoader.IField; import com.ibm.wala.dalvik.ipa.callgraph.androidModel.AndroidModelClass; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidStartComponentTool.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidStartComponentTool.java index 30f3b6ce6..7d244e3d0 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidStartComponentTool.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/AndroidStartComponentTool.java @@ -43,7 +43,6 @@ package com.ibm.wala.dalvik.ipa.callgraph.androidModel.stubs; import java.util.ArrayList; import java.util.List; import java.util.Set; -import java.util.logging.Logger; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/ExternalModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/ExternalModel.java index 03a4d4b1c..061df7eb7 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/ExternalModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/ExternalModel.java @@ -43,7 +43,6 @@ package com.ibm.wala.dalvik.ipa.callgraph.androidModel.stubs; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.logging.Logger; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; @@ -52,8 +51,8 @@ import com.ibm.wala.dalvik.ipa.callgraph.androidModel.AndroidModelClass; import com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint; import com.ibm.wala.dalvik.util.AndroidComponent; import com.ibm.wala.dalvik.util.AndroidTypes; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.summaries.MethodSummary; import com.ibm.wala.ipa.summaries.SummarizedMethod; @@ -99,7 +98,7 @@ public class ExternalModel extends AndroidModel { return false; } - public ExternalModel(final IClassHierarchy cha, final AnalysisOptions options, final AnalysisCache cache, + public ExternalModel(final IClassHierarchy cha, final AnalysisOptions options, final IAnalysisCacheView cache, AndroidComponent target) { super(cha, options, cache); diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/Overrides.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/Overrides.java index 02faae9a4..acc89e43d 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/Overrides.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/Overrides.java @@ -44,7 +44,6 @@ import java.util.EnumMap; import java.util.HashMap; import java.util.Map; import java.util.Set; -import java.util.logging.Logger; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; @@ -53,11 +52,10 @@ import com.ibm.wala.dalvik.ipa.callgraph.androidModel.AndroidModel; import com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa.IntentStarters; import com.ibm.wala.dalvik.util.AndroidComponent; import com.ibm.wala.dalvik.util.AndroidEntryPointManager; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; -import com.ibm.wala.ipa.callgraph.ContextKey; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.MethodTargetSelector; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.summaries.SummarizedMethod; @@ -85,9 +83,9 @@ public class Overrides { private final AndroidModel caller; private final IClassHierarchy cha; private final AnalysisOptions options; - private final AnalysisCache cache; + private final IAnalysisCacheView cache; - public Overrides(AndroidModel caller, IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public Overrides(AndroidModel caller, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { this.caller = caller; this.cha = cha; this.options = options; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/SystemServiceModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/SystemServiceModel.java index d1b877925..27ea1f400 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/SystemServiceModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/SystemServiceModel.java @@ -42,7 +42,6 @@ package com.ibm.wala.dalvik.ipa.callgraph.androidModel.stubs; import java.util.Collection; import java.util.HashSet; -import java.util.logging.Logger; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.dalvik.ipa.callgraph.androidModel.AndroidModel; @@ -50,8 +49,8 @@ import com.ibm.wala.dalvik.ipa.callgraph.androidModel.AndroidModelClass; import com.ibm.wala.dalvik.ipa.callgraph.androidModel.parameters.Instantiator; import com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint; import com.ibm.wala.dalvik.util.AndroidTypes; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.summaries.MethodSummary; import com.ibm.wala.ipa.summaries.SummarizedMethod; @@ -97,7 +96,7 @@ public class SystemServiceModel extends AndroidModel { return false; } - public SystemServiceModel(final IClassHierarchy cha, final AnalysisOptions options, final AnalysisCache cache, + public SystemServiceModel(final IClassHierarchy cha, final AnalysisOptions options, final IAnalysisCacheView cache, Atom target) { super(cha, options, cache); diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/UnknownTargetModel.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/UnknownTargetModel.java index b9c3c6bea..ccd9bb3a6 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/UnknownTargetModel.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/stubs/UnknownTargetModel.java @@ -45,7 +45,6 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.logging.Logger; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; @@ -57,8 +56,8 @@ import com.ibm.wala.dalvik.ipa.callgraph.androidModel.parameters.Instantiator; import com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint; import com.ibm.wala.dalvik.util.AndroidComponent; import com.ibm.wala.dalvik.util.AndroidEntryPointManager; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.ipa.summaries.MethodSummary; import com.ibm.wala.ipa.summaries.SummarizedMethod; @@ -109,7 +108,7 @@ public class UnknownTargetModel extends AndroidModel { /** * @param target Component Type, may be null: No restrictions are imposed on AndroidModel then */ - public UnknownTargetModel(final IClassHierarchy cha, final AnalysisOptions options, final AnalysisCache cache, + public UnknownTargetModel(final IClassHierarchy cha, final AnalysisOptions options, final IAnalysisCacheView cache, AndroidComponent target) throws CancelException { super(cha, options, cache); diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexEntryPoint.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexEntryPoint.java index e297453a4..e0f9d3a65 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexEntryPoint.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexEntryPoint.java @@ -46,8 +46,6 @@ */ package com.ibm.wala.dalvik.ipa.callgraph.impl; -import java.util.logging.Logger; - import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ipa.callgraph.impl.DefaultEntrypoint; import com.ibm.wala.ipa.cha.IClassHierarchy; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexExplicitCallGraph.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexExplicitCallGraph.java index 217fc2bd1..f1cf2f447 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexExplicitCallGraph.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexExplicitCallGraph.java @@ -46,9 +46,9 @@ */ package com.ibm.wala.dalvik.ipa.callgraph.impl; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -61,7 +61,7 @@ import com.ibm.wala.util.CancelException; public class DexExplicitCallGraph extends ExplicitCallGraph { public DexExplicitCallGraph(IClassHierarchy cha, AnalysisOptions options, - AnalysisCache cache) { + IAnalysisCacheView cache) { super(cha, options, cache); } diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java index 6d789aacc..d7671afbc 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java @@ -56,8 +56,8 @@ import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.classLoader.NewSiteReference; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod; import com.ibm.wala.ipa.callgraph.impl.Everywhere; import com.ibm.wala.ipa.callgraph.impl.FakeRootClass; @@ -91,7 +91,7 @@ public class DexFakeRootMethod extends AbstractRootMethod { // public static Set referenceTypeSet = new HashSet(); - public DexFakeRootMethod(final IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) { + public DexFakeRootMethod(final IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) { super(rootMethod, cha, options, cache); } diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/Intent.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/Intent.java index ab0fc02d7..2f06fec0c 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/Intent.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/Intent.java @@ -40,8 +40,6 @@ */ package com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa; -import java.util.logging.Logger; - import com.ibm.wala.dalvik.util.AndroidComponent; import com.ibm.wala.dalvik.util.AndroidEntryPointManager; import com.ibm.wala.ipa.callgraph.ContextItem; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextInterpreter.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextInterpreter.java index 22d28e707..88ad0aacb 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextInterpreter.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextInterpreter.java @@ -43,7 +43,6 @@ package com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa; import java.util.EnumSet; import java.util.Iterator; import java.util.Set; -import java.util.logging.Logger; import com.ibm.wala.cfg.ControlFlowGraph; import com.ibm.wala.classLoader.CallSiteReference; @@ -58,11 +57,11 @@ import com.ibm.wala.dalvik.ipa.callgraph.androidModel.stubs.SystemServiceModel; import com.ibm.wala.dalvik.ipa.callgraph.androidModel.stubs.UnknownTargetModel; import com.ibm.wala.dalvik.util.AndroidComponent; import com.ibm.wala.dalvik.util.AndroidEntryPointManager; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.CGNode; import com.ibm.wala.ipa.callgraph.Context; import com.ibm.wala.ipa.callgraph.ContextKey; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.AbstractTypeInNode; import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -98,9 +97,9 @@ public class IntentContextInterpreter implements SSAContextInterpreter { private final IntentStarters intentStarters; private final IClassHierarchy cha; private final AnalysisOptions options; - private final AnalysisCache cache; + private final IAnalysisCacheView cache; - public IntentContextInterpreter(IClassHierarchy cha, final AnalysisOptions options, final AnalysisCache cache) { + public IntentContextInterpreter(IClassHierarchy cha, final AnalysisOptions options, final IAnalysisCacheView cache) { this.cha = cha; this.options = options; this.cache = cache; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextSelector.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextSelector.java index 3f621b720..acff93a7b 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextSelector.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentContextSelector.java @@ -40,54 +40,29 @@ */ package com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa; -import com.ibm.wala.ipa.callgraph.ContextSelector; - -import com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa.Intent; -import com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa.IntentMap; -import com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa.IntentContext; -import com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa.AndroidContext; -import com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa.IntentContextInterpreter; - -import com.ibm.wala.classLoader.CallSiteReference; -import com.ibm.wala.classLoader.IClass; -import com.ibm.wala.ipa.cha.IClassHierarchy; -import com.ibm.wala.classLoader.IMethod; -import com.ibm.wala.types.Selector; -import com.ibm.wala.ipa.callgraph.CGNode; -import com.ibm.wala.ipa.callgraph.Context; -import com.ibm.wala.ipa.callgraph.propagation.ConstantKey; -import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; - -import com.ibm.wala.types.MethodReference; -import com.ibm.wala.types.TypeReference; -import com.ibm.wala.ipa.callgraph.propagation.NormalAllocationInNode; -import com.ibm.wala.ipa.callgraph.propagation.AbstractTypeInNode; -import com.ibm.wala.ssa.SSAInstruction; -import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; - -import com.ibm.wala.util.strings.Atom; -import com.ibm.wala.dalvik.util.AndroidTypes; -import com.ibm.wala.util.intset.EmptyIntSet; -import com.ibm.wala.util.intset.IntSet; -import com.ibm.wala.util.intset.BimodalMutableIntSet; -import com.ibm.wala.util.intset.IntSetUtil; -import com.ibm.wala.ssa.SymbolTable; -import com.ibm.wala.util.collections.HashMapFactory; - -import com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa.IntentStarters; -import com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa.IntentStarters.StartInfo; - -import com.ibm.wala.dalvik.util.AndroidEntryPointManager; - -import com.ibm.wala.util.strings.StringStuff; -import java.util.Iterator; import java.util.Map; -import java.util.HashMap; -import com.ibm.wala.util.collections.Pair; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.ibm.wala.classLoader.CallSiteReference; +import com.ibm.wala.classLoader.IMethod; +import com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa.IntentStarters.StartInfo; +import com.ibm.wala.dalvik.util.AndroidEntryPointManager; +import com.ibm.wala.dalvik.util.AndroidTypes; +import com.ibm.wala.ipa.callgraph.CGNode; +import com.ibm.wala.ipa.callgraph.Context; +import com.ibm.wala.ipa.callgraph.ContextSelector; +import com.ibm.wala.ipa.callgraph.propagation.ConstantKey; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.cha.IClassHierarchy; +import com.ibm.wala.types.MethodReference; +import com.ibm.wala.types.Selector; +import com.ibm.wala.util.collections.HashMapFactory; +import com.ibm.wala.util.intset.EmptyIntSet; +import com.ibm.wala.util.intset.IntSet; +import com.ibm.wala.util.intset.IntSetUtil; + /** * Adds Intents to the Context of functions that start Android-Components. * diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentMap.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentMap.java index 374243e4f..8980e0553 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentMap.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/propagation/cfa/IntentMap.java @@ -42,7 +42,6 @@ package com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa; import java.util.HashMap; import java.util.Map; -import java.util.logging.Logger; import com.ibm.wala.classLoader.IClass; import com.ibm.wala.ipa.callgraph.propagation.ConstantKey; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java index dc690ccfb..6f97c344e 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java @@ -12,7 +12,6 @@ package com.ibm.wala.dalvik.ssa; import java.util.Iterator; -import java.util.logging.Logger; import com.ibm.wala.dalvik.classLoader.DexCFG; import com.ibm.wala.dalvik.classLoader.DexCFG.BasicBlock; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java index b0ca6a3bb..31eee7f92 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java @@ -13,7 +13,6 @@ package com.ibm.wala.dalvik.ssa; import java.nio.ByteBuffer; import java.util.Iterator; -import java.util.logging.Logger; import org.jf.dexlib.Code.Format.ArrayDataPseudoInstruction.ArrayElement; diff --git a/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/cast/java/test/JDTJavaTest.java b/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/cast/java/test/JDTJavaTest.java index 0755b68d0..fd4e6ef4f 100644 --- a/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/cast/java/test/JDTJavaTest.java +++ b/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/cast/java/test/JDTJavaTest.java @@ -15,8 +15,6 @@ import java.io.IOException; import java.util.Collection; import java.util.List; -import junit.framework.Assert; - import org.eclipse.core.runtime.CoreException; import com.ibm.wala.cast.java.client.JDTJavaSourceAnalysisEngine; @@ -30,6 +28,8 @@ import com.ibm.wala.ipa.callgraph.impl.Util; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.util.io.TemporaryFile; +import junit.framework.Assert; + public abstract class JDTJavaTest extends IRTests { static { @@ -81,4 +81,4 @@ public abstract class JDTJavaTest extends IRTests { } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/cast/java/test/TypeInferenceAssertion.java b/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/cast/java/test/TypeInferenceAssertion.java index 8b5398f50..ab547111f 100644 --- a/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/cast/java/test/TypeInferenceAssertion.java +++ b/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/cast/java/test/TypeInferenceAssertion.java @@ -62,4 +62,4 @@ final class TypeInferenceAssertion implements IRAssertion { return node.getIR(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/demandpa/driver/DemandCastChecker.java b/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/demandpa/driver/DemandCastChecker.java index a71e1fbc3..9dbd82fe8 100644 --- a/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/demandpa/driver/DemandCastChecker.java +++ b/com.ibm.wala.ide.jdt.test/source/com/ibm/wala/demandpa/driver/DemandCastChecker.java @@ -62,6 +62,7 @@ import com.ibm.wala.demandpa.flowgraph.IFlowLabel; import com.ibm.wala.demandpa.util.MemoryAccessMap; import com.ibm.wala.demandpa.util.SimpleMemoryAccessMap; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -185,7 +186,7 @@ public class DemandCastChecker { throws IllegalArgumentException, CancelException { CallGraph retCG = null; PointerAnalysis retPA = null; - final AnalysisCache cache = new AnalysisCache(); + final AnalysisCache cache = new AnalysisCacheImpl(); CallGraphBuilder builder; if (CHEAP_CG) { builder = Util.makeZeroCFABuilder(options, cache, cha, scope); diff --git a/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java b/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java index 2e6d54502..7824337e0 100644 --- a/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java +++ b/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/client/JDTJavaSourceAnalysisEngine.java @@ -54,9 +54,11 @@ import com.ibm.wala.ide.util.EclipseProjectPath.AnalysisScopeType; import com.ibm.wala.ide.util.JavaEclipseProjectPath; import com.ibm.wala.ide.util.JdtUtil; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.types.ClassLoaderReference; @@ -93,8 +95,8 @@ public class JDTJavaSourceAnalysisEngine extends EclipseP } @Override - public AnalysisCache makeDefaultCache() { - return new AnalysisCache(AstIRFactory.makeDefaultFactory()); + public IAnalysisCacheView makeDefaultCache() { + return new AnalysisCacheImpl(AstIRFactory.makeDefaultFactory()); } @Override @@ -106,7 +108,7 @@ public class JDTJavaSourceAnalysisEngine extends EclipseP @Override protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, - AnalysisOptions options, AnalysisCache cache) { + AnalysisOptions options, IAnalysisCacheView cache) { return new ZeroCFABuilderFactory().make(options, cache, cha, scope, false); } diff --git a/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/translator/jdt/JDTSourceModuleTranslator.java b/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/translator/jdt/JDTSourceModuleTranslator.java index 31f995d94..eb60217ae 100644 --- a/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/translator/jdt/JDTSourceModuleTranslator.java +++ b/com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/translator/jdt/JDTSourceModuleTranslator.java @@ -58,7 +58,6 @@ import org.eclipse.jdt.core.dom.CompilationUnit; import com.ibm.wala.cast.java.translator.Java2IRTranslator; import com.ibm.wala.cast.java.translator.SourceModuleTranslator; -import com.ibm.wala.cast.java.translator.jdt.JDTJava2CAstTranslator; import com.ibm.wala.classLoader.DirectoryTreeModule; import com.ibm.wala.classLoader.JarFileModule; import com.ibm.wala.classLoader.Module; diff --git a/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java b/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java index 0958b4892..1d8812bc7 100644 --- a/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java +++ b/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java @@ -14,7 +14,6 @@ import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.List; -import java.util.jar.JarFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; @@ -23,14 +22,10 @@ import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.internal.launching.JREContainer; -import org.eclipse.jdt.launching.JavaRuntime; import com.ibm.wala.cast.java.ipa.callgraph.JavaSourceAnalysisScope; import com.ibm.wala.classLoader.BinaryDirectoryTreeModule; -import com.ibm.wala.classLoader.JarFileModule; import com.ibm.wala.classLoader.Module; -import com.ibm.wala.properties.WalaProperties; import com.ibm.wala.types.ClassLoaderReference; import com.ibm.wala.util.collections.MapUtil; import com.ibm.wala.util.debug.Assertions; diff --git a/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JdtPosition.java b/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JdtPosition.java index 3402a9f43..216b2566b 100644 --- a/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JdtPosition.java +++ b/com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JdtPosition.java @@ -124,4 +124,4 @@ public final class JdtPosition implements Position { return firstOffset + 12432*lastOffset; } - } \ No newline at end of file + } diff --git a/com.ibm.wala.ide.jsdt.tests/launchers/com.ibm.wala.ide.jsdt.tests.launch b/com.ibm.wala.ide.jsdt.tests/launchers/com.ibm.wala.ide.jsdt.tests.launch index 6b196b84a..99a88826e 100644 --- a/com.ibm.wala.ide.jsdt.tests/launchers/com.ibm.wala.ide.jsdt.tests.launch +++ b/com.ibm.wala.ide.jsdt.tests/launchers/com.ibm.wala.ide.jsdt.tests.launch @@ -15,7 +15,7 @@ - + @@ -65,8 +65,8 @@ - - + + diff --git a/com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/AbstractJSProjectScopeTest.java b/com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/AbstractJSProjectScopeTest.java index 62dc0c78c..33a96f019 100644 --- a/com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/AbstractJSProjectScopeTest.java +++ b/com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/AbstractJSProjectScopeTest.java @@ -95,4 +95,4 @@ public abstract class AbstractJSProjectScopeTest { return new EclipseJavaScriptAnalysisEngine(p, BuilderType.REFLECTIVE); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java index 7ff8e7fe4..5a53551cf 100644 --- a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java +++ b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java @@ -43,10 +43,12 @@ import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ide.client.EclipseProjectSourceAnalysisEngine; import com.ibm.wala.ide.util.JavaScriptEclipseProjectPath; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; import com.ibm.wala.ipa.cha.IClassHierarchy; @@ -107,13 +109,13 @@ public class EclipseJavaScriptAnalysisEngine extends Ecli } @Override - public AnalysisCache makeDefaultCache() { - return new AnalysisCache(AstIRFactory.makeDefaultFactory()); + public IAnalysisCacheView makeDefaultCache() { + return new AnalysisCacheImpl(AstIRFactory.makeDefaultFactory()); } @Override protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, - AnalysisOptions options, AnalysisCache cache) { + AnalysisOptions options, IAnalysisCacheView cache) { return new ZeroCFABuilderFactory().make((JSAnalysisOptions)options, cache, cha, scope, false); } diff --git a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/ide/util/JavaScriptEclipseProjectPath.java b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/ide/util/JavaScriptEclipseProjectPath.java index cf5d73ef1..cd8bd6dc3 100644 --- a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/ide/util/JavaScriptEclipseProjectPath.java +++ b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/ide/util/JavaScriptEclipseProjectPath.java @@ -24,9 +24,9 @@ import org.eclipse.wst.jsdt.core.IJavaScriptProject; import org.eclipse.wst.jsdt.core.JavaScriptCore; import org.eclipse.wst.jsdt.core.JavaScriptModelException; +import com.ibm.wala.cast.js.ipa.callgraph.JSCallGraphUtil; import com.ibm.wala.cast.js.types.JavaScriptTypes; import com.ibm.wala.classLoader.Module; -import com.ibm.wala.classLoader.SourceURLModule; import com.ibm.wala.ide.jsdt.Activator; import com.ibm.wala.types.ClassLoaderReference; import com.ibm.wala.util.collections.HashSetFactory; @@ -73,12 +73,7 @@ public class JavaScriptEclipseProjectPath extends EclipseProjectPath model : models) { URL modelFile = JsdtUtil.getPrologueFile(model.fst, model.snd); assert modelFile != null : "cannot find file for " + model; - s.add(new SourceURLModule(modelFile) { - @Override - public String getName() { - return super.getName().substring(1); - } - }); + s.add(new JSCallGraphUtil.Bootstrap(model.fst, modelFile.openStream(), modelFile)); } return path; diff --git a/com.ibm.wala.ide.tests/launchers/IFDSExplorerExample.launch b/com.ibm.wala.ide.tests/launchers/IFDSExplorerExample.launch index 03dde8460..f31007ee9 100644 --- a/com.ibm.wala.ide.tests/launchers/IFDSExplorerExample.launch +++ b/com.ibm.wala.ide.tests/launchers/IFDSExplorerExample.launch @@ -6,6 +6,7 @@ + diff --git a/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/IFDSExplorerExample.java b/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/IFDSExplorerExample.java index b80f83698..c8363421d 100644 --- a/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/IFDSExplorerExample.java +++ b/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/IFDSExplorerExample.java @@ -19,6 +19,7 @@ import com.ibm.wala.dataflow.IFDS.TabulationResult; import com.ibm.wala.examples.analysis.dataflow.ContextSensitiveReachingDefs; import com.ibm.wala.ide.ui.IFDSExplorer; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -58,7 +59,7 @@ public class IFDSExplorerExample { Iterable entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, "Ldataflow/StaticDataflow"); AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints); - AnalysisCache cache = new AnalysisCache(); + AnalysisCache cache = new AnalysisCacheImpl(); CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, cache, cha, scope); System.out.println("building CG"); CallGraph cg = builder.makeCallGraph(options, null); diff --git a/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTCallGraph.java b/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTCallGraph.java index d86d6520c..d3976e5c5 100644 --- a/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTCallGraph.java +++ b/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTCallGraph.java @@ -20,7 +20,7 @@ import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.examples.properties.WalaExamplesProperties; import com.ibm.wala.ide.ui.SWTTreeViewer; import com.ibm.wala.ide.ui.ViewIRAction; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisOptions.ReflectionOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; @@ -116,7 +116,7 @@ public class SWTCallGraph { // // // build the call graph // // - com.ibm.wala.ipa.callgraph.CallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCache(), cha, scope, null, + com.ibm.wala.ipa.callgraph.CallGraphBuilder builder = Util.makeZeroCFABuilder(options, new AnalysisCacheImpl(), cha, scope, null, null); CallGraph cg = builder.makeCallGraph(options,null); diff --git a/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTPointsTo.java b/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTPointsTo.java index c09fa6457..353e3073f 100644 --- a/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTPointsTo.java +++ b/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTPointsTo.java @@ -18,7 +18,7 @@ import org.eclipse.jface.window.ApplicationWindow; import com.ibm.wala.analysis.pointers.BasicHeapGraph; import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; import com.ibm.wala.ide.ui.SWTTreeViewer; -import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraph; @@ -92,7 +92,7 @@ public class SWTPointsTo { // // // build the call graph // // - com.ibm.wala.ipa.callgraph.CallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCache(),cha, scope, null, null); + com.ibm.wala.ipa.callgraph.CallGraphBuilder builder = Util.makeVanillaZeroOneCFABuilder(options, new AnalysisCacheImpl(),cha, scope, null, null); CallGraph cg = builder.makeCallGraph(options,null); PointerAnalysis pointerAnalysis = builder.getPointerAnalysis(); @@ -100,4 +100,4 @@ public class SWTPointsTo { return new BasicHeapGraph(pointerAnalysis, cg); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTTypeHierarchy.java b/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTTypeHierarchy.java index 5e8e712eb..e77d99c23 100644 --- a/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTTypeHierarchy.java +++ b/com.ibm.wala.ide.tests/src/com/ibm/wala/examples/drivers/SWTTypeHierarchy.java @@ -23,9 +23,9 @@ import com.ibm.wala.ipa.cha.ClassHierarchy; import com.ibm.wala.ipa.cha.ClassHierarchyFactory; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.types.ClassLoaderReference; +import com.ibm.wala.util.Predicate; import com.ibm.wala.util.WalaException; import com.ibm.wala.util.collections.CollectionFilter; -import com.ibm.wala.util.Predicate; import com.ibm.wala.util.config.AnalysisScopeReader; import com.ibm.wala.util.graph.Graph; import com.ibm.wala.util.graph.GraphSlicer; @@ -138,4 +138,4 @@ public class SWTTypeHierarchy { throw new UnsupportedOperationException("invalid command-line, args[0] should be -classpath, but is " + args[0]); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectAnalysisEngine.java b/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectAnalysisEngine.java index b1025b2ce..5fedb3c8c 100644 --- a/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectAnalysisEngine.java +++ b/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectAnalysisEngine.java @@ -25,6 +25,7 @@ import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.util.config.FileOfClasses; @@ -49,7 +50,7 @@ abstract public class EclipseProjectAnalysisEngine ext abstract protected EclipseProjectPath createProjectPath(P project) throws IOException, CoreException; @Override - abstract protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache); + abstract protected CallGraphBuilder getCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache); abstract protected AnalysisScope makeAnalysisScope(); diff --git a/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectSourceAnalysisEngine.java b/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectSourceAnalysisEngine.java index 88c3cc3fd..9282db90c 100644 --- a/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectSourceAnalysisEngine.java +++ b/com.ibm.wala.ide/src/com/ibm/wala/ide/client/EclipseProjectSourceAnalysisEngine.java @@ -16,9 +16,9 @@ import org.eclipse.core.runtime.CoreException; import com.ibm.wala.ide.plugin.CorePlugin; import com.ibm.wala.ide.util.EclipseFileProvider; -import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.IAnalysisCacheView; import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import com.ibm.wala.ssa.SSAOptions; import com.ibm.wala.ssa.SymbolTable; @@ -63,7 +63,7 @@ abstract public class EclipseProjectSourceAnalysisEngine extends Action { protected String getPsFile() { return pdfFile; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.ide/src/com/ibm/wala/ide/ui/ViewIRAction.java b/com.ibm.wala.ide/src/com/ibm/wala/ide/ui/ViewIRAction.java index e4f0cc21d..e4356b2b0 100644 --- a/com.ibm.wala.ide/src/com/ibm/wala/ide/ui/ViewIRAction.java +++ b/com.ibm.wala.ide/src/com/ibm/wala/ide/ui/ViewIRAction.java @@ -135,4 +135,4 @@ public class ViewIRAction extends Action { protected String getPsFile() { return psFile; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/LocalSinkPoint.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/LocalSinkPoint.java index e09c1ca05..6d68b29b3 100644 --- a/com.ibm.wala.scandroid/source/org/scandroid/flow/LocalSinkPoint.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/LocalSinkPoint.java @@ -156,4 +156,4 @@ public class LocalSinkPoint implements ISinkPoint { + ", sinkFlow=" + sinkFlow + "]"; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallNoneToReturnFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallNoneToReturnFunction.java index 984b5b5da..1d748a12b 100644 --- a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallNoneToReturnFunction.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/CallNoneToReturnFunction.java @@ -91,4 +91,4 @@ public final class CallNoneToReturnFunction implement } return set; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/PairBasedFlowFunction.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/PairBasedFlowFunction.java index f1874d206..09ad3914d 100644 --- a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/PairBasedFlowFunction.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/PairBasedFlowFunction.java @@ -124,4 +124,4 @@ final class PairBasedFlowFunction implements IUnaryFl // logger.debug("getTargets("+d+"): "+set); return set; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/UseDefPair.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/UseDefPair.java index 466f72c90..c607251e2 100644 --- a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/UseDefPair.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/UseDefPair.java @@ -67,4 +67,4 @@ final class UseDefPair return "UseDefPair [use=" + use + ", def=" + def + "]"; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.scandroid/source/org/scandroid/spec/FieldNamePattern.java b/com.ibm.wala.scandroid/source/org/scandroid/spec/FieldNamePattern.java index 813cef3c0..d7320e8ea 100644 --- a/com.ibm.wala.scandroid/source/org/scandroid/spec/FieldNamePattern.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/spec/FieldNamePattern.java @@ -49,9 +49,10 @@ package org.scandroid.spec; import java.util.Collection; import java.util.LinkedList; -import com.ibm.wala.classLoader.IField; + import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IClassLoader; +import com.ibm.wala.classLoader.IField; import com.ibm.wala.types.TypeName; import com.ibm.wala.util.strings.Atom; diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/CGAnalysisContext.java b/com.ibm.wala.scandroid/source/org/scandroid/util/CGAnalysisContext.java index 4665d8534..2a342ed45 100644 --- a/com.ibm.wala.scandroid/source/org/scandroid/util/CGAnalysisContext.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/CGAnalysisContext.java @@ -71,6 +71,7 @@ import com.ibm.wala.dalvik.classLoader.DexIRFactory; import com.ibm.wala.dataflow.IFDS.ICFGSupergraph; import com.ibm.wala.dataflow.IFDS.ISupergraph; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; import com.ibm.wala.ipa.callgraph.CGNode; @@ -144,7 +145,7 @@ public class CGAnalysisContext { } analysisOptions.setReflectionOptions(options.getReflectionOptions()); - AnalysisCache cache = new AnalysisCache((IRFactory) new DexIRFactory()); + AnalysisCache cache = new AnalysisCacheImpl((IRFactory) new DexIRFactory()); SSAPropagationCallGraphBuilder cgb; diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/IEntryPointSpecifier.java b/com.ibm.wala.scandroid/source/org/scandroid/util/IEntryPointSpecifier.java index 56be2e4ce..cd9bd41b0 100644 --- a/com.ibm.wala.scandroid/source/org/scandroid/util/IEntryPointSpecifier.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/IEntryPointSpecifier.java @@ -50,7 +50,6 @@ package org.scandroid.util; import java.util.List; - import com.ibm.wala.ipa.callgraph.Entrypoint; public interface IEntryPointSpecifier { diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/InterfaceAnalyzer.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/InterfaceAnalyzer.java index e1cc6edbe..3a60d8875 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/InterfaceAnalyzer.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/InterfaceAnalyzer.java @@ -120,4 +120,4 @@ public class InterfaceAnalyzer { } return c.substring(0, lastDot); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Mangler.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Mangler.java index 573493316..d62c81557 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Mangler.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Mangler.java @@ -211,4 +211,4 @@ public class Mangler { instrumenter.outputModifiedClass(ci, cw); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Slots.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Slots.java index 93f7039aa..f79582bcb 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Slots.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Slots.java @@ -17,4 +17,4 @@ public class Slots { public static Object o; public static int i; -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Statistics.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Statistics.java index 48392bc10..ebc05214a 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Statistics.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Statistics.java @@ -101,4 +101,4 @@ public class Statistics { w.write("Restricted Creation\n"); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/copywriter/CopyWriter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/copywriter/CopyWriter.java index 39f3c7379..0103bc02c 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrike/copywriter/CopyWriter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrike/copywriter/CopyWriter.java @@ -343,4 +343,4 @@ public class CopyWriter { instrumenter.outputModifiedClass(ci, w); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayLengthInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayLengthInstruction.java index 276dca550..8c9eeba57 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayLengthInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayLengthInstruction.java @@ -63,4 +63,4 @@ final public class ArrayLengthInstruction extends Instruction { public boolean isPEI() { return true; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayLoadInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayLoadInstruction.java index 9bd000b87..8c2cc5c22 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayLoadInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayLoadInstruction.java @@ -114,4 +114,4 @@ final public class ArrayLoadInstruction extends Instruction implements IArrayLoa return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayStoreInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayStoreInstruction.java index e91bda969..1101f4b31 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayStoreInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ArrayStoreInstruction.java @@ -76,4 +76,4 @@ final public class ArrayStoreInstruction extends Instruction implements IArraySt public boolean isPEI() { return true; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/BinaryOpInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/BinaryOpInstruction.java index c67fdba77..bcab033bc 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/BinaryOpInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/BinaryOpInstruction.java @@ -137,4 +137,4 @@ final public class BinaryOpInstruction extends Instruction implements IBinaryOpI public boolean isUnsigned() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/BytecodeConstants.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/BytecodeConstants.java index 0c33dcd69..ef665542b 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/BytecodeConstants.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/BytecodeConstants.java @@ -660,4 +660,4 @@ public interface BytecodeConstants { "invokeinterface", " xxxunusedxxx", "new", "newarray", "anewarray", "arraylength", "athrow", "checkcast", "instanceof", "monitorenter", "monitorexit", " wide", "multianewarray", "ifnull", "ifnonnull", "goto_w", "jsr_w", }; -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/CheckCastInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/CheckCastInstruction.java index 1e46b26e5..50f472e31 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/CheckCastInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/CheckCastInstruction.java @@ -88,4 +88,4 @@ final public class CheckCastInstruction extends Instruction implements ITypeTest public boolean firstClassTypes() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ComparisonInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ComparisonInstruction.java index a35585d56..58e703cf4 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ComparisonInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ComparisonInstruction.java @@ -130,4 +130,4 @@ final public class ComparisonInstruction extends Instruction implements ICompari public boolean isPEI() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Compiler.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Compiler.java index b9c04c44d..6b1c5ce59 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Compiler.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Compiler.java @@ -1865,4 +1865,4 @@ public abstract class Compiler implements Constants { return maxLocals; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConditionalBranchInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConditionalBranchInstruction.java index 0e4c3f33f..be035434e 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConditionalBranchInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConditionalBranchInstruction.java @@ -126,4 +126,4 @@ public final class ConditionalBranchInstruction extends Instruction implements I public boolean isPEI() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConstantPoolReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConstantPoolReader.java index b1b8a422b..cd26da317 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConstantPoolReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConstantPoolReader.java @@ -131,4 +131,4 @@ public abstract class ConstantPoolReader { public abstract String getConstantPoolDynamicType(int index); -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Constants.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Constants.java index 8c870c5a0..f86253dde 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Constants.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Constants.java @@ -581,4 +581,4 @@ public interface Constants { public static final int YES = 2; public static final int MAYBE = 3; -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConversionInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConversionInstruction.java index 4569f5fae..a009b467f 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConversionInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConversionInstruction.java @@ -127,4 +127,4 @@ public final class ConversionInstruction extends Instruction implements IConvers public boolean throwsExceptionOnOverflow() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Decoder.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Decoder.java index 92ed2e5a1..ecec598d7 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Decoder.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Decoder.java @@ -1101,4 +1101,4 @@ public abstract class Decoder implements Constants { } return instructionsToBytecodes; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Disassembler.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Disassembler.java index f247a5b34..5f8031759 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Disassembler.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Disassembler.java @@ -60,4 +60,4 @@ public class Disassembler { public void disassembleTo(Writer w) throws IOException { disassembleTo("", w); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/DupInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/DupInstruction.java index 19a5a18a1..ece21fbed 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/DupInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/DupInstruction.java @@ -109,4 +109,4 @@ public final class DupInstruction extends Instruction { public boolean isPEI() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ExceptionHandler.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ExceptionHandler.java index 071b8ef8b..86f8c4df8 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ExceptionHandler.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ExceptionHandler.java @@ -79,4 +79,4 @@ final public class ExceptionHandler { return false; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/GetInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/GetInstruction.java index 382b1fa96..f9cdbe6a1 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/GetInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/GetInstruction.java @@ -171,4 +171,4 @@ public class GetInstruction extends Instruction implements IGetInstruction { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/GotoInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/GotoInstruction.java index 187099de1..6c9f282c2 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/GotoInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/GotoInstruction.java @@ -98,4 +98,4 @@ public final class GotoInstruction extends Instruction { public boolean isPEI() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IComparisonInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IComparisonInstruction.java index f28705ad9..acb028da9 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IComparisonInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IComparisonInstruction.java @@ -25,4 +25,4 @@ public interface IComparisonInstruction extends IInstruction { String getType(); -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InstanceofInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InstanceofInstruction.java index d9413edbb..ffdc43148 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InstanceofInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InstanceofInstruction.java @@ -85,4 +85,4 @@ public final class InstanceofInstruction extends Instruction implements IInstanc public boolean firstClassType() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Instruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Instruction.java index 398e747bd..693d71379 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Instruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Instruction.java @@ -130,4 +130,4 @@ public abstract class Instruction implements Constants, Cloneable, IInstruction final public Object clone() { return this; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InvokeInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InvokeInstruction.java index e75978635..3b34828c6 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InvokeInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/InvokeInstruction.java @@ -218,4 +218,4 @@ public class InvokeInstruction extends Instruction implements IInvokeInstruction throw new Error("Unknown mode: " + opcode); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/LoadInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/LoadInstruction.java index 8189ab227..b6ac36e3c 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/LoadInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/LoadInstruction.java @@ -114,4 +114,4 @@ public final class LoadInstruction extends Instruction implements ILoadInstructi return false; } - } \ No newline at end of file + } diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MethodData.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MethodData.java index 6c68388c0..85859fb52 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MethodData.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MethodData.java @@ -240,4 +240,4 @@ public final class MethodData { public String toString() { return getClassType() + "." + getName() + getSignature(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MethodEditor.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MethodEditor.java index fede6256b..aa6d7cd24 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MethodEditor.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MethodEditor.java @@ -732,4 +732,4 @@ public final class MethodEditor { editor.addInstructionExceptionHandler(index, catchClass, p); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MonitorInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MonitorInstruction.java index a85838fd4..24a497e5d 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MonitorInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/MonitorInstruction.java @@ -67,4 +67,4 @@ public final class MonitorInstruction extends Instruction { public boolean isPEI() { return true; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/NewInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/NewInstruction.java index 5d2e8c680..7955d7b1f 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/NewInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/NewInstruction.java @@ -117,4 +117,4 @@ public final class NewInstruction extends Instruction { public boolean isPEI() { return true; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/PopInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/PopInstruction.java index ef939415f..886efb34f 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/PopInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/PopInstruction.java @@ -69,4 +69,4 @@ public final class PopInstruction extends Instruction { public boolean isPEI() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/PutInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/PutInstruction.java index 14b1f3438..6f10a902e 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/PutInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/PutInstruction.java @@ -149,4 +149,4 @@ public class PutInstruction extends Instruction implements IPutInstruction { public boolean isPEI() { return !isStatic(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ReturnInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ReturnInstruction.java index c38eb8fdd..29237b8d3 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ReturnInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ReturnInstruction.java @@ -88,4 +88,4 @@ public final class ReturnInstruction extends Instruction { public boolean isPEI() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ShiftInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ShiftInstruction.java index 2f2ed98cd..5d56e0b87 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ShiftInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ShiftInstruction.java @@ -100,4 +100,4 @@ public final class ShiftInstruction extends Instruction implements IShiftInstruc public boolean isUnsigned() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/StoreInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/StoreInstruction.java index 4f3f107e9..3612bba2b 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/StoreInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/StoreInstruction.java @@ -99,4 +99,4 @@ public final class StoreInstruction extends Instruction implements IStoreInstruc public boolean isPEI() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/SwapInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/SwapInstruction.java index 7eafd4988..8efaa740b 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/SwapInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/SwapInstruction.java @@ -57,4 +57,4 @@ public final class SwapInstruction extends Instruction { public boolean isPEI() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/SwitchInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/SwitchInstruction.java index f38aa33b6..8fcbabb52 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/SwitchInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/SwitchInstruction.java @@ -151,4 +151,4 @@ public final class SwitchInstruction extends Instruction { public boolean isPEI() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ThrowInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ThrowInstruction.java index 2f37950c4..2df5549ed 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ThrowInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ThrowInstruction.java @@ -74,4 +74,4 @@ public final class ThrowInstruction extends Instruction { public boolean isPEI() { return true; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/UnaryOpInstruction.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/UnaryOpInstruction.java index a119eb987..f7df5daca 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/UnaryOpInstruction.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/UnaryOpInstruction.java @@ -90,4 +90,4 @@ public final class UnaryOpInstruction extends Instruction implements IUnaryOpIns public boolean isPEI() { return false; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Util.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Util.java index d8157df0c..696696fc4 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Util.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/Util.java @@ -19,7 +19,6 @@ import java.util.Arrays; import java.util.HashMap; import com.ibm.wala.shrikeBT.IInvokeInstruction.Dispatch; -import com.ibm.wala.shrikeCT.BootstrapMethodsReader.BootstrapMethod; import com.ibm.wala.util.collections.Pair; /** @@ -660,4 +659,4 @@ public final class Util { return Pair.make(r, catchers); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Analyzer.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Analyzer.java index 74eeae90c..03fea20b0 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Analyzer.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Analyzer.java @@ -13,7 +13,6 @@ package com.ibm.wala.shrikeBT.analysis; import java.io.IOException; import java.io.Writer; import java.util.ArrayList; -import java.util.Arrays; import java.util.BitSet; import java.util.List; @@ -869,4 +868,4 @@ public class Analyzer { return new Analyzer(info); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchy.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchy.java index 6c7500aae..d539a7fe9 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchy.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchy.java @@ -405,4 +405,4 @@ public final class ClassHierarchy { } } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchyProvider.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchyProvider.java index ec5f3b058..db42c8f19 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchyProvider.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchyProvider.java @@ -35,4 +35,4 @@ public interface ClassHierarchyProvider { * @return whether or not cl is an interface, or Constants.MAYBE if not known */ public int isInterface(String cl); -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchyStore.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchyStore.java index 969fcfd68..8a29ffaa1 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchyStore.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchyStore.java @@ -113,4 +113,4 @@ public final class ClassHierarchyStore implements ClassHierarchyProvider { ClassInfo info = contents.get(cl); return info == null ? Constants.MAYBE : (info.isInterface ? Constants.YES : Constants.NO); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Verifier.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Verifier.java index b79e9cd87..558252b69 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Verifier.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Verifier.java @@ -331,4 +331,4 @@ public final class Verifier extends Analyzer { public void computeTypes() throws FailureException { computeTypes(null, getBasicBlockStarts(), false); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/InstructionTypeCounter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/InstructionTypeCounter.java index 03a01118b..842457ced 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/InstructionTypeCounter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/InstructionTypeCounter.java @@ -473,4 +473,4 @@ public class InstructionTypeCounter implements MethodData.Results { return c; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/LocalAllocator.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/LocalAllocator.java index 35071c4ff..4cbf87ee3 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/LocalAllocator.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/LocalAllocator.java @@ -100,4 +100,4 @@ public class LocalAllocator implements MethodData.Results { public static int allocate(MethodData info) throws IllegalArgumentException { return allocate(info, null); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/ThisAssignmentChecker.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/ThisAssignmentChecker.java index 21d0d3374..bf5eedfe4 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/ThisAssignmentChecker.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/info/ThisAssignmentChecker.java @@ -70,4 +70,4 @@ public class ThisAssignmentChecker implements MethodData.Results { return c.assignmentToThis; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTCompiler.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTCompiler.java index 4382ddcd0..4c8c26a1e 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTCompiler.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTCompiler.java @@ -118,4 +118,4 @@ final public class CTCompiler extends Compiler { return name; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTDecoder.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTDecoder.java index 309ecdbb6..dce9c3b11 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTDecoder.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTDecoder.java @@ -237,4 +237,4 @@ final public class CTDecoder extends Decoder { } } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTUtils.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTUtils.java index a13136c3f..c6b797268 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTUtils.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/CTUtils.java @@ -94,4 +94,4 @@ public class CTUtils { // System.out.println("Name:"+md.getName()+" Sig:"+md.getSignature()); classWriter.addMethod(md.getAccess(), md.getName(), md.getSignature(), elements); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/ClassInstrumenter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/ClassInstrumenter.java index dacbb1c38..d71f489dd 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/ClassInstrumenter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/ClassInstrumenter.java @@ -492,4 +492,4 @@ final public class ClassInstrumenter { return methodAttributes; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/OfflineInstrumenter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/OfflineInstrumenter.java index 63a84f5e7..0b835ca55 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/OfflineInstrumenter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/OfflineInstrumenter.java @@ -15,7 +15,6 @@ import java.io.IOException; import java.io.OutputStream; import com.ibm.wala.shrikeBT.Util; -import com.ibm.wala.shrikeBT.analysis.ClassHierarchyProvider; import com.ibm.wala.shrikeBT.tools.OfflineInstrumenterBase; import com.ibm.wala.shrikeCT.ClassWriter; import com.ibm.wala.shrikeCT.InvalidClassFileException; @@ -93,4 +92,4 @@ final public class OfflineInstrumenter extends OfflineInstrumenterBase { throw new IOException("Invalid class file"); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/AddSerialVersion.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/AddSerialVersion.java index 154b9332f..b83d38356 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/AddSerialVersion.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/AddSerialVersion.java @@ -204,4 +204,4 @@ public class AddSerialVersion { } } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BatchVerifier.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BatchVerifier.java index 4a6829abc..c5c130d9b 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BatchVerifier.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BatchVerifier.java @@ -124,4 +124,4 @@ public class BatchVerifier { } } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BootstrapDumper.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BootstrapDumper.java index 0bb7aa2ec..b303e8a93 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BootstrapDumper.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BootstrapDumper.java @@ -128,4 +128,4 @@ public class BootstrapDumper { dumpAttributes(Class.forName(cr.getName().replace('/', '.'), false, image), cr, i, attrs); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BootstrapInstrumentor.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BootstrapInstrumentor.java index 00647272d..9979034b9 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BootstrapInstrumentor.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/BootstrapInstrumentor.java @@ -154,4 +154,4 @@ public class BootstrapInstrumentor { return result; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/ClassPrinter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/ClassPrinter.java index 8c705108b..b9403b64d 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/ClassPrinter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/ClassPrinter.java @@ -401,4 +401,4 @@ public class ClassPrinter { } w.write("\n"); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/ClassSearcher.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/ClassSearcher.java index 56b5bbaff..442d29755 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/ClassSearcher.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/tools/ClassSearcher.java @@ -65,4 +65,4 @@ public class ClassSearcher { } } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/tools/MethodOptimizer.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/tools/MethodOptimizer.java index e17845792..669acdc5f 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/tools/MethodOptimizer.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/tools/MethodOptimizer.java @@ -477,4 +477,4 @@ public final class MethodOptimizer { to--; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/tools/OfflineInstrumenterBase.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/tools/OfflineInstrumenterBase.java index 693eafdfd..65fd02f50 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/tools/OfflineInstrumenterBase.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/tools/OfflineInstrumenterBase.java @@ -27,7 +27,6 @@ import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; import java.util.zip.ZipEntry; -import java.util.zip.ZipException; import com.ibm.wala.shrikeBT.analysis.ClassHierarchyProvider; @@ -618,4 +617,4 @@ public abstract class OfflineInstrumenterBase { manifestBuilder.addEntry(newEntry); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/AnnotationsReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/AnnotationsReader.java index b9f17071a..16bac191c 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/AnnotationsReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/AnnotationsReader.java @@ -375,4 +375,4 @@ public class AnnotationsReader extends AttributeReader { } return null; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/AttributeReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/AttributeReader.java index 9e10f393f..b07cb0576 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/AttributeReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/AttributeReader.java @@ -85,4 +85,4 @@ public abstract class AttributeReader { + (length + attr - offset)); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ClassConstants.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ClassConstants.java index 512137e18..72b1656e2 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ClassConstants.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ClassConstants.java @@ -88,4 +88,4 @@ public interface ClassConstants { public static final byte REF_invokeInterface = 9; -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ClassWriter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ClassWriter.java index 92245e28e..1a34b1e0d 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ClassWriter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ClassWriter.java @@ -1016,4 +1016,4 @@ public class ClassWriter implements ClassConstants { throw new IllegalArgumentException("invalid offset: " + offset); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/CodeReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/CodeReader.java index d381b105b..7f5e695e5 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/CodeReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/CodeReader.java @@ -97,4 +97,4 @@ public final class CodeReader extends AttributeReader { } iter.init(cr, attr + 14 + codeLen + 2 + exnTableLen * 8); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/CodeWriter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/CodeWriter.java index d084d0a03..eacedf337 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/CodeWriter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/CodeWriter.java @@ -169,4 +169,4 @@ public final class CodeWriter extends ClassWriter.Element { public void setAttributes(ClassWriter.Element[] attributes) { this.attributes = attributes; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantPoolParser.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantPoolParser.java index 7b967bdbd..7efc0af73 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantPoolParser.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantPoolParser.java @@ -676,4 +676,4 @@ public final class ConstantPoolParser implements ClassConstants { private double getDouble(int i) { return Double.longBitsToDouble(getLong(i)); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantValueReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantValueReader.java index e4a1bacb2..0ad0dd762 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantValueReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantValueReader.java @@ -29,4 +29,4 @@ public final class ConstantValueReader extends AttributeReader { public int getValueCPIndex() { return cr.getUShort(attr + 6); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantValueWriter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantValueWriter.java index 94a7cca42..9b5db4da4 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantValueWriter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ConstantValueWriter.java @@ -144,4 +144,4 @@ public final class ConstantValueWriter extends ClassWriter.Element { this.index = index; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ExceptionsReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ExceptionsReader.java index 780d42b2e..6ff9377ae 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ExceptionsReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ExceptionsReader.java @@ -49,4 +49,4 @@ public final class ExceptionsReader extends AttributeReader { } return r; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ExceptionsWriter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ExceptionsWriter.java index 904566dd4..001c83bc4 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ExceptionsWriter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/ExceptionsWriter.java @@ -68,4 +68,4 @@ public final class ExceptionsWriter extends ClassWriter.Element { this.table = exceptions; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InnerClassesReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InnerClassesReader.java index cd09648ae..b256150fb 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InnerClassesReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InnerClassesReader.java @@ -84,4 +84,4 @@ public final class InnerClassesReader extends AttributeReader { return 0; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InnerClassesWriter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InnerClassesWriter.java index 5c56e8177..474625009 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InnerClassesWriter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InnerClassesWriter.java @@ -81,4 +81,4 @@ public final class InnerClassesWriter extends ClassWriter.Element { this.table = classes; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InvalidClassFileException.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InvalidClassFileException.java index 8ab93a431..0768efba7 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InvalidClassFileException.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/InvalidClassFileException.java @@ -37,4 +37,4 @@ public class InvalidClassFileException extends Exception { public int getOffset() { return offset; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LineNumberTableReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LineNumberTableReader.java index 63642ada0..c49c54f37 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LineNumberTableReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LineNumberTableReader.java @@ -100,4 +100,4 @@ public final class LineNumberTableReader extends AttributeReader { return r; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LocalVariableTableReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LocalVariableTableReader.java index 6523b8c0d..ae1c6bce1 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LocalVariableTableReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LocalVariableTableReader.java @@ -107,4 +107,4 @@ public final class LocalVariableTableReader extends AttributeReader { return r; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LocalVariableTableWriter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LocalVariableTableWriter.java index 197fd21c6..0d3dfce0c 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LocalVariableTableWriter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/LocalVariableTableWriter.java @@ -154,4 +154,4 @@ public final class LocalVariableTableWriter extends ClassWriter.Element { throw new IllegalArgumentException("malformed varMap"); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SignatureReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SignatureReader.java index 8105fd5f7..c137940b1 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SignatureReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SignatureReader.java @@ -33,4 +33,4 @@ public final class SignatureReader extends AttributeReader { public String getSignature() throws InvalidClassFileException { return cr.getCP().getCPUtf8(getSignatureCPIndex()); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourceFileReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourceFileReader.java index 1e8361783..42cbd5de3 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourceFileReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourceFileReader.java @@ -33,4 +33,4 @@ public final class SourceFileReader extends AttributeReader { public String getSourceFile() throws IllegalArgumentException, InvalidClassFileException { return cr.getCP().getCPUtf8(getSourceFileCPIndex()); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourceFileWriter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourceFileWriter.java index 15b2b4302..2538af21d 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourceFileWriter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourceFileWriter.java @@ -63,4 +63,4 @@ public final class SourceFileWriter extends ClassWriter.Element { this.index = index; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableReader.java index f54e58f70..38e675338 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableReader.java @@ -96,4 +96,4 @@ public class StackMapTableReader extends AttributeReader { return null; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableWriter.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableWriter.java index 3096093d2..3423bec79 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableWriter.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableWriter.java @@ -1,6 +1,10 @@ package com.ibm.wala.shrikeCT; -import static com.ibm.wala.shrikeBT.Constants.*; +import static com.ibm.wala.shrikeBT.Constants.TYPE_double; +import static com.ibm.wala.shrikeBT.Constants.TYPE_float; +import static com.ibm.wala.shrikeBT.Constants.TYPE_int; +import static com.ibm.wala.shrikeBT.Constants.TYPE_long; +import static com.ibm.wala.shrikeBT.Constants.TYPE_null; import java.io.ByteArrayOutputStream; import java.io.IOException; diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BasicFramework.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BasicFramework.java index bc24e923a..809a015e1 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BasicFramework.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BasicFramework.java @@ -42,4 +42,4 @@ public class BasicFramework implements IKilldallFramewor public ITransferFunctionProvider getTransferFunctionProvider() { return transferFunctionProvider; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorFramework.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorFramework.java index 98b60b99a..43af5de11 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorFramework.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorFramework.java @@ -33,4 +33,4 @@ public class BitVectorFramework extends BasicFramework { public boolean isIdentity() { return true; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorIntersection.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorIntersection.java index 2eb05490b..9f2153fcf 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorIntersection.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorIntersection.java @@ -87,4 +87,4 @@ public final class BitVectorIntersection extends AbstractMeetOperator { return false; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorMinusVector.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorMinusVector.java index 74c2bf731..25a48282c 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorMinusVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorMinusVector.java @@ -68,4 +68,4 @@ public class BitVectorMinusVector extends UnaryOperator { return false; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorOr.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorOr.java index e7be68682..dd123d027 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorOr.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorOr.java @@ -68,4 +68,4 @@ public class BitVectorOr extends UnaryOperator { return false; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnion.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnion.java index 5202e2a82..8baa98986 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnion.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnion.java @@ -69,4 +69,4 @@ public class BitVectorUnion extends AbstractMeetOperator impl return NOT_CHANGED; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnionConstant.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnionConstant.java index 7f33925f6..186029727 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnionConstant.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnionConstant.java @@ -65,4 +65,4 @@ public class BitVectorUnionConstant extends UnaryOperator { return false; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnionVector.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnionVector.java index 98e37cce0..4b1ec75bd 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnionVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BitVectorUnionVector.java @@ -66,4 +66,4 @@ public class BitVectorUnionVector extends UnaryOperator { return false; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BooleanIdentity.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BooleanIdentity.java index 66af403a6..caa832989 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BooleanIdentity.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BooleanIdentity.java @@ -61,4 +61,4 @@ public class BooleanIdentity extends UnaryOperator { public boolean isIdentity() { return true; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BooleanUnion.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BooleanUnion.java index c3dd44c9a..022926824 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BooleanUnion.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/BooleanUnion.java @@ -65,4 +65,4 @@ public class BooleanUnion extends AbstractMeetOperator implemen return NOT_CHANGED; } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/UnaryBitVectorUnion.java b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/UnaryBitVectorUnion.java index 40b586cd2..7a96b8575 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/UnaryBitVectorUnion.java +++ b/com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/UnaryBitVectorUnion.java @@ -60,4 +60,4 @@ public class UnaryBitVectorUnion extends UnaryOperator { public boolean equals(Object o) { return (o instanceof UnaryBitVectorUnion); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/DefaultFixedPointSolver.java b/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/DefaultFixedPointSolver.java index c2647c820..9c94f10b5 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/DefaultFixedPointSolver.java +++ b/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/DefaultFixedPointSolver.java @@ -39,4 +39,4 @@ public abstract class DefaultFixedPointSolver> extends Ab public IFixedPointSystem getFixedPointSystem() { return graph; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/DefaultFixedPointSystem.java b/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/DefaultFixedPointSystem.java index 8eaa67ffc..c18c0766b 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/DefaultFixedPointSystem.java +++ b/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/DefaultFixedPointSystem.java @@ -18,8 +18,8 @@ import com.ibm.wala.fixpoint.IFixedPointStatement; import com.ibm.wala.fixpoint.IFixedPointSystem; import com.ibm.wala.fixpoint.IVariable; import com.ibm.wala.fixpoint.UnaryStatement; -import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.collections.FilterIterator; import com.ibm.wala.util.collections.HashSetFactory; import com.ibm.wala.util.debug.Assertions; @@ -289,4 +289,4 @@ public class DefaultFixedPointSystem> implements IFixedPo return variables.contains(v); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/Worklist.java b/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/Worklist.java index 1123a24ef..d9b24ab73 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/Worklist.java +++ b/com.ibm.wala.util/src/com/ibm/wala/fixedpoint/impl/Worklist.java @@ -47,4 +47,4 @@ public class Worklist extends Heap { } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/AbstractStatement.java b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/AbstractStatement.java index dd9572c1d..b2b8e1198 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/AbstractStatement.java +++ b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/AbstractStatement.java @@ -55,4 +55,4 @@ public abstract class AbstractStatement extends NodeW public void setOrderNumber(int orderNumber) { this.orderNumber = orderNumber; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/FixedPointConstants.java b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/FixedPointConstants.java index 5c3350092..313510140 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/FixedPointConstants.java +++ b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/FixedPointConstants.java @@ -48,4 +48,4 @@ public interface FixedPointConstants { * The bit-mask which defines the "SIDE EFFECT" flag */ final static int SIDE_EFFECT_MASK = 0x4; -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointSolver.java b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointSolver.java index 3c23d0456..63bbd2b4f 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointSolver.java +++ b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointSolver.java @@ -34,4 +34,4 @@ public interface IFixedPointSolver { * value of some variable. */ public boolean solve(IProgressMonitor monitor) throws CancelException; -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointStatement.java b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointStatement.java index 4efb11877..8af4bbc61 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointStatement.java +++ b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointStatement.java @@ -58,4 +58,4 @@ public interface IFixedPointStatement extends INodeWithNumb * @param v the variable in question */ public boolean hasVariable(T v); -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointSystem.java b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointSystem.java index a893e4032..26d0ee390 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointSystem.java +++ b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IFixedPointSystem.java @@ -71,4 +71,4 @@ public interface IFixedPointSystem { */ void reorder(); -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IVariable.java b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IVariable.java index 7b1eb9ad0..26c792674 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IVariable.java +++ b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/IVariable.java @@ -44,4 +44,4 @@ public interface IVariable extends INodeWithNumber { */ public void copyState(T v); -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/TrueOperator.java b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/TrueOperator.java index d1e6d2cda..99db84eb8 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/TrueOperator.java +++ b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/TrueOperator.java @@ -52,4 +52,4 @@ public final class TrueOperator extends UnaryOperator { public boolean equals(Object o) { return (o instanceof TrueOperator); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/UnaryOr.java b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/UnaryOr.java index 698454d56..7b2f954b1 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/fixpoint/UnaryOr.java +++ b/com.ibm.wala.util/src/com/ibm/wala/fixpoint/UnaryOr.java @@ -50,4 +50,4 @@ public final class UnaryOr extends UnaryOperator { public boolean equals(Object o) { return (o instanceof UnaryOr); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/ArraySetMultiMap.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/ArraySetMultiMap.java index cb449a54e..514519bb8 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/ArraySetMultiMap.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/ArraySetMultiMap.java @@ -85,4 +85,4 @@ public class ArraySetMultiMap extends AbstractMultiMap { public static ArraySetMultiMap make() { return new ArraySetMultiMap(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/BimodalMap.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/BimodalMap.java index 16a2966e0..89caac304 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/BimodalMap.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/BimodalMap.java @@ -196,4 +196,4 @@ public class BimodalMap implements Map { public Set> entrySet() { return (Set>) ((backingStore == null) ? Collections.emptySet() : backingStore.entrySet()); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/CollectionFilter.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/CollectionFilter.java index 218a81697..c9ffebf99 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/CollectionFilter.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/CollectionFilter.java @@ -12,6 +12,7 @@ package com.ibm.wala.util.collections; import java.util.Collection; + import com.ibm.wala.util.Predicate; /** diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/ComposedIterator.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/ComposedIterator.java index 04e76da8c..e54ae3d21 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/ComposedIterator.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/ComposedIterator.java @@ -57,4 +57,4 @@ public abstract class ComposedIterator implements Iterator { return result; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/CompoundIntIterator.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/CompoundIntIterator.java index 35e7a8dc0..4eed38cc5 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/CompoundIntIterator.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/CompoundIntIterator.java @@ -60,4 +60,4 @@ public class CompoundIntIterator implements IntIterator { Assertions.UNREACHABLE("define a custom hash code to avoid non-determinism"); return 0; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/Factory.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/Factory.java index f3288f52b..7c0cfe755 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/Factory.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/Factory.java @@ -12,4 +12,4 @@ package com.ibm.wala.util.collections; public interface Factory{ T make(); -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/FifoQueue.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/FifoQueue.java index f738310fc..26e627be8 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/FifoQueue.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/FifoQueue.java @@ -186,4 +186,4 @@ public class FifoQueue { // get & remove the top of the queue. return qItems.get(0); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/FilterIterator.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/FilterIterator.java index 026fb2ee6..255926657 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/FilterIterator.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/FilterIterator.java @@ -84,4 +84,4 @@ public class FilterIterator implements java.util.Iterator { public String toString() { return "filter " + f + " of " + i; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/HashMapFactory.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/HashMapFactory.java index b072e09de..2238622f9 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/HashMapFactory.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/HashMapFactory.java @@ -58,4 +58,4 @@ public class HashMapFactory { return new LinkedHashMap(t); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/IVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/IVector.java index 74803d49f..e29b9713a 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/IVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/IVector.java @@ -37,4 +37,4 @@ public interface IVector extends Iterable { * @return max i s.t get(i) != null */ public abstract int getMaxIndex(); -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/IntMapIterator.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/IntMapIterator.java index 441cf70e4..07fc8ddf0 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/IntMapIterator.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/IntMapIterator.java @@ -54,4 +54,4 @@ public class IntMapIterator implements Iterator { return "map: " + f + " of " + i; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/IteratorUtil.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/IteratorUtil.java index 3a9e91876..bcffa0094 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/IteratorUtil.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/IteratorUtil.java @@ -12,8 +12,8 @@ package com.ibm.wala.util.collections; import java.util.Iterator; -import com.ibm.wala.util.functions.Function; import com.ibm.wala.util.Predicate; +import com.ibm.wala.util.functions.Function; /** * utilities dealing with Iterators */ diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/MapIterator.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/MapIterator.java index f395f71f1..67da77b18 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/MapIterator.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/MapIterator.java @@ -59,4 +59,4 @@ public class MapIterator implements Iterator { public static Set map(Function f, Collection i) { return Iterator2Collection.toSet(new MapIterator(i.iterator(), f)); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/MultiMap.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/MultiMap.java index 759fb55e0..9f1fc3cb9 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/MultiMap.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/MultiMap.java @@ -64,4 +64,4 @@ public interface MultiMap { public void clear(); public boolean isEmpty(); -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/ParanoidHashMap.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/ParanoidHashMap.java index bb2659164..d29ee0693 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/ParanoidHashMap.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/ParanoidHashMap.java @@ -73,4 +73,4 @@ public class ParanoidHashMap extends LinkedHashMap { } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/ParanoidHashSet.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/ParanoidHashSet.java index dae615b72..bf12dab08 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/ParanoidHashSet.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/ParanoidHashSet.java @@ -97,4 +97,4 @@ public class ParanoidHashSet extends LinkedHashSet { } return result; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/SimpleVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/SimpleVector.java index 9ceef764b..f6950437b 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/SimpleVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/SimpleVector.java @@ -117,4 +117,4 @@ public class SimpleVector implements IVector { public int getMaxIndex() { return maxIndex; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/SmallMap.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/SmallMap.java index c14c9fd50..9fd83f052 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/SmallMap.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/SmallMap.java @@ -240,4 +240,4 @@ public class SmallMap implements Map { return null; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/TwoLevelVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/TwoLevelVector.java index c40b30c7c..f079c973c 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/TwoLevelVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/TwoLevelVector.java @@ -174,4 +174,4 @@ public class TwoLevelVector implements IVector, Serializable { } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/AbstractNumberedGraph.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/AbstractNumberedGraph.java index 431a1756d..68b120c6f 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/AbstractNumberedGraph.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/AbstractNumberedGraph.java @@ -83,4 +83,4 @@ public abstract class AbstractNumberedGraph extends AbstractGraph implemen public IntSet getSuccNodeNumbers(T node) throws IllegalArgumentException { return getEdgeManager().getSuccNodeNumbers(node); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/EdgeFilteredNumberedGraph.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/EdgeFilteredNumberedGraph.java index 609c6e6de..973344fcb 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/EdgeFilteredNumberedGraph.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/EdgeFilteredNumberedGraph.java @@ -148,4 +148,4 @@ public class EdgeFilteredNumberedGraph extends AbstractNumberedGraph { protected NumberedNodeManager getNodeManager() { return delegate; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphIntegrity.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphIntegrity.java index a29f77a58..1eb315036 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphIntegrity.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphIntegrity.java @@ -231,4 +231,4 @@ public class GraphIntegrity { } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphReachability.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphReachability.java index e6a9e3720..31dbb0133 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphReachability.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphReachability.java @@ -143,4 +143,4 @@ public class GraphReachability { return solver.solve(monitor); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphSlicer.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphSlicer.java index 8eea11455..c43aef293 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphSlicer.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphSlicer.java @@ -333,4 +333,4 @@ public class GraphSlicer { } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/INodeWithNumberedEdges.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/INodeWithNumberedEdges.java index 5738fb407..220e44930 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/INodeWithNumberedEdges.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/INodeWithNumberedEdges.java @@ -51,4 +51,4 @@ public interface INodeWithNumberedEdges extends INodeWithNumber { */ public void removeOutgoingEdges(); -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/NodeManager.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/NodeManager.java index 26d255933..e456e9a11 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/NodeManager.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/NodeManager.java @@ -48,4 +48,4 @@ public interface NodeManager extends Iterable { * @return true iff the graph contains the specified node */ public boolean containsNode(T n); -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/NumberedNodeManager.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/NumberedNodeManager.java index fc5962db4..a83e9ae3f 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/NumberedNodeManager.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/NumberedNodeManager.java @@ -33,4 +33,4 @@ public interface NumberedNodeManager extends NodeManager { */ public abstract Iterator iterateNodes(IntSet s); -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/Path.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/Path.java index 3b4f6cf57..ab5f5c904 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/Path.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/Path.java @@ -86,4 +86,4 @@ public class Path extends SimpleIntVector { return result.toString(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/DelegatingNumberedGraph.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/DelegatingNumberedGraph.java index 68f9ebd85..278f538a5 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/DelegatingNumberedGraph.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/DelegatingNumberedGraph.java @@ -40,4 +40,4 @@ public class DelegatingNumberedGraph extends A protected NumberedEdgeManager getEdgeManager() { return edgeManager; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/NumberedNodeIterator.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/NumberedNodeIterator.java index 2d9156693..66a8e7b41 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/NumberedNodeIterator.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/NumberedNodeIterator.java @@ -52,4 +52,4 @@ public class NumberedNodeIterator implements Iterator { public void remove() throws UnsupportedOperationException { throw new UnsupportedOperationException(); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SelfLoopAddedEdgeManager.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SelfLoopAddedEdgeManager.java index 42898e09a..4b418c201 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SelfLoopAddedEdgeManager.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SelfLoopAddedEdgeManager.java @@ -122,4 +122,4 @@ public class SelfLoopAddedEdgeManager implements EdgeManager { return original.hasEdge(src, dst); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SparseNumberedGraph.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SparseNumberedGraph.java index 730048167..1e11ec193 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SparseNumberedGraph.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SparseNumberedGraph.java @@ -61,4 +61,4 @@ public class SparseNumberedGraph extends AbstractNumb protected NumberedEdgeManager getEdgeManager() { return edgeManager; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSDiscoverTimeIterator.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSDiscoverTimeIterator.java index b76ac8dcc..4088e48b1 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSDiscoverTimeIterator.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSDiscoverTimeIterator.java @@ -13,7 +13,6 @@ package com.ibm.wala.util.graph.traverse; import java.util.ArrayList; import java.util.Iterator; import java.util.NoSuchElementException; -import java.util.Stack; import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.collections.NonNullSingletonIterator; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSPathFinder.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSPathFinder.java index fe8951ea0..bf199c90a 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSPathFinder.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSPathFinder.java @@ -15,7 +15,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Stack; import com.ibm.wala.util.Predicate; import com.ibm.wala.util.collections.HashMapFactory; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/Topological.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/Topological.java index 19f975523..7ffa1c66a 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/Topological.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/Topological.java @@ -55,4 +55,4 @@ public class Topological { }; }; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSet.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSet.java index c8e6efc85..d604db298 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSet.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSet.java @@ -385,4 +385,4 @@ public class BimodalMutableIntSet implements MutableIntSet { } return true; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSetFactory.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSetFactory.java index 02143a90e..2f9a9edbc 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSetFactory.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSetFactory.java @@ -57,4 +57,4 @@ public class BimodalMutableIntSetFactory implements MutableIntSetFactory implements Iterable { return mapping; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SimpleIntVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SimpleIntVector.java index c840ab6fe..2821e949e 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SimpleIntVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SimpleIntVector.java @@ -133,4 +133,4 @@ public class SimpleIntVector implements IntVector, Serializable { return maxIndex; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntVector.java index 7c13b105e..9d9ea11e0 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntVector.java @@ -93,4 +93,4 @@ public class SparseIntVector implements IntVector, Serializable { public int getMaxIndex() { return maxIndex; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseLongIntVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseLongIntVector.java index 816d0925b..a45ebd0ab 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseLongIntVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseLongIntVector.java @@ -86,4 +86,4 @@ public class SparseLongIntVector { System.err.println(("indices.size() " + indices.size())); } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/TwoLevelIntVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/TwoLevelIntVector.java index 094071eda..b1dfa6c13 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/TwoLevelIntVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/TwoLevelIntVector.java @@ -109,4 +109,4 @@ public class TwoLevelIntVector implements IntVector, Serializable { return maxIndex; } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/io/FileUtil.java b/com.ibm.wala.util/src/com/ibm/wala/util/io/FileUtil.java index c9ad9114e..6b0873d6b 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/io/FileUtil.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/io/FileUtil.java @@ -214,4 +214,4 @@ public class FileUtil { action.apply(top); } } -} \ No newline at end of file +} diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/perf/Stopwatch.java b/com.ibm.wala.util/src/com/ibm/wala/util/perf/Stopwatch.java index 61831a858..b37626d99 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/perf/Stopwatch.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/perf/Stopwatch.java @@ -61,4 +61,4 @@ public class Stopwatch { } return sb.toString(); } -} \ No newline at end of file +} diff --git a/pom.xml b/pom.xml index a18d73171..339122ae9 100644 --- a/pom.xml +++ b/pom.xml @@ -57,8 +57,8 @@ com.ibm.wala.scandroid com.ibm.wala-repository - - + +