org.jf.dexlib2.Opcode.isStaticFieldAccessor()方法的使用及代码示例

x33g5p2x  于2022-01-26 转载在 其他  
字(2.4k)|赞(0)|评价(0)|浏览(113)

本文整理了Java中org.jf.dexlib2.Opcode.isStaticFieldAccessor()方法的一些代码示例,展示了Opcode.isStaticFieldAccessor()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Opcode.isStaticFieldAccessor()方法的具体详情如下:
包路径:org.jf.dexlib2.Opcode
类名称:Opcode
方法名:isStaticFieldAccessor

Opcode.isStaticFieldAccessor介绍

暂无

代码示例

代码示例来源:origin: JesusFreke/smali

private boolean analyzePutGetVolatile(@Nonnull AnalyzedInstruction analyzedInstruction, boolean analyzeResult) {
  FieldReference field = (FieldReference)((ReferenceInstruction)analyzedInstruction.instruction).getReference();
  String fieldType = field.getType();
  Opcode originalOpcode = analyzedInstruction.instruction.getOpcode();
  Opcode opcode = classPath.getFieldInstructionMapper().getAndCheckDeodexedOpcode(
      fieldType, originalOpcode);
  Instruction deodexedInstruction;
  if (originalOpcode.isStaticFieldAccessor()) {
    OneRegisterInstruction instruction = (OneRegisterInstruction)analyzedInstruction.instruction;
    deodexedInstruction = new ImmutableInstruction21c(opcode, instruction.getRegisterA(), field);
  } else {
    TwoRegisterInstruction instruction = (TwoRegisterInstruction)analyzedInstruction.instruction;
    deodexedInstruction = new ImmutableInstruction22c(opcode, instruction.getRegisterA(),
        instruction.getRegisterB(), field);
  }
  analyzedInstruction.setDeodexedInstruction(deodexedInstruction);
  if (analyzeResult) {
    analyzeInstruction(analyzedInstruction);
  }
  return true;
}

代码示例来源:origin: org.smali/dexlib2

private boolean analyzePutGetVolatile(@Nonnull AnalyzedInstruction analyzedInstruction, boolean analyzeResult) {
  FieldReference field = (FieldReference)((ReferenceInstruction)analyzedInstruction.instruction).getReference();
  String fieldType = field.getType();
  Opcode originalOpcode = analyzedInstruction.instruction.getOpcode();
  Opcode opcode = classPath.getFieldInstructionMapper().getAndCheckDeodexedOpcode(
      fieldType, originalOpcode);
  Instruction deodexedInstruction;
  if (originalOpcode.isStaticFieldAccessor()) {
    OneRegisterInstruction instruction = (OneRegisterInstruction)analyzedInstruction.instruction;
    deodexedInstruction = new ImmutableInstruction21c(opcode, instruction.getRegisterA(), field);
  } else {
    TwoRegisterInstruction instruction = (TwoRegisterInstruction)analyzedInstruction.instruction;
    deodexedInstruction = new ImmutableInstruction22c(opcode, instruction.getRegisterA(),
        instruction.getRegisterB(), field);
  }
  analyzedInstruction.setDeodexedInstruction(deodexedInstruction);
  if (analyzeResult) {
    analyzeInstruction(analyzedInstruction);
  }
  return true;
}

相关文章