arkanalyzer 1.0.20 → 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Config.d.ts +70 -70
- package/lib/Config.js +198 -198
- package/lib/Scene.d.ts +316 -316
- package/lib/Scene.js +1316 -1316
- package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +28 -28
- package/lib/callgraph/algorithm/AbstractAnalysis.js +144 -144
- package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts +10 -10
- package/lib/callgraph/algorithm/ClassHierarchyAnalysis.js +69 -69
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts +15 -15
- package/lib/callgraph/algorithm/RapidTypeAnalysis.js +146 -146
- package/lib/callgraph/common/Statistics.d.ts +57 -57
- package/lib/callgraph/common/Statistics.js +228 -228
- package/lib/callgraph/model/CallGraph.d.ts +96 -96
- package/lib/callgraph/model/CallGraph.js +354 -354
- package/lib/callgraph/model/builder/CallGraphBuilder.d.ts +15 -15
- package/lib/callgraph/model/builder/CallGraphBuilder.js +106 -106
- package/lib/callgraph/pointerAnalysis/Context.d.ts +37 -37
- package/lib/callgraph/pointerAnalysis/Context.js +155 -155
- package/lib/callgraph/pointerAnalysis/DummyCallCreator.d.ts +22 -22
- package/lib/callgraph/pointerAnalysis/DummyCallCreator.js +104 -104
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +5 -5
- package/lib/callgraph/pointerAnalysis/PTAUtils.js +46 -46
- package/lib/callgraph/pointerAnalysis/Pag.d.ts +261 -261
- package/lib/callgraph/pointerAnalysis/Pag.js +930 -930
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +157 -157
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +1399 -1399
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +72 -72
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +573 -573
- package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts +15 -15
- package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.js +81 -81
- package/lib/callgraph/pointerAnalysis/PtsDS.d.ts +80 -80
- package/lib/callgraph/pointerAnalysis/PtsDS.js +308 -308
- package/lib/core/base/Constant.d.ts +48 -48
- package/lib/core/base/Constant.js +103 -103
- package/lib/core/base/Decorator.d.ts +15 -15
- package/lib/core/base/Decorator.js +46 -46
- package/lib/core/base/DefUseChain.d.ts +8 -8
- package/lib/core/base/DefUseChain.js +25 -25
- package/lib/core/base/Expr.d.ts +340 -340
- package/lib/core/base/Expr.js +917 -917
- package/lib/core/base/Local.d.ts +104 -104
- package/lib/core/base/Local.js +176 -176
- package/lib/core/base/Position.d.ts +30 -30
- package/lib/core/base/Position.js +147 -147
- package/lib/core/base/Ref.d.ts +173 -173
- package/lib/core/base/Ref.js +374 -374
- package/lib/core/base/Stmt.d.ts +237 -237
- package/lib/core/base/Stmt.js +525 -525
- package/lib/core/base/Trap.d.ts +8 -8
- package/lib/core/base/Trap.js +30 -30
- package/lib/core/base/Type.d.ts +308 -308
- package/lib/core/base/Type.js +639 -639
- package/lib/core/base/TypeExpr.d.ts +71 -71
- package/lib/core/base/TypeExpr.js +155 -155
- package/lib/core/base/Value.d.ts +32 -32
- package/lib/core/base/Value.js +16 -16
- package/lib/core/common/ArkError.d.ts +14 -14
- package/lib/core/common/ArkError.js +28 -28
- package/lib/core/common/ArkIRTransformer.d.ts +67 -67
- package/lib/core/common/ArkIRTransformer.js +690 -690
- package/lib/core/common/ArkValueTransformer.d.ts +89 -89
- package/lib/core/common/ArkValueTransformer.js +1478 -1478
- package/lib/core/common/Builtin.d.ts +36 -36
- package/lib/core/common/Builtin.js +81 -81
- package/lib/core/common/Const.d.ts +21 -21
- package/lib/core/common/Const.js +43 -43
- package/lib/core/common/DummyMainCreater.d.ts +46 -46
- package/lib/core/common/DummyMainCreater.js +319 -319
- package/lib/core/common/EtsConst.d.ts +73 -73
- package/lib/core/common/EtsConst.js +1021 -1021
- package/lib/core/common/ExprUseReplacer.d.ts +21 -21
- package/lib/core/common/ExprUseReplacer.js +124 -124
- package/lib/core/common/IRInference.d.ts +36 -36
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +651 -648
- package/lib/core/common/IRUtils.d.ts +18 -18
- package/lib/core/common/IRUtils.js +141 -141
- package/lib/core/common/ModelUtils.d.ts +70 -70
- package/lib/core/common/ModelUtils.js +712 -712
- package/lib/core/common/RefUseReplacer.d.ts +13 -13
- package/lib/core/common/RefUseReplacer.js +52 -52
- package/lib/core/common/SdkUtils.d.ts +8 -8
- package/lib/core/common/SdkUtils.js +105 -105
- package/lib/core/common/StmtDefReplacer.d.ts +12 -12
- package/lib/core/common/StmtDefReplacer.js +41 -41
- package/lib/core/common/StmtUseReplacer.d.ts +16 -16
- package/lib/core/common/StmtUseReplacer.js +108 -108
- package/lib/core/common/TSConst.d.ts +18 -18
- package/lib/core/common/TSConst.js +36 -36
- package/lib/core/common/TypeInference.d.ts +102 -102
- package/lib/core/common/TypeInference.js +748 -748
- package/lib/core/common/ValueUtil.d.ts +12 -12
- package/lib/core/common/ValueUtil.js +54 -54
- package/lib/core/common/VisibleValue.d.ts +36 -36
- package/lib/core/common/VisibleValue.js +212 -212
- package/lib/core/dataflow/DataflowProblem.d.ts +20 -20
- package/lib/core/dataflow/DataflowProblem.js +20 -20
- package/lib/core/dataflow/DataflowResult.d.ts +7 -7
- package/lib/core/dataflow/DataflowResult.js +26 -26
- package/lib/core/dataflow/DataflowSolver.d.ts +43 -43
- package/lib/core/dataflow/DataflowSolver.js +307 -307
- package/lib/core/dataflow/Edge.d.ts +11 -11
- package/lib/core/dataflow/Edge.js +31 -31
- package/lib/core/dataflow/Fact.d.ts +6 -6
- package/lib/core/dataflow/Fact.js +24 -24
- package/lib/core/dataflow/GenericDataFlow.d.ts +142 -142
- package/lib/core/dataflow/GenericDataFlow.js +109 -109
- package/lib/core/dataflow/ReachingDef.d.ts +62 -62
- package/lib/core/dataflow/ReachingDef.js +168 -168
- package/lib/core/dataflow/UndefinedVariable.d.ts +45 -45
- package/lib/core/dataflow/UndefinedVariable.js +288 -288
- package/lib/core/dataflow/Util.d.ts +9 -9
- package/lib/core/dataflow/Util.js +64 -64
- package/lib/core/graph/BaseExplicitGraph.d.ts +58 -58
- package/lib/core/graph/BaseExplicitGraph.js +157 -157
- package/lib/core/graph/BaseImplicitGraph.d.ts +77 -77
- package/lib/core/graph/BaseImplicitGraph.js +78 -78
- package/lib/core/graph/BasicBlock.d.ts +104 -104
- package/lib/core/graph/BasicBlock.js +280 -280
- package/lib/core/graph/Cfg.d.ts +59 -59
- package/lib/core/graph/Cfg.js +282 -282
- package/lib/core/graph/DependsGraph.d.ts +35 -35
- package/lib/core/graph/DependsGraph.js +87 -87
- package/lib/core/graph/DominanceFinder.d.ts +15 -15
- package/lib/core/graph/DominanceFinder.js +121 -121
- package/lib/core/graph/DominanceTree.d.ts +12 -12
- package/lib/core/graph/DominanceTree.js +70 -70
- package/lib/core/graph/GraphTraits.d.ts +7 -7
- package/lib/core/graph/GraphTraits.js +16 -16
- package/lib/core/graph/Scc.d.ts +61 -61
- package/lib/core/graph/Scc.js +222 -222
- package/lib/core/graph/ViewTree.d.ts +114 -114
- package/lib/core/graph/ViewTree.js +16 -16
- package/lib/core/graph/builder/CfgBuilder.d.ts +176 -176
- package/lib/core/graph/builder/CfgBuilder.js +1139 -1139
- package/lib/core/graph/builder/ConditionBuilder.d.ts +15 -15
- package/lib/core/graph/builder/ConditionBuilder.js +252 -252
- package/lib/core/graph/builder/LoopBuilder.d.ts +20 -20
- package/lib/core/graph/builder/LoopBuilder.js +251 -251
- package/lib/core/graph/builder/SwitchBuilder.d.ts +11 -11
- package/lib/core/graph/builder/SwitchBuilder.js +152 -152
- package/lib/core/graph/builder/TrapBuilder.d.ts +16 -16
- package/lib/core/graph/builder/TrapBuilder.js +272 -272
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts +203 -203
- package/lib/core/graph/builder/ViewTreeBuilder.js +1055 -1055
- package/lib/core/model/ArkBaseModel.d.ts +59 -59
- package/lib/core/model/ArkBaseModel.js +274 -274
- package/lib/core/model/ArkBody.d.ts +24 -24
- package/lib/core/model/ArkBody.js +65 -65
- package/lib/core/model/ArkClass.d.ts +206 -206
- package/lib/core/model/ArkClass.js +439 -439
- package/lib/core/model/ArkExport.d.ts +72 -72
- package/lib/core/model/ArkExport.js +147 -147
- package/lib/core/model/ArkField.d.ts +62 -62
- package/lib/core/model/ArkField.js +113 -113
- package/lib/core/model/ArkFile.d.ts +131 -131
- package/lib/core/model/ArkFile.js +267 -267
- package/lib/core/model/ArkImport.d.ts +44 -44
- package/lib/core/model/ArkImport.js +108 -108
- package/lib/core/model/ArkMetadata.d.ts +31 -31
- package/lib/core/model/ArkMetadata.js +55 -55
- package/lib/core/model/ArkMethod.d.ts +261 -261
- package/lib/core/model/ArkMethod.js +592 -592
- package/lib/core/model/ArkNamespace.d.ts +66 -66
- package/lib/core/model/ArkNamespace.js +209 -209
- package/lib/core/model/ArkSignature.d.ts +162 -162
- package/lib/core/model/ArkSignature.js +379 -379
- package/lib/core/model/builder/ArkClassBuilder.d.ts +12 -12
- package/lib/core/model/builder/ArkClassBuilder.js +454 -454
- package/lib/core/model/builder/ArkExportBuilder.d.ts +24 -24
- package/lib/core/model/builder/ArkExportBuilder.js +210 -210
- package/lib/core/model/builder/ArkFieldBuilder.d.ts +8 -8
- package/lib/core/model/builder/ArkFieldBuilder.js +193 -193
- package/lib/core/model/builder/ArkFileBuilder.d.ts +9 -9
- package/lib/core/model/builder/ArkFileBuilder.js +165 -165
- package/lib/core/model/builder/ArkImportBuilder.d.ts +4 -4
- package/lib/core/model/builder/ArkImportBuilder.js +128 -128
- package/lib/core/model/builder/ArkMethodBuilder.d.ts +63 -63
- package/lib/core/model/builder/ArkMethodBuilder.js +486 -486
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts +5 -5
- package/lib/core/model/builder/ArkNamespaceBuilder.js +205 -205
- package/lib/core/model/builder/ArkSignatureBuilder.d.ts +8 -8
- package/lib/core/model/builder/ArkSignatureBuilder.js +40 -40
- package/lib/core/model/builder/BodyBuilder.d.ts +55 -30
- package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/BodyBuilder.js +542 -371
- package/lib/core/model/builder/builderUtils.d.ts +18 -18
- package/lib/core/model/builder/builderUtils.js +558 -558
- package/lib/index.d.ts +82 -80
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +201 -196
- package/lib/save/ArkStream.d.ts +23 -23
- package/lib/save/ArkStream.js +83 -83
- package/lib/save/DotPrinter.d.ts +43 -43
- package/lib/save/DotPrinter.js +170 -170
- package/lib/save/GraphPrinter.d.ts +16 -16
- package/lib/save/GraphPrinter.js +134 -134
- package/lib/save/JsonPrinter.d.ts +30 -30
- package/lib/save/JsonPrinter.js +580 -580
- package/lib/save/Printer.d.ts +12 -12
- package/lib/save/Printer.js +27 -27
- package/lib/save/PrinterBuilder.d.ts +53 -53
- package/lib/save/PrinterBuilder.js +145 -145
- package/lib/save/ViewTreePrinter.d.ts +14 -14
- package/lib/save/ViewTreePrinter.js +123 -123
- package/lib/save/arkir/ArkIRClassPrinter.d.ts +13 -13
- package/lib/save/arkir/ArkIRClassPrinter.js +92 -92
- package/lib/save/arkir/ArkIRFieldPrinter.d.ts +11 -11
- package/lib/save/arkir/ArkIRFieldPrinter.js +64 -64
- package/lib/save/arkir/ArkIRFilePrinter.d.ts +12 -12
- package/lib/save/arkir/ArkIRFilePrinter.js +54 -54
- package/lib/save/arkir/ArkIRMethodPrinter.d.ts +16 -16
- package/lib/save/arkir/ArkIRMethodPrinter.js +159 -159
- package/lib/save/arkir/ArkIRNamespacePrinter.d.ts +11 -11
- package/lib/save/arkir/ArkIRNamespacePrinter.js +66 -66
- package/lib/save/base/BasePrinter.d.ts +23 -23
- package/lib/save/base/BasePrinter.js +70 -70
- package/lib/save/base/ExportPrinter.d.ts +8 -8
- package/lib/save/base/ExportPrinter.js +67 -67
- package/lib/save/base/ImportPrinter.d.ts +9 -9
- package/lib/save/base/ImportPrinter.js +92 -92
- package/lib/save/base/PrinterUtils.d.ts +24 -24
- package/lib/save/base/PrinterUtils.js +208 -208
- package/lib/save/serializeArkIR.d.ts +8 -8
- package/lib/save/serializeArkIR.js +294 -294
- package/lib/save/source/SourceBase.d.ts +22 -22
- package/lib/save/source/SourceBase.js +64 -64
- package/lib/save/source/SourceBody.d.ts +58 -58
- package/lib/save/source/SourceBody.js +296 -296
- package/lib/save/source/SourceClass.d.ts +25 -25
- package/lib/save/source/SourceClass.js +187 -187
- package/lib/save/source/SourceField.d.ts +13 -13
- package/lib/save/source/SourceField.js +73 -73
- package/lib/save/source/SourceFilePrinter.d.ts +12 -12
- package/lib/save/source/SourceFilePrinter.js +69 -69
- package/lib/save/source/SourceMethod.d.ts +22 -22
- package/lib/save/source/SourceMethod.d.ts.map +1 -1
- package/lib/save/source/SourceMethod.js +196 -193
- package/lib/save/source/SourceNamespace.d.ts +11 -11
- package/lib/save/source/SourceNamespace.js +83 -83
- package/lib/save/source/SourceStmt.d.ts +178 -178
- package/lib/save/source/SourceStmt.js +838 -838
- package/lib/save/source/SourceTransformer.d.ts +46 -46
- package/lib/save/source/SourceTransformer.js +446 -446
- package/lib/transformer/FunctionTransformer.d.ts +2 -2
- package/lib/transformer/FunctionTransformer.js +17 -17
- package/lib/transformer/SceneTransformer.d.ts +2 -2
- package/lib/transformer/SceneTransformer.js +17 -17
- package/lib/transformer/StaticSingleAssignmentFormer.d.ts +12 -12
- package/lib/transformer/StaticSingleAssignmentFormer.js +259 -259
- package/lib/transformer/Transformer.d.ts +6 -6
- package/lib/transformer/Transformer.js +22 -22
- package/lib/utils/AstTreeUtils.d.ts +4 -4
- package/lib/utils/AstTreeUtils.js +26 -26
- package/lib/utils/CfgStructualAnalysis.d.ts +110 -110
- package/lib/utils/CfgStructualAnalysis.js +1277 -1277
- package/lib/utils/FileUtils.d.ts +18 -18
- package/lib/utils/FileUtils.js +135 -135
- package/lib/utils/SparseBitVector.d.ts +100 -100
- package/lib/utils/SparseBitVector.js +445 -445
- package/lib/utils/callGraphUtils.d.ts +30 -30
- package/lib/utils/callGraphUtils.js +205 -205
- package/lib/utils/crypto_utils.d.ts +5 -5
- package/lib/utils/crypto_utils.js +57 -57
- package/lib/utils/entryMethodUtils.d.ts +13 -13
- package/lib/utils/entryMethodUtils.js +110 -110
- package/lib/utils/getAllFiles.d.ts +9 -9
- package/lib/utils/getAllFiles.js +90 -90
- package/lib/utils/json5parser.d.ts +6 -6
- package/lib/utils/json5parser.js +146 -146
- package/lib/utils/logger.d.ts +18 -18
- package/lib/utils/logger.d.ts.map +1 -1
- package/lib/utils/logger.js +97 -90
- package/lib/utils/pathTransfer.d.ts +1 -1
- package/lib/utils/pathTransfer.js +25 -25
- package/node_modules/json5/lib/cli.js +0 -0
- package/node_modules/ohos-typescript/bin/tsc +0 -0
- package/node_modules/ohos-typescript/bin/tsserver +0 -0
- package/package.json +3 -3
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
import { Scene } from '../../Scene';
|
|
2
|
-
import { Value } from '../../core/base/Value';
|
|
3
|
-
import { NodeID } from '../../core/graph/BaseExplicitGraph';
|
|
4
|
-
import { CallGraph, CallSite, FuncID } from '../model/CallGraph';
|
|
5
|
-
import { AbstractAnalysis } from '../algorithm/AbstractAnalysis';
|
|
6
|
-
import { Type } from '../../core/base/Type';
|
|
7
|
-
import { Stmt } from '../../core/base/Stmt';
|
|
8
|
-
import { Pag } from './Pag';
|
|
9
|
-
import { PointerAnalysisConfig } from './PointerAnalysisConfig';
|
|
10
|
-
import { DiffPTData, IPtsCollection } from './PtsDS';
|
|
11
|
-
export declare class PointerAnalysis extends AbstractAnalysis {
|
|
12
|
-
private pag;
|
|
13
|
-
private pagBuilder;
|
|
14
|
-
private ptd;
|
|
15
|
-
private entries;
|
|
16
|
-
private worklist;
|
|
17
|
-
private ptaStat;
|
|
18
|
-
private typeDiffMap;
|
|
19
|
-
private config;
|
|
20
|
-
constructor(p: Pag, cg: CallGraph, s: Scene, config: PointerAnalysisConfig);
|
|
21
|
-
static pointerAnalysisForWholeProject(projectScene: Scene, config?: PointerAnalysisConfig): PointerAnalysis;
|
|
22
|
-
protected init(): void;
|
|
23
|
-
start(): void;
|
|
24
|
-
private postProcess;
|
|
25
|
-
getPTD(): DiffPTData<NodeID, NodeID, IPtsCollection<NodeID>>;
|
|
26
|
-
getStat(): string;
|
|
27
|
-
protected preProcessMethod(funcID: FuncID): CallSite[];
|
|
28
|
-
setEntries(fIds: FuncID[]): void;
|
|
29
|
-
private solveConstraint;
|
|
30
|
-
/**
|
|
31
|
-
* get newly added Address Edge, and add them to initial WorkList
|
|
32
|
-
*/
|
|
33
|
-
private initWorklist;
|
|
34
|
-
private solveWorklist;
|
|
35
|
-
private processNode;
|
|
36
|
-
private handleCopy;
|
|
37
|
-
private handleLoadWrite;
|
|
38
|
-
private handleFieldInEdges;
|
|
39
|
-
private handleFieldOutEdges;
|
|
40
|
-
/**
|
|
41
|
-
* If current node is a base of a called method, pointer in this node will be transfered into `this` Local in method
|
|
42
|
-
*/
|
|
43
|
-
private handleThis;
|
|
44
|
-
private handlePt;
|
|
45
|
-
private propagate;
|
|
46
|
-
/**
|
|
47
|
-
* 1. 记录被更新的节点(记录cid, nodeid)
|
|
48
|
-
* 2. ( PAGLocalNode记录callsite(cid, value唯一)),通过1种的nodeID查询Node,拿到Callsite
|
|
49
|
-
* 3. 在addDynamicCall里对传入指针过滤(已处理指针和未处理指针)
|
|
50
|
-
*/
|
|
51
|
-
private onTheFlyDynamicCallSolve;
|
|
52
|
-
private processDynCallSite;
|
|
53
|
-
private processUnknownCallSite;
|
|
54
|
-
private addToReanalyze;
|
|
55
|
-
/**
|
|
56
|
-
* compare interface
|
|
57
|
-
*/
|
|
58
|
-
noAlias(leftValue: Value, rightValue: Value): boolean;
|
|
59
|
-
mayAlias(leftValue: Value, rightValue: Value): boolean;
|
|
60
|
-
getRelatedNodes(value: Value): Set<Value>;
|
|
61
|
-
private processRelatedNode;
|
|
62
|
-
private addIncomingEdgesToWorkList;
|
|
63
|
-
private addOutgoingEdgesToWorkList;
|
|
64
|
-
private detectTypeDiff;
|
|
65
|
-
getTypeDiffMap(): Map<Value, Set<Type>>;
|
|
66
|
-
protected resolveCall(sourceMethod: NodeID, invokeStmt: Stmt): CallSite[];
|
|
67
|
-
getUnhandledFuncs(): FuncID[];
|
|
68
|
-
getHandledFuncs(): FuncID[];
|
|
69
|
-
getPTAConfig(): PointerAnalysisConfig;
|
|
70
|
-
private dumpUnhandledFunctions;
|
|
71
|
-
mergeInstanceFieldMap(src: Map<number, number[]>, dst: Map<number, number[]>): Map<number, number[]>;
|
|
72
|
-
}
|
|
1
|
+
import { Scene } from '../../Scene';
|
|
2
|
+
import { Value } from '../../core/base/Value';
|
|
3
|
+
import { NodeID } from '../../core/graph/BaseExplicitGraph';
|
|
4
|
+
import { CallGraph, CallSite, FuncID } from '../model/CallGraph';
|
|
5
|
+
import { AbstractAnalysis } from '../algorithm/AbstractAnalysis';
|
|
6
|
+
import { Type } from '../../core/base/Type';
|
|
7
|
+
import { Stmt } from '../../core/base/Stmt';
|
|
8
|
+
import { Pag } from './Pag';
|
|
9
|
+
import { PointerAnalysisConfig } from './PointerAnalysisConfig';
|
|
10
|
+
import { DiffPTData, IPtsCollection } from './PtsDS';
|
|
11
|
+
export declare class PointerAnalysis extends AbstractAnalysis {
|
|
12
|
+
private pag;
|
|
13
|
+
private pagBuilder;
|
|
14
|
+
private ptd;
|
|
15
|
+
private entries;
|
|
16
|
+
private worklist;
|
|
17
|
+
private ptaStat;
|
|
18
|
+
private typeDiffMap;
|
|
19
|
+
private config;
|
|
20
|
+
constructor(p: Pag, cg: CallGraph, s: Scene, config: PointerAnalysisConfig);
|
|
21
|
+
static pointerAnalysisForWholeProject(projectScene: Scene, config?: PointerAnalysisConfig): PointerAnalysis;
|
|
22
|
+
protected init(): void;
|
|
23
|
+
start(): void;
|
|
24
|
+
private postProcess;
|
|
25
|
+
getPTD(): DiffPTData<NodeID, NodeID, IPtsCollection<NodeID>>;
|
|
26
|
+
getStat(): string;
|
|
27
|
+
protected preProcessMethod(funcID: FuncID): CallSite[];
|
|
28
|
+
setEntries(fIds: FuncID[]): void;
|
|
29
|
+
private solveConstraint;
|
|
30
|
+
/**
|
|
31
|
+
* get newly added Address Edge, and add them to initial WorkList
|
|
32
|
+
*/
|
|
33
|
+
private initWorklist;
|
|
34
|
+
private solveWorklist;
|
|
35
|
+
private processNode;
|
|
36
|
+
private handleCopy;
|
|
37
|
+
private handleLoadWrite;
|
|
38
|
+
private handleFieldInEdges;
|
|
39
|
+
private handleFieldOutEdges;
|
|
40
|
+
/**
|
|
41
|
+
* If current node is a base of a called method, pointer in this node will be transfered into `this` Local in method
|
|
42
|
+
*/
|
|
43
|
+
private handleThis;
|
|
44
|
+
private handlePt;
|
|
45
|
+
private propagate;
|
|
46
|
+
/**
|
|
47
|
+
* 1. 记录被更新的节点(记录cid, nodeid)
|
|
48
|
+
* 2. ( PAGLocalNode记录callsite(cid, value唯一)),通过1种的nodeID查询Node,拿到Callsite
|
|
49
|
+
* 3. 在addDynamicCall里对传入指针过滤(已处理指针和未处理指针)
|
|
50
|
+
*/
|
|
51
|
+
private onTheFlyDynamicCallSolve;
|
|
52
|
+
private processDynCallSite;
|
|
53
|
+
private processUnknownCallSite;
|
|
54
|
+
private addToReanalyze;
|
|
55
|
+
/**
|
|
56
|
+
* compare interface
|
|
57
|
+
*/
|
|
58
|
+
noAlias(leftValue: Value, rightValue: Value): boolean;
|
|
59
|
+
mayAlias(leftValue: Value, rightValue: Value): boolean;
|
|
60
|
+
getRelatedNodes(value: Value): Set<Value>;
|
|
61
|
+
private processRelatedNode;
|
|
62
|
+
private addIncomingEdgesToWorkList;
|
|
63
|
+
private addOutgoingEdgesToWorkList;
|
|
64
|
+
private detectTypeDiff;
|
|
65
|
+
getTypeDiffMap(): Map<Value, Set<Type>>;
|
|
66
|
+
protected resolveCall(sourceMethod: NodeID, invokeStmt: Stmt): CallSite[];
|
|
67
|
+
getUnhandledFuncs(): FuncID[];
|
|
68
|
+
getHandledFuncs(): FuncID[];
|
|
69
|
+
getPTAConfig(): PointerAnalysisConfig;
|
|
70
|
+
private dumpUnhandledFunctions;
|
|
71
|
+
mergeInstanceFieldMap(src: Map<number, number[]>, dst: Map<number, number[]>): Map<number, number[]>;
|
|
72
|
+
}
|
|
73
73
|
//# sourceMappingURL=PointerAnalysis.d.ts.map
|