Package jadx.core.dex.instructions
Class IfNode
- java.lang.Object
-
- All Implemented Interfaces:
IAttributeNode,ILineAttributeNode
public class IfNode extends GotoNode
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidchangeCondition(IfOp op, InsnArg arg1, InsnArg arg2)InsnNodecopy()Make copy of InsnNode object.BlockNodegetElseBlock()IfOpgetOp()intgetTarget()BlockNodegetThenBlock()voidinitBlocks(BlockNode curBlock)voidinvertCondition()booleanisSame(InsnNode obj)'Soft' equals, don't compare arguments, only instruction specific parameters.voidnormalize()Change 'a != false' to 'a == true'booleanreplaceTargetBlock(BlockNode origin, BlockNode replace)java.lang.StringtoString()-
Methods inherited from class jadx.core.dex.nodes.InsnNode
addArg, addLit, addLit, addReg, addReg, appendArgs, appendAttributes, attachArg, attributesString, baseString, canRemoveResult, canReorder, canThrowException, containsArg, containsVar, containsWrappedInsn, copy, copyAttributesFrom, copyCommonParams, copyWithNewSsaVar, copyWithoutResult, copyWithoutSsa, equals, getArg, getArgIndex, getArgList, getArgsCount, getArguments, getOffset, getRegisterArgs, getResult, getType, hashCode, inheritMetadata, isConstInsn, isDeepEquals, rebindArgs, removeArg, removeArg, replaceArg, setArg, setOffset, setResult, visitArgs, visitArgs, visitInsns, visitInsns, wrapArg
-
Methods inherited from class jadx.core.dex.attributes.nodes.LineAttrNode
addSourceLineFrom, copyLines, getDefPosition, getSourceLine, setDefPosition, setSourceLine
-
Methods inherited from class jadx.core.dex.attributes.AttrNode
add, addAttr, addAttr, addAttr, addAttrs, clearAttributes, contains, contains, copyAttributeFrom, copyAttributesFrom, get, getAll, getAnnotation, getAttributesString, getAttributesStringsList, isAttrStorageEmpty, remove, remove, removeAttr, rewriteAttributeFrom, unloadAttributes
-
-
-
-
Field Detail
-
op
protected IfOp op
-
-
Method Detail
-
getOp
public IfOp getOp()
-
invertCondition
public void invertCondition()
-
normalize
public void normalize()
Change 'a != false' to 'a == true'
-
initBlocks
public void initBlocks(BlockNode curBlock)
- Overrides:
initBlocksin classTargetInsnNode
-
replaceTargetBlock
public boolean replaceTargetBlock(BlockNode origin, BlockNode replace)
- Overrides:
replaceTargetBlockin classTargetInsnNode
-
getThenBlock
public BlockNode getThenBlock()
-
getElseBlock
public BlockNode getElseBlock()
-
isSame
public boolean isSame(InsnNode obj)
Description copied from class:InsnNode'Soft' equals, don't compare arguments, only instruction specific parameters.
-
copy
public InsnNode copy()
Description copied from class:InsnNodeMake copy of InsnNode object.
NOTE: can't copy instruction with result argument (SSA variable can't be used in two different assigns).
Prefer use next methods:InsnNode.copyWithoutResult()to explicitly state that result not neededInsnNode.copy(RegisterArg)to provide new result argInsnNode.copyWithNewSsaVar(MethodNode)to make new SSA variable for result arg
-
-