Branch if reference
is null
Bytecode
Type | Description |
u1 | ifnull opcode = 0xC6 (198) |
s2 | branch-offset |
Description
The value must of type reference
. It is popped from the operand
stack. If value is null
, the unsigned branchbyte1 and branchbyte2
are used to construct a signed 16-bit offset, where the offset is calculated to be (branchbyte1
<< 8) | branchbyte2. Execution then proceeds at that offset from the address of the opcode of this
ifnull instruction. The target address must be that of an opcode of an instruction
within the method that contains this ifnull instruction.
Otherwise, execution proceeds at the address of the instruction following this ifnull instruction.
Example
aload_1
; push the object reference in local
variable 1 onto the stack
ifnull Label ; if local variable 1 is null, jump to
Label
return ; return
if local variable 1 isn't null
Label:
; execution continues here if local variable 1 is null...
Notes
Addresses are measured in bytes from the start of the bytecode (i.e. address 0 is the first byte in the bytecode of the currently executing method).