Class CodeEmitter

    • Constructor Detail

      • CodeEmitter

        CodeEmitter​(ClassEmitter ce,
                    org.objectweb.asm.MethodVisitor mv,
                    int access,
                    Signature sig,
                    org.objectweb.asm.Type[] exceptionTypes)
      • CodeEmitter

        public CodeEmitter​(CodeEmitter wrap)
    • Method Detail

      • isStaticHook

        public boolean isStaticHook()
      • getSignature

        public Signature getSignature()
      • getReturnType

        public org.objectweb.asm.Type getReturnType()
      • getMethodInfo

        public MethodInfo getMethodInfo()
      • end_method

        public void end_method()
      • begin_block

        public Block begin_block()
      • catch_exception

        public void catch_exception​(Block block,
                                    org.objectweb.asm.Type exception)
      • goTo

        public void goTo​(org.objectweb.asm.Label label)
      • ifnull

        public void ifnull​(org.objectweb.asm.Label label)
      • ifnonnull

        public void ifnonnull​(org.objectweb.asm.Label label)
      • if_jump

        public void if_jump​(int mode,
                            org.objectweb.asm.Label label)
      • if_icmp

        public void if_icmp​(int mode,
                            org.objectweb.asm.Label label)
      • if_cmp

        public void if_cmp​(org.objectweb.asm.Type type,
                           int mode,
                           org.objectweb.asm.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​(org.objectweb.asm.Type prev,
                         org.objectweb.asm.Type type)
      • monitorenter

        public void monitorenter()
      • monitorexit

        public void monitorexit()
      • math

        public void math​(int op,
                         org.objectweb.asm.Type type)
      • array_load

        public void array_load​(org.objectweb.asm.Type type)
      • array_store

        public void array_store​(org.objectweb.asm.Type type)
      • cast_numeric

        public void cast_numeric​(org.objectweb.asm.Type from,
                                 org.objectweb.asm.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​(java.lang.String value)
      • newarray

        public void newarray()
      • newarray

        public void newarray​(org.objectweb.asm.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)
      • skipArgs

        private int skipArgs​(int numArgs)
      • load_local

        private void load_local​(org.objectweb.asm.Type t,
                                int pos)
      • store_local

        private void store_local​(org.objectweb.asm.Type t,
                                 int pos)
      • 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​(java.lang.String name)
      • putfield

        public void putfield​(java.lang.String name)
      • super_getfield

        public void super_getfield​(java.lang.String name,
                                   org.objectweb.asm.Type type)
      • super_putfield

        public void super_putfield​(java.lang.String name,
                                   org.objectweb.asm.Type type)
      • super_getstatic

        public void super_getstatic​(java.lang.String name,
                                    org.objectweb.asm.Type type)
      • super_putstatic

        public void super_putstatic​(java.lang.String name,
                                    org.objectweb.asm.Type type)
      • getfield

        public void getfield​(org.objectweb.asm.Type owner,
                             java.lang.String name,
                             org.objectweb.asm.Type type)
      • putfield

        public void putfield​(org.objectweb.asm.Type owner,
                             java.lang.String name,
                             org.objectweb.asm.Type type)
      • getstatic

        public void getstatic​(org.objectweb.asm.Type owner,
                              java.lang.String name,
                              org.objectweb.asm.Type type)
      • putstatic

        public void putstatic​(org.objectweb.asm.Type owner,
                              java.lang.String name,
                              org.objectweb.asm.Type type)
      • emit_field

        void emit_field​(int opcode,
                        org.objectweb.asm.Type ctype,
                        java.lang.String name,
                        org.objectweb.asm.Type ftype)
      • super_invoke

        public void super_invoke()
      • super_invoke

        public void super_invoke​(Signature sig)
      • invoke_constructor

        public void invoke_constructor​(org.objectweb.asm.Type type)
      • super_invoke_constructor

        public void super_invoke_constructor()
      • invoke_constructor_this

        public void invoke_constructor_this()
      • emit_invoke

        private void emit_invoke​(int opcode,
                                 org.objectweb.asm.Type type,
                                 Signature sig,
                                 boolean isInterface)
      • invoke_interface

        public void invoke_interface​(org.objectweb.asm.Type owner,
                                     Signature sig)
      • invoke_virtual

        public void invoke_virtual​(org.objectweb.asm.Type owner,
                                   Signature sig)
      • invoke_static

        @Deprecated
        public void invoke_static​(org.objectweb.asm.Type owner,
                                  Signature sig)
        Deprecated.
      • invoke_static

        public void invoke_static​(org.objectweb.asm.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​(org.objectweb.asm.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​(org.objectweb.asm.Type type)
      • emit_type

        private void emit_type​(int opcode,
                               org.objectweb.asm.Type type)
      • aaload

        public void aaload​(int index)
      • aaload

        public void aaload()
      • aastore

        public void aastore()
      • athrow

        public void athrow()
      • make_label

        public org.objectweb.asm.Label make_label()
      • make_local

        public Local make_local()
      • make_local

        public Local make_local​(org.objectweb.asm.Type type)
      • checkcast_this

        public void checkcast_this()
      • checkcast

        public void checkcast​(org.objectweb.asm.Type type)
      • instance_of

        public void instance_of​(org.objectweb.asm.Type type)
      • instance_of_this

        public void instance_of_this()
      • process_switch

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

        private static boolean isSorted​(int[] keys)
      • mark

        public void mark​(org.objectweb.asm.Label label)
      • mark

        org.objectweb.asm.Label mark()
      • 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​(org.objectweb.asm.Type type,
                                    java.lang.String msg)
      • box

        public void box​(org.objectweb.asm.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​(org.objectweb.asm.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​(org.objectweb.asm.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​(org.objectweb.asm.Type type)
        Unboxes the object on the top of the stack. If the object is null, the unboxed primitive value becomes zero.
      • invoke

        public void invoke​(MethodInfo method,
                           org.objectweb.asm.Type virtualType)
      • invoke

        public void invoke​(MethodInfo method)