Class CodeEmitter


public class CodeEmitter extends LocalVariablesSorter
Author:
Juozas Baliuka, Chris Nokleberg
  • Field Details

  • Constructor Details

  • Method Details

    • isStaticHook

      public boolean isStaticHook()
    • getSignature

      public Signature getSignature()
    • getReturnType

      public Type getReturnType()
    • getMethodInfo

      public MethodInfo getMethodInfo()
    • getClassEmitter

      public ClassEmitter getClassEmitter()
    • end_method

      public void end_method()
    • begin_block

      public Block begin_block()
    • catch_exception

      public void catch_exception(Block block, Type exception)
    • goTo

      public void goTo(Label label)
    • ifnull

      public void ifnull(Label label)
    • ifnonnull

      public void ifnonnull(Label label)
    • if_jump

      public void if_jump(int mode, Label label)
    • if_icmp

      public void if_icmp(int mode, Label label)
    • if_cmp

      public void if_cmp(Type type, int mode, Label label)
    • pop

      public void pop()
    • pop2

      public void pop2()
    • dup

      public void dup()
    • dup2

      public void dup2()
    • dup_x1

      public void dup_x1()
    • dup_x2

      public void dup_x2()
    • dup2_x1

      public void dup2_x1()
    • dup2_x2

      public void dup2_x2()
    • swap

      public void swap()
    • aconst_null

      public void aconst_null()
    • swap

      public void swap(Type prev, Type type)
    • monitorenter

      public void monitorenter()
    • monitorexit

      public void monitorexit()
    • math

      public void math(int op, Type type)
    • array_load

      public void array_load(Type type)
    • array_store

      public void array_store(Type type)
    • cast_numeric

      public void cast_numeric(Type from, Type to)
      Casts from one primitive numeric type to another
    • push

      public void push(int i)
    • push

      public void push(long value)
    • push

      public void push(float value)
    • push

      public void push(double value)
    • push

      public void push(String value)
    • newarray

      public void newarray()
    • newarray

      public void newarray(Type type)
    • arraylength

      public void arraylength()
    • load_this

      public void load_this()
    • load_args

      public void load_args()
      Pushes all of the arguments of the current method onto the stack.
    • load_arg

      public void load_arg(int index)
      Pushes the specified argument of the current method onto the stack.
      Parameters:
      index - the zero-based index into the argument list
    • load_args

      public void load_args(int fromArg, int count)
    • iinc

      public void iinc(Local local, int amount)
    • store_local

      public void store_local(Local local)
    • load_local

      public void load_local(Local local)
    • return_value

      public void return_value()
    • getfield

      public void getfield(String name)
    • putfield

      public void putfield(String name)
    • super_getfield

      public void super_getfield(String name, Type type)
    • super_putfield

      public void super_putfield(String name, Type type)
    • super_getstatic

      public void super_getstatic(String name, Type type)
    • super_putstatic

      public void super_putstatic(String name, Type type)
    • getfield

      public void getfield(Type owner, String name, Type type)
    • putfield

      public void putfield(Type owner, String name, Type type)
    • getstatic

      public void getstatic(Type owner, String name, Type type)
    • putstatic

      public void putstatic(Type owner, String name, Type type)
    • super_invoke

      public void super_invoke()
    • super_invoke

      public void super_invoke(Signature sig)
    • invoke_constructor

      public void invoke_constructor(Type type)
    • super_invoke_constructor

      public void super_invoke_constructor()
    • invoke_constructor_this

      public void invoke_constructor_this()
    • invoke_interface

      public void invoke_interface(Type owner, Signature sig)
    • invoke_virtual

      public void invoke_virtual(Type owner, Signature sig)
    • invoke_static

      @Deprecated public void invoke_static(Type owner, Signature sig)
      Deprecated.
    • invoke_static

      public void invoke_static(Type owner, Signature sig, boolean isInterface)
    • invoke_virtual_this

      public void invoke_virtual_this(Signature sig)
    • invoke_static_this

      public void invoke_static_this(Signature sig)
    • invoke_constructor

      public void invoke_constructor(Type type, Signature sig)
    • invoke_constructor_this

      public void invoke_constructor_this(Signature sig)
    • super_invoke_constructor

      public void super_invoke_constructor(Signature sig)
    • new_instance_this

      public void new_instance_this()
    • new_instance

      public void new_instance(Type type)
    • aaload

      public void aaload(int index)
    • aaload

      public void aaload()
    • aastore

      public void aastore()
    • athrow

      public void athrow()
    • make_label

      public Label make_label()
    • make_local

      public Local make_local()
    • make_local

      public Local make_local(Type type)
    • checkcast_this

      public void checkcast_this()
    • checkcast

      public void checkcast(Type type)
    • instance_of

      public void instance_of(Type type)
    • instance_of_this

      public void instance_of_this()
    • process_switch

      public void process_switch(int[] keys, ProcessSwitchCallback callback)
    • process_switch

      public void process_switch(int[] keys, ProcessSwitchCallback callback, boolean useTable)
    • mark

      public void mark(Label label)
    • push

      public void push(boolean value)
    • not

      public void not()
      Toggles the integer on the top of the stack from 1 to 0 or vice versa
    • throw_exception

      public void throw_exception(Type type, String msg)
    • box

      public void box(Type type)
      If the argument is a primitive class, replaces the primitive value on the top of the stack with the wrapped (Object) equivalent. For example, char -> Character. If the class is Void, a null is pushed onto the stack instead.
      Parameters:
      type - the class indicating the current type of the top stack value
    • unbox

      public void unbox(Type type)
      If the argument is a primitive class, replaces the object on the top of the stack with the unwrapped (primitive) equivalent. For example, Character -> char.
      Parameters:
      type - the class indicating the desired type of the top stack value
    • create_arg_array

      public void create_arg_array()
      Allocates and fills an Object[] array with the arguments to the current method. Primitive values are inserted as their boxed (Object) equivalents.
    • zero_or_null

      public void zero_or_null(Type type)
      Pushes a zero onto the stack if the argument is a primitive class, or a null otherwise.
    • unbox_or_zero

      public void unbox_or_zero(Type type)
      Unboxes the object on the top of the stack. If the object is null, the unboxed primitive value becomes zero.
    • visitMaxs

      public void visitMaxs(int maxStack, int maxLocals)
      Description copied from class: MethodVisitor
      Visits the maximum stack size and the maximum number of local variables of the method.
      Overrides:
      visitMaxs in class LocalVariablesSorter
      Parameters:
      maxStack - maximum stack size of the method.
      maxLocals - maximum number of local variables for the method.
    • invoke

      public void invoke(MethodInfo method, Type virtualType)
    • invoke

      public void invoke(MethodInfo method)