arkanalyzer 1.0.40 → 1.0.42

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.
Files changed (115) hide show
  1. package/config/arkanalyzer.json +1 -2
  2. package/lib/Scene.d.ts.map +1 -1
  3. package/lib/Scene.js +9 -2
  4. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts.map +1 -1
  5. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.js +3 -4
  6. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
  7. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +7 -8
  8. package/lib/callgraph/model/CallGraph.d.ts +5 -5
  9. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  10. package/lib/callgraph/model/CallGraph.js +18 -21
  11. package/lib/callgraph/model/CallSite.d.ts +16 -6
  12. package/lib/callgraph/model/CallSite.d.ts.map +1 -1
  13. package/lib/callgraph/model/CallSite.js +48 -8
  14. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts +0 -1
  15. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts.map +1 -1
  16. package/lib/callgraph/model/builder/CallGraphBuilder.js +0 -8
  17. package/lib/callgraph/pointerAnalysis/Pag.d.ts +3 -6
  18. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  19. package/lib/callgraph/pointerAnalysis/Pag.js +6 -29
  20. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +6 -15
  21. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  22. package/lib/callgraph/pointerAnalysis/PagBuilder.js +63 -81
  23. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +2 -1
  24. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  25. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +12 -8
  26. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts +9 -3
  27. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts.map +1 -1
  28. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.js +12 -5
  29. package/lib/callgraph/pointerAnalysis/context/Context.d.ts +69 -0
  30. package/lib/callgraph/pointerAnalysis/context/Context.d.ts.map +1 -0
  31. package/lib/callgraph/pointerAnalysis/context/Context.js +202 -0
  32. package/lib/callgraph/pointerAnalysis/context/ContextItem.d.ts +40 -0
  33. package/lib/callgraph/pointerAnalysis/context/ContextItem.d.ts.map +1 -0
  34. package/lib/callgraph/pointerAnalysis/context/ContextItem.js +99 -0
  35. package/lib/callgraph/pointerAnalysis/context/ContextSelector.d.ts +46 -0
  36. package/lib/callgraph/pointerAnalysis/context/ContextSelector.d.ts.map +1 -0
  37. package/lib/callgraph/pointerAnalysis/context/ContextSelector.js +138 -0
  38. package/lib/core/base/Expr.d.ts +1 -0
  39. package/lib/core/base/Expr.d.ts.map +1 -1
  40. package/lib/core/base/Expr.js +9 -0
  41. package/lib/core/common/ArkIRTransformer.d.ts +1 -0
  42. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  43. package/lib/core/common/ArkIRTransformer.js +58 -2
  44. package/lib/core/common/ArkValueTransformer.d.ts +1 -1
  45. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  46. package/lib/core/common/IRInference.d.ts +1 -1
  47. package/lib/core/common/IRInference.d.ts.map +1 -1
  48. package/lib/core/common/IRInference.js +7 -3
  49. package/lib/core/common/ModelUtils.js +1 -1
  50. package/lib/core/common/SdkUtils.d.ts +2 -1
  51. package/lib/core/common/SdkUtils.d.ts.map +1 -1
  52. package/lib/core/common/SdkUtils.js +33 -23
  53. package/lib/core/common/TypeInference.d.ts.map +1 -1
  54. package/lib/core/common/TypeInference.js +5 -3
  55. package/lib/core/dataflow/DataflowSolver.js +3 -3
  56. package/lib/core/dataflow/UndefinedVariable.js +2 -2
  57. package/lib/core/graph/BaseExplicitGraph.d.ts +1 -0
  58. package/lib/core/graph/BaseExplicitGraph.d.ts.map +1 -1
  59. package/lib/core/graph/BaseExplicitGraph.js +3 -0
  60. package/lib/core/graph/BasicBlock.d.ts.map +1 -1
  61. package/lib/core/graph/BasicBlock.js +9 -4
  62. package/lib/core/graph/Cfg.d.ts.map +1 -1
  63. package/lib/core/graph/Cfg.js +4 -1
  64. package/lib/core/graph/builder/CfgBuilder.d.ts +2 -1
  65. package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
  66. package/lib/core/graph/builder/CfgBuilder.js +54 -10
  67. package/lib/core/graph/builder/ConditionBuilder.d.ts +2 -1
  68. package/lib/core/graph/builder/ConditionBuilder.d.ts.map +1 -1
  69. package/lib/core/graph/builder/ConditionBuilder.js +7 -3
  70. package/lib/core/graph/builder/TrapBuilder.d.ts +19 -1
  71. package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -1
  72. package/lib/core/graph/builder/TrapBuilder.js +195 -68
  73. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  74. package/lib/core/model/ArkMethod.js +3 -4
  75. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
  76. package/lib/core/model/builder/ArkClassBuilder.js +42 -21
  77. package/lib/core/model/builder/ArkImportBuilder.js +28 -25
  78. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  79. package/lib/core/model/builder/ArkMethodBuilder.js +1 -2
  80. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  81. package/lib/core/model/builder/builderUtils.js +2 -1
  82. package/lib/index.d.ts +0 -1
  83. package/lib/index.d.ts.map +1 -1
  84. package/lib/index.js +2 -4
  85. package/lib/pass/Context.d.ts +47 -0
  86. package/lib/pass/Context.d.ts.map +1 -0
  87. package/lib/pass/Context.js +72 -0
  88. package/lib/pass/Dispatcher.d.ts +102 -0
  89. package/lib/pass/Dispatcher.d.ts.map +1 -0
  90. package/lib/pass/Dispatcher.js +202 -0
  91. package/lib/pass/Pass.d.ts +83 -0
  92. package/lib/pass/Pass.d.ts.map +1 -0
  93. package/lib/pass/Pass.js +95 -0
  94. package/lib/pass/ScenePassMgr.d.ts +73 -0
  95. package/lib/pass/ScenePassMgr.d.ts.map +1 -0
  96. package/lib/pass/ScenePassMgr.js +156 -0
  97. package/lib/pass/SceneValidator.d.ts +215 -0
  98. package/lib/pass/SceneValidator.d.ts.map +1 -0
  99. package/lib/pass/SceneValidator.js +339 -0
  100. package/lib/save/JsonPrinter.d.ts.map +1 -1
  101. package/lib/save/JsonPrinter.js +26 -102
  102. package/lib/save/arkir/ArkIRMethodPrinter.d.ts.map +1 -1
  103. package/lib/save/arkir/ArkIRMethodPrinter.js +13 -5
  104. package/lib/save/source/SourceStmt.d.ts +1 -0
  105. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  106. package/lib/save/source/SourceStmt.js +13 -8
  107. package/lib/utils/FileUtils.d.ts.map +1 -1
  108. package/lib/utils/FileUtils.js +13 -6
  109. package/lib/utils/ValueAsserts.d.ts +9 -0
  110. package/lib/utils/ValueAsserts.d.ts.map +1 -0
  111. package/lib/utils/ValueAsserts.js +89 -0
  112. package/package.json +2 -2
  113. package/lib/callgraph/pointerAnalysis/Context.d.ts +0 -38
  114. package/lib/callgraph/pointerAnalysis/Context.d.ts.map +0 -1
  115. package/lib/callgraph/pointerAnalysis/Context.js +0 -154
@@ -18,8 +18,7 @@
18
18
  ],
19
19
  "sdkGlobalFolders": [
20
20
  "component",
21
- "@internal",
22
- "ohos-typescript"
21
+ "@internal"
23
22
  ],
24
23
  "tsconfig": "tsconfig.json"
25
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../src/Scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../src/Scene.ts"],"names":[],"mappings":"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"}
package/lib/Scene.js CHANGED
@@ -576,8 +576,15 @@ class Scene {
576
576
  this.filesMap.set(arkFile.getFileSignature().toMapKey(), arkFile);
577
577
  }
578
578
  buildSdk(sdkName, sdkPath) {
579
- const allFiles = sdkName === SdkUtils_1.SdkUtils.BUILT_IN_NAME ? SdkUtils_1.SdkUtils.fetchBuiltInFiles() :
580
- (0, getAllFiles_1.getAllFiles)(sdkPath, this.options.supportFileExts, this.options.ignoreFileNames);
579
+ var _a;
580
+ let allFiles;
581
+ if (sdkName === SdkUtils_1.SdkUtils.BUILT_IN_NAME) {
582
+ allFiles = SdkUtils_1.SdkUtils.fetchBuiltInFiles(sdkPath);
583
+ (_a = this.getOptions().sdkGlobalFolders) === null || _a === void 0 ? void 0 : _a.push(sdkPath || SdkUtils_1.SdkUtils.BUILT_IN_SDK.path);
584
+ }
585
+ else {
586
+ allFiles = (0, getAllFiles_1.getAllFiles)(sdkPath, this.options.supportFileExts, this.options.ignoreFileNames);
587
+ }
581
588
  allFiles.forEach(file => {
582
589
  logger.trace('=== parse sdk file:', file);
583
590
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"ClassHierarchyAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/algorithm/ClassHierarchyAnalysis.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,qBAAa,sBAAuB,SAAQ,gBAAgB;gBAC5C,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,gBAAgB;IAKtD,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE;IAkDtE,SAAS,CAAC,gBAAgB,IAAI,QAAQ,EAAE;CAI3C"}
1
+ {"version":3,"file":"ClassHierarchyAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/algorithm/ClassHierarchyAnalysis.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,qBAAa,sBAAuB,SAAQ,gBAAgB;gBAC5C,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,gBAAgB;IAKtD,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE;IA2DtE,SAAS,CAAC,gBAAgB,IAAI,QAAQ,EAAE;CAI3C"}
@@ -16,7 +16,6 @@
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.ClassHierarchyAnalysis = void 0;
18
18
  const Expr_1 = require("../../core/base/Expr");
19
- const CallGraph_1 = require("../model/CallGraph");
20
19
  const AbstractAnalysis_1 = require("./AbstractAnalysis");
21
20
  class ClassHierarchyAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
22
21
  constructor(scene, cg, cb) {
@@ -31,7 +30,7 @@ class ClassHierarchyAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
31
30
  }
32
31
  // process anonymous method call
33
32
  this.getParamAnonymousMethod(invokeExpr).forEach(method => {
34
- resolveResult.push(new CallGraph_1.CallSite(invokeStmt, undefined, this.cg.getCallGraphNodeByMethod(method).getID(), callerMethod));
33
+ resolveResult.push(this.cg.getCallSiteManager().newCallSite(invokeStmt, undefined, this.cg.getCallGraphNodeByMethod(method).getID(), callerMethod));
35
34
  });
36
35
  let calleeMethod = this.resolveInvokeExpr(invokeExpr);
37
36
  if (!calleeMethod) {
@@ -39,7 +38,7 @@ class ClassHierarchyAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
39
38
  }
40
39
  if (invokeExpr instanceof Expr_1.ArkStaticInvokeExpr) {
41
40
  // get specific method
42
- resolveResult.push(new CallGraph_1.CallSite(invokeStmt, undefined, this.cg.getCallGraphNodeByMethod(calleeMethod.getSignature()).getID(), callerMethod));
41
+ resolveResult.push(this.cg.getCallSiteManager().newCallSite(invokeStmt, undefined, this.cg.getCallGraphNodeByMethod(calleeMethod.getSignature()).getID(), callerMethod));
43
42
  }
44
43
  else {
45
44
  let declareClass = calleeMethod.getDeclaringArkClass();
@@ -56,7 +55,7 @@ class ClassHierarchyAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
56
55
  return;
57
56
  }
58
57
  if (possibleCalleeMethod && !possibleCalleeMethod.isAbstract()) {
59
- resolveResult.push(new CallGraph_1.CallSite(invokeStmt, undefined, this.cg.getCallGraphNodeByMethod(possibleCalleeMethod.getSignature()).getID(), callerMethod));
58
+ resolveResult.push(this.cg.getCallSiteManager().newCallSite(invokeStmt, undefined, this.cg.getCallGraphNodeByMethod(possibleCalleeMethod.getSignature()).getID(), callerMethod));
60
59
  }
61
60
  });
62
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RapidTypeAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/algorithm/RapidTypeAnalysis.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,qBAAa,iBAAkB,SAAQ,gBAAgB;IAEnD,OAAO,CAAC,gBAAgB,CAAkC;IAE1D,OAAO,CAAC,YAAY,CAA2F;gBAEnG,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS;IAIhC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE;IA8DtE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAmBtD,OAAO,CAAC,+BAA+B;IA4BhC,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI;CAK/G"}
1
+ {"version":3,"file":"RapidTypeAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/algorithm/RapidTypeAnalysis.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,qBAAa,iBAAkB,SAAQ,gBAAgB;IAEnD,OAAO,CAAC,gBAAgB,CAAkC;IAE1D,OAAO,CAAC,YAAY,CAA2F;gBAEnG,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS;IAIhC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE;IAgEtE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAqBtD,OAAO,CAAC,+BAA+B;IA4BhC,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI;CAK/G"}
@@ -39,7 +39,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
40
  exports.RapidTypeAnalysis = void 0;
41
41
  const Expr_1 = require("../../core/base/Expr");
42
- const CallGraph_1 = require("../model/CallGraph");
43
42
  const AbstractAnalysis_1 = require("./AbstractAnalysis");
44
43
  const logger_1 = __importStar(require("../../utils/logger"));
45
44
  const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'RTA');
@@ -59,7 +58,7 @@ class RapidTypeAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
59
58
  }
60
59
  // process anonymous method call
61
60
  this.getParamAnonymousMethod(invokeExpr).forEach(method => {
62
- resolveResult.push(new CallGraph_1.CallSite(invokeStmt, undefined, this.cg.getCallGraphNodeByMethod(method).getID(), callerMethod));
61
+ resolveResult.push(this.cg.getCallSiteManager().newCallSite(invokeStmt, undefined, this.cg.getCallGraphNodeByMethod(method).getID(), callerMethod));
63
62
  });
64
63
  let calleeMethod = this.resolveInvokeExpr(invokeExpr);
65
64
  if (!calleeMethod) {
@@ -67,7 +66,7 @@ class RapidTypeAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
67
66
  }
68
67
  if (invokeExpr instanceof Expr_1.ArkStaticInvokeExpr) {
69
68
  // get specific method
70
- resolveResult.push(new CallGraph_1.CallSite(invokeStmt, undefined, this.cg.getCallGraphNodeByMethod(calleeMethod.getSignature()).getID(), callerMethod));
69
+ resolveResult.push(this.cg.getCallSiteManager().newCallSite(invokeStmt, undefined, this.cg.getCallGraphNodeByMethod(calleeMethod.getSignature()).getID(), callerMethod));
71
70
  }
72
71
  else {
73
72
  let declareClass = calleeMethod.getDeclaringArkClass();
@@ -77,8 +76,7 @@ class RapidTypeAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
77
76
  return;
78
77
  }
79
78
  let possibleCalleeMethod = arkClass.getMethodWithName(calleeMethod.getName());
80
- if (possibleCalleeMethod &&
81
- possibleCalleeMethod.isGenerated() &&
79
+ if (possibleCalleeMethod && possibleCalleeMethod.isGenerated() &&
82
80
  arkClass.getSignature().toString() !== declareClass.getSignature().toString()) {
83
81
  // remove the generated method in extended classes
84
82
  return;
@@ -86,11 +84,12 @@ class RapidTypeAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
86
84
  if (!(possibleCalleeMethod && !possibleCalleeMethod.isAbstract())) {
87
85
  return;
88
86
  }
87
+ let calleeNode = this.cg.getCallGraphNodeByMethod(possibleCalleeMethod.getSignature());
89
88
  if (!this.instancedClasses.has(arkClass.getSignature())) {
90
- this.addIgnoredCalls(arkClass.getSignature(), callerMethod, this.cg.getCallGraphNodeByMethod(possibleCalleeMethod.getSignature()).getID(), invokeStmt);
89
+ this.addIgnoredCalls(arkClass.getSignature(), callerMethod, calleeNode.getID(), invokeStmt);
91
90
  }
92
91
  else {
93
- resolveResult.push(new CallGraph_1.CallSite(invokeStmt, undefined, this.cg.getCallGraphNodeByMethod(possibleCalleeMethod.getSignature()).getID(), callerMethod));
92
+ resolveResult.push(this.cg.getCallSiteManager().newCallSite(invokeStmt, undefined, calleeNode.getID(), callerMethod));
94
93
  }
95
94
  });
96
95
  }
@@ -105,7 +104,7 @@ class RapidTypeAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
105
104
  if (ignoredCalls) {
106
105
  ignoredCalls.forEach(call => {
107
106
  this.cg.addDynamicCallEdge(call.caller, call.callee, call.callStmt);
108
- newCallSites.push(new CallGraph_1.CallSite(call.callStmt, undefined, call.callee, call.caller));
107
+ newCallSites.push(this.cg.getCallSiteManager().newCallSite(call.callStmt, undefined, call.callee, call.caller));
109
108
  });
110
109
  }
111
110
  this.instancedClasses.add(sig);
@@ -3,7 +3,7 @@ import { Stmt } from '../../core/base/Stmt';
3
3
  import { Scene } from '../../Scene';
4
4
  import { ArkMethod } from '../../core/model/ArkMethod';
5
5
  import { BaseEdge, BaseNode, BaseExplicitGraph, NodeID } from '../../core/graph/BaseExplicitGraph';
6
- import { CallSite, DynCallSite, ICallSite } from './CallSite';
6
+ import { CallSite, CallSiteID, CallSiteManager, DynCallSite, ICallSite } from './CallSite';
7
7
  export type Method = MethodSignature;
8
8
  export type FuncID = number;
9
9
  export { CallSite, DynCallSite, ICallSite };
@@ -37,14 +37,12 @@ export declare class CallGraphNode extends BaseNode {
37
37
  }
38
38
  export declare class CallGraph extends BaseExplicitGraph {
39
39
  private scene;
40
- private idToCallSiteMap;
41
- private callSiteToIdMap;
40
+ private csManager;
42
41
  private stmtToCallSitemap;
43
42
  private stmtToDynCallSitemap;
44
43
  private methodToCGNodeMap;
45
44
  private callPairToEdgeMap;
46
45
  private methodToCallSiteMap;
47
- private callSiteNum;
48
46
  private entries;
49
47
  private cgStat;
50
48
  private dummyMainMethodID;
@@ -58,7 +56,7 @@ export declare class CallGraph extends BaseExplicitGraph {
58
56
  removeCallGraphEdge(nodeID: NodeID): void;
59
57
  addDynamicCallInfo(callStmt: Stmt, caller: Method, protentialCallee?: Method): void;
60
58
  addDynamicCallEdge(callerID: NodeID, calleeID: NodeID, callStmt: Stmt): void;
61
- getDynCallsiteByStmt(stmt: Stmt): DynCallSite | undefined;
59
+ getDynCallSiteByStmt(stmt: Stmt): DynCallSite | undefined;
62
60
  addStmtToCallSiteMap(stmt: Stmt, cs: CallSite): boolean;
63
61
  getCallSiteByStmt(stmt: Stmt): CallSite[];
64
62
  addMethodToCallSiteMap(funcID: FuncID, cs: CallSite): void;
@@ -79,5 +77,7 @@ export declare class CallGraph extends BaseExplicitGraph {
79
77
  getDummyMainFuncID(): FuncID | undefined;
80
78
  isUnknownMethod(funcID: FuncID): boolean;
81
79
  getGraphName(): string;
80
+ getCallSiteManager(): CallSiteManager;
81
+ getCallSiteInfo(csID: CallSiteID): string;
82
82
  }
83
83
  //# sourceMappingURL=CallGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CallGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CallGraph.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallGraph.ts"],"names":[],"mappings":"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"}
@@ -53,9 +53,6 @@ class CallGraphEdge extends BaseExplicitGraph_1.BaseEdge {
53
53
  const indirectCallNums = this.indirectCalls.size;
54
54
  const directCallNums = this.directCalls.size;
55
55
  const specialCallNums = this.specialCalls.size;
56
- if ([CallGraphNodeKind.intrinsic, CallGraphNodeKind.constructor].includes(this.getDstNode().getKind())) {
57
- return '';
58
- }
59
56
  if (indirectCallNums !== 0 && directCallNums === 0) {
60
57
  return 'color=red';
61
58
  }
@@ -90,9 +87,6 @@ class CallGraphNode extends BaseExplicitGraph_1.BaseNode {
90
87
  return this.kind === CallGraphNodeKind.blank;
91
88
  }
92
89
  getDotAttr() {
93
- if ([CallGraphNodeKind.intrinsic, CallGraphNodeKind.constructor].includes(this.getKind())) {
94
- return '';
95
- }
96
90
  return 'shape=box';
97
91
  }
98
92
  getDotLabel() {
@@ -105,14 +99,12 @@ exports.CallGraphNode = CallGraphNode;
105
99
  class CallGraph extends BaseExplicitGraph_1.BaseExplicitGraph {
106
100
  constructor(s) {
107
101
  super();
108
- this.idToCallSiteMap = new Map();
109
- this.callSiteToIdMap = new Map();
102
+ this.csManager = new CallSite_1.CallSiteManager();
110
103
  this.stmtToCallSitemap = new Map();
111
104
  this.stmtToDynCallSitemap = new Map();
112
105
  this.methodToCGNodeMap = new Map();
113
106
  this.callPairToEdgeMap = new Map();
114
107
  this.methodToCallSiteMap = new Map();
115
- this.callSiteNum = 0;
116
108
  this.scene = s;
117
109
  this.cgStat = new Statistics_1.CGStat();
118
110
  }
@@ -160,16 +152,7 @@ class CallGraph extends BaseExplicitGraph_1.BaseExplicitGraph {
160
152
  let callerNode = this.getCallGraphNodeByMethod(caller);
161
153
  let calleeNode = this.getCallGraphNodeByMethod(callee);
162
154
  let args = (_a = callStmt.getInvokeExpr()) === null || _a === void 0 ? void 0 : _a.getArgs();
163
- let cs = new CallSite_1.CallSite(callStmt, args, calleeNode.getID(), callerNode.getID());
164
- let csID;
165
- if (!this.callSiteToIdMap.has(cs)) {
166
- csID = this.callSiteNum++;
167
- this.idToCallSiteMap.set(csID, cs);
168
- this.callSiteToIdMap.set(cs, csID);
169
- }
170
- else {
171
- csID = this.callSiteToIdMap.get(cs);
172
- }
155
+ let cs = this.csManager.newCallSite(callStmt, args, calleeNode.getID(), callerNode.getID());
173
156
  if (this.addStmtToCallSiteMap(callStmt, cs)) {
174
157
  // TODO: check stmt exists
175
158
  }
@@ -180,6 +163,7 @@ class CallGraph extends BaseExplicitGraph_1.BaseExplicitGraph {
180
163
  callEdge.getSrcNode().addOutgoingEdge(callEdge);
181
164
  callEdge.getDstNode().addIncomingEdge(callEdge);
182
165
  this.callPairToEdgeMap.set(this.getCallPairString(callerNode.getID(), calleeNode.getID()), callEdge);
166
+ this.edgeNum++;
183
167
  }
184
168
  if (isDirectCall) {
185
169
  callEdge.addDirectCallSite(callStmt);
@@ -205,7 +189,7 @@ class CallGraph extends BaseExplicitGraph_1.BaseExplicitGraph {
205
189
  calleeNode = this.getCallGraphNodeByMethod(protentialCallee);
206
190
  }
207
191
  let args = (_a = callStmt.getInvokeExpr()) === null || _a === void 0 ? void 0 : _a.getArgs();
208
- let cs = new CallSite_1.DynCallSite(callStmt, args, calleeNode === null || calleeNode === void 0 ? void 0 : calleeNode.getID(), callerNode.getID());
192
+ let cs = this.csManager.newDynCallSite(callStmt, args, calleeNode === null || calleeNode === void 0 ? void 0 : calleeNode.getID(), callerNode.getID());
209
193
  this.stmtToDynCallSitemap.set(callStmt, cs);
210
194
  }
211
195
  addDynamicCallEdge(callerID, calleeID, callStmt) {
@@ -217,10 +201,11 @@ class CallGraph extends BaseExplicitGraph_1.BaseExplicitGraph {
217
201
  callEdge.getSrcNode().addOutgoingEdge(callEdge);
218
202
  callEdge.getDstNode().addIncomingEdge(callEdge);
219
203
  this.callPairToEdgeMap.set(this.getCallPairString(callerNode.getID(), calleeNode.getID()), callEdge);
204
+ this.edgeNum++;
220
205
  }
221
206
  callEdge.addInDirectCallSite(callStmt);
222
207
  }
223
- getDynCallsiteByStmt(stmt) {
208
+ getDynCallSiteByStmt(stmt) {
224
209
  return this.stmtToDynCallSitemap.get(stmt);
225
210
  }
226
211
  addStmtToCallSiteMap(stmt, cs) {
@@ -359,5 +344,17 @@ class CallGraph extends BaseExplicitGraph_1.BaseExplicitGraph {
359
344
  getGraphName() {
360
345
  return 'CG';
361
346
  }
347
+ getCallSiteManager() {
348
+ return this.csManager;
349
+ }
350
+ getCallSiteInfo(csID) {
351
+ const callSite = this.csManager.getCallSiteById(csID);
352
+ if (!callSite) {
353
+ return '';
354
+ }
355
+ const callerMethod = this.getMethodByFuncID(callSite.callerFuncID);
356
+ const calleeMethod = this.getMethodByFuncID(callSite.getCalleeFuncID());
357
+ return `CS[${csID}]: {${callerMethod.toString()} -> ${calleeMethod.toString()}}`;
358
+ }
362
359
  }
363
360
  exports.CallGraph = CallGraph;
@@ -1,29 +1,39 @@
1
1
  import { Stmt } from '../../core/base/Stmt';
2
2
  import { Value } from '../../core/base/Value';
3
- import { ContextID } from '../pointerAnalysis/Context';
4
3
  import { FuncID } from './CallGraph';
5
4
  export type CallSiteID = number;
6
5
  export interface ICallSite {
6
+ id: CallSiteID;
7
7
  callStmt: Stmt;
8
8
  args: Value[] | undefined;
9
9
  callerFuncID: FuncID;
10
+ getCalleeFuncID(): FuncID | undefined;
10
11
  }
11
12
  export declare class CallSite implements ICallSite {
13
+ id: CallSiteID;
12
14
  callStmt: Stmt;
13
15
  args: Value[] | undefined;
14
16
  calleeFuncID: FuncID;
15
17
  callerFuncID: FuncID;
16
- constructor(s: Stmt, a: Value[] | undefined, ce: FuncID, cr: FuncID);
18
+ constructor(id: CallSiteID, s: Stmt, a: Value[] | undefined, ce: FuncID, cr: FuncID);
19
+ getCalleeFuncID(): FuncID | undefined;
17
20
  }
18
21
  export declare class DynCallSite implements ICallSite {
22
+ id: CallSiteID;
19
23
  callStmt: Stmt;
20
24
  args: Value[] | undefined;
21
25
  protentialCalleeFuncID: FuncID | undefined;
22
26
  callerFuncID: FuncID;
23
- constructor(s: Stmt, a: Value[] | undefined, ptcCallee: FuncID | undefined, caller: FuncID);
27
+ constructor(id: CallSiteID, s: Stmt, a: Value[] | undefined, ptcCallee: FuncID | undefined, caller: FuncID);
28
+ getCalleeFuncID(): FuncID | undefined;
24
29
  }
25
- export declare class CSCallSite extends CallSite {
26
- cid: ContextID;
27
- constructor(id: ContextID, cs: CallSite);
30
+ export declare class CallSiteManager {
31
+ private idToCallSiteMap;
32
+ private callSiteToIdMap;
33
+ private dynToStaticMap;
34
+ newCallSite(s: Stmt, a: Value[] | undefined, ce: FuncID, cr: FuncID): CallSite;
35
+ newDynCallSite(s: Stmt, a: Value[] | undefined, ptcCallee: FuncID | undefined, caller: FuncID): DynCallSite;
36
+ cloneCallSiteFromDyn(dynCallSite: DynCallSite, calleeFuncID: FuncID): CallSite;
37
+ getCallSiteById(id: CallSiteID): ICallSite | undefined;
28
38
  }
29
39
  //# sourceMappingURL=CallSite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CallSite.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallSite.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,QAAS,YAAW,SAAS;IAC/B,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;gBAEhB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;CAMtE;AAED,qBAAa,WAAY,YAAW,SAAS;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;gBAEhB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM;CAM7F;AAED,qBAAa,UAAW,SAAQ,QAAQ;IAC7B,GAAG,EAAE,SAAS,CAAC;gBAEV,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ;CAI1C"}
1
+ {"version":3,"file":"CallSite.d.ts","sourceRoot":"","sources":["../../../src/callgraph/model/CallSite.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,qBAAa,QAAS,YAAW,SAAS;IAC/B,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;gBAEhB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAQ5E,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED,qBAAa,WAAY,YAAW,SAAS;IAClC,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC1B,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC;gBAEhB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM;IAQnG,eAAe,IAAI,MAAM,GAAG,SAAS;CAG/C;AAED,qBAAa,eAAe;IACxB,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,cAAc,CAA4C;IAE3D,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ;IAQ9E,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;IAQ3G,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ;IAkB9E,eAAe,CAAC,EAAE,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;CAGhE"}
@@ -14,29 +14,69 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.CSCallSite = exports.DynCallSite = exports.CallSite = void 0;
17
+ exports.CallSiteManager = exports.DynCallSite = exports.CallSite = void 0;
18
18
  class CallSite {
19
- constructor(s, a, ce, cr) {
19
+ constructor(id, s, a, ce, cr) {
20
+ this.id = id;
20
21
  this.callStmt = s;
21
22
  this.args = a;
22
23
  this.calleeFuncID = ce;
23
24
  this.callerFuncID = cr;
24
25
  }
26
+ getCalleeFuncID() {
27
+ return this.calleeFuncID;
28
+ }
25
29
  }
26
30
  exports.CallSite = CallSite;
27
31
  class DynCallSite {
28
- constructor(s, a, ptcCallee, caller) {
32
+ constructor(id, s, a, ptcCallee, caller) {
33
+ this.id = id;
29
34
  this.callerFuncID = caller;
30
35
  this.callStmt = s;
31
36
  this.args = a;
32
37
  this.protentialCalleeFuncID = ptcCallee;
33
38
  }
39
+ getCalleeFuncID() {
40
+ return this.protentialCalleeFuncID;
41
+ }
34
42
  }
35
43
  exports.DynCallSite = DynCallSite;
36
- class CSCallSite extends CallSite {
37
- constructor(id, cs) {
38
- super(cs.callStmt, cs.args, cs.calleeFuncID, cs.callerFuncID);
39
- this.cid = id;
44
+ class CallSiteManager {
45
+ constructor() {
46
+ this.idToCallSiteMap = new Map();
47
+ this.callSiteToIdMap = new Map();
48
+ this.dynToStaticMap = new Map();
49
+ }
50
+ newCallSite(s, a, ce, cr) {
51
+ let id = this.idToCallSiteMap.size;
52
+ let callSite = new CallSite(id, s, a, ce, cr);
53
+ this.idToCallSiteMap.set(id, callSite);
54
+ this.callSiteToIdMap.set(callSite, id);
55
+ return callSite;
56
+ }
57
+ newDynCallSite(s, a, ptcCallee, caller) {
58
+ let id = this.idToCallSiteMap.size;
59
+ let callSite = new DynCallSite(id, s, a, ptcCallee, caller);
60
+ this.idToCallSiteMap.set(id, callSite);
61
+ this.callSiteToIdMap.set(callSite, id);
62
+ return callSite;
63
+ }
64
+ cloneCallSiteFromDyn(dynCallSite, calleeFuncID) {
65
+ var _a;
66
+ let clonedCS = (_a = this.dynToStaticMap.get(dynCallSite.id)) !== null && _a !== void 0 ? _a : [];
67
+ let foundCS = clonedCS
68
+ .map(id => this.idToCallSiteMap.get(id))
69
+ .find(cs => cs.calleeFuncID === calleeFuncID);
70
+ if (foundCS) {
71
+ return foundCS;
72
+ }
73
+ let staticCS = this.newCallSite(dynCallSite.callStmt, dynCallSite.args, calleeFuncID, dynCallSite.callerFuncID);
74
+ clonedCS.push(staticCS.id);
75
+ this.dynToStaticMap.set(dynCallSite.id, clonedCS);
76
+ return staticCS;
77
+ }
78
+ getCallSiteById(id) {
79
+ return this.idToCallSiteMap.get(id);
40
80
  }
41
81
  }
42
- exports.CSCallSite = CSCallSite;
82
+ exports.CallSiteManager = CallSiteManager;
@@ -12,7 +12,6 @@ export declare class CallGraphBuilder {
12
12
  buildCHA4WholeProject(displayGeneratedMethod?: boolean): void;
13
13
  buildRapidTypeCallGraph(entries: Method[], displayGeneratedMethod?: boolean): void;
14
14
  private getDCCallee;
15
- private isConstructor;
16
15
  setEntries(): void;
17
16
  }
18
17
  //# sourceMappingURL=CallGraphBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CallGraphBuilder.d.ts","sourceRoot":"","sources":["../../../../src/callgraph/model/builder/CallGraphBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAoC,MAAM,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,qBAAa,gBAAgB;IACzB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,KAAK,CAAQ;gBAET,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK;IAK3B,4BAA4B,IAAI,IAAI;IAWpC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IAgBxC,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IAgChD,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,sBAAsB,GAAE,OAAe,GAAG,IAAI;IAW9F,qBAAqB,CAAC,sBAAsB,GAAE,OAAe,GAAG,IAAI;IAKpE,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,sBAAsB,GAAE,OAAe,GAAG,IAAI;IAYhG,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAId,UAAU,IAAI,IAAI;CAO5B"}
1
+ {"version":3,"file":"CallGraphBuilder.d.ts","sourceRoot":"","sources":["../../../../src/callgraph/model/builder/CallGraphBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAoC,MAAM,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,qBAAa,gBAAgB;IACzB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,KAAK,CAAQ;gBAET,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK;IAK3B,4BAA4B,IAAI,IAAI;IAWpC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IAgBxC,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IA2BhD,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,sBAAsB,GAAE,OAAe,GAAG,IAAI;IAW9F,qBAAqB,CAAC,sBAAsB,GAAE,OAAe,GAAG,IAAI;IAKpE,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,sBAAsB,GAAE,OAAe,GAAG,IAAI;IAYhG,OAAO,CAAC,WAAW;IAIZ,UAAU,IAAI,IAAI;CAO5B"}
@@ -50,7 +50,6 @@ class CallGraphBuilder {
50
50
  }
51
51
  }
52
52
  buildDirectCallGraph(methods) {
53
- var _a;
54
53
  this.buildCGNodes(methods);
55
54
  for (const method of methods) {
56
55
  let cfg = method.getCfg();
@@ -69,10 +68,6 @@ class CallGraphBuilder {
69
68
  if (callee && invokeExpr instanceof Expr_1.ArkStaticInvokeExpr) {
70
69
  this.cg.addDirectOrSpecialCallEdge(method.getSignature(), callee, stmt);
71
70
  }
72
- else if (callee && invokeExpr instanceof Expr_1.ArkInstanceInvokeExpr &&
73
- (this.isConstructor(callee) || ((_a = this.scene.getMethod(callee)) === null || _a === void 0 ? void 0 : _a.isGenerated()))) {
74
- this.cg.addDirectOrSpecialCallEdge(method.getSignature(), callee, stmt, false);
75
- }
76
71
  else {
77
72
  this.cg.addDynamicCallInfo(stmt, method.getSignature(), callee);
78
73
  }
@@ -105,9 +100,6 @@ class CallGraphBuilder {
105
100
  getDCCallee(invokeExpr) {
106
101
  return invokeExpr.getMethodSignature();
107
102
  }
108
- isConstructor(m) {
109
- return m.getMethodSubSignature().getMethodName() === 'constructor';
110
- }
111
103
  setEntries() {
112
104
  let nodesIter = this.cg.getNodesIter();
113
105
  let entries = Array.from(nodesIter)
@@ -6,10 +6,10 @@ import { AbstractExpr } from '../../core/base/Expr';
6
6
  import { AbstractFieldRef, ArkArrayRef, ArkInstanceFieldRef, ArkParameterRef, ArkStaticFieldRef, ArkThisRef } from '../../core/base/Ref';
7
7
  import { Local } from '../../core/base/Local';
8
8
  import { MethodSignature } from '../../core/model/ArkSignature';
9
- import { ContextID } from './Context';
10
9
  import { ExportInfo } from '../../core/model/ArkExport';
11
10
  import { BuiltApiType } from './PTAUtils';
12
11
  import { IPtsCollection } from './PtsDS';
12
+ import { ContextID } from './context/Context';
13
13
  export type PagNodeType = Value;
14
14
  export declare enum PagEdgeKind {
15
15
  Address = 0,
@@ -147,7 +147,7 @@ export declare class PagStaticFieldNode extends PagNode {
147
147
  }
148
148
  export declare class PagThisRefNode extends PagNode {
149
149
  pointToNode: NodeID[];
150
- constructor(id: NodeID, thisRef: ArkThisRef);
150
+ constructor(id: NodeID, cid: number | undefined, thisRef: ArkThisRef);
151
151
  getThisPTNode(): NodeID[];
152
152
  addPTNode(ptNode: NodeID): void;
153
153
  }
@@ -186,7 +186,7 @@ export declare class PagFuncNode extends PagNode {
186
186
  getMethod(): MethodSignature;
187
187
  setThisPt(thisPt: NodeID): void;
188
188
  getThisPt(): NodeID;
189
- setCS(callsite: CallSite): void;
189
+ setCS(callSite: CallSite): void;
190
190
  getCS(): CallSite;
191
191
  setArgsOffset(offset: number): void;
192
192
  getArgsOffset(): number;
@@ -226,9 +226,6 @@ export declare class Pag extends BaseExplicitGraph {
226
226
  private addContextOrExportInfoMap;
227
227
  private addExportInfoMap;
228
228
  private addContextMap;
229
- addPagThisRefNode(value: ArkThisRef): PagNode;
230
- addPagThisLocalNode(ptNode: NodeID, value: Local): PagNode;
231
- getOrNewThisRefNode(thisRefNodeID: NodeID, value: ArkThisRef): PagNode;
232
229
  getOrNewThisLocalNode(cid: ContextID, ptNode: NodeID, value: Local, s?: Stmt): PagNode;
233
230
  hasExportNode(v: ExportInfo): NodeID | undefined;
234
231
  hasCtxNode(cid: ContextID, v: Value): NodeID | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Pag.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Pag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pag.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Pag.ts"],"names":[],"mappings":"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"}