didi / booster

🚀Optimizer for mobile applications
https://booster.johnsonlee.io
Apache License 2.0
4.9k stars 579 forks source link

线程重命名里,请问Opcodes.INVOKESPECIAL和Opcodes.NEW分开处理的原因是什么呢 #429

Closed maocanmao closed 1 year ago

maocanmao commented 1 year ago

Opcodes.INVOKESPECIAL 里应该已经包括了调用构造函数new thread的场景,是哪种调用方式的场景下需要单独进行Opcodes.NEW的处理呢

johnsonlee commented 1 year ago

两个场景:

  1. 直接 new 一个 Thread 或者 Thread 的子类
  2. 自定义 Thread 的构造中调用 super(...)