Class CallbackInjector
java.lang.Object
org.spongepowered.asm.mixin.injection.code.Injector
org.spongepowered.asm.mixin.injection.callback.CallbackInjector
public class CallbackInjector extends Injector
This class is responsible for generating the bytecode for injected callbacks
-
Nested Class Summary
Nested classes/interfaces inherited from class org.spongepowered.asm.mixin.injection.code.Injector
Injector.InjectorData, Injector.TargetNode -
Field Summary
Fields inherited from class org.spongepowered.asm.mixin.injection.code.Injector
annotationType, classNode, info, isStatic, logger, methodArgs, methodNode, returnType -
Constructor Summary
Constructors Constructor Description CallbackInjector(InjectionInfo info, boolean cancellable, LocalCapture localCapture, java.lang.String identifier)Make a new CallbackInjector with the supplied args -
Method Summary
Modifier and Type Method Description protected voidaddTargetNode(Target target, java.util.List<InjectionNodes.InjectionNode> myNodes, org.objectweb.asm.tree.AbstractInsnNode node, java.util.Set<InjectionPoint> nominators)protected voidinject(Target target, InjectionNodes.InjectionNode node)protected voidinjectCancellationCode(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback)if (e.isCancelled()) return e.getReturnValue();protected voidinjectReturnCode(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback)Inject the appropriate return code for the method typeprotected voidinstanceCallbackInfo(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback, java.lang.String id, java.lang.String desc, boolean store)protected booleanisStatic()Explicit to avoid creation of synthetic accessorprotected voidsanityCheck(Target target, java.util.List<InjectionPoint> injectionPoints)Methods inherited from class org.spongepowered.asm.mixin.injection.code.Injector
canCoerce, canCoerce, canCoerce, checkCoerce, checkTargetForNode, checkTargetModifiers, find, findTargetNodes, inject, invokeHandler, invokeHandler, invokeHandlerWithArgs, invokeHandlerWithArgs, postInject, pushArgs, pushArgs, storeArgs, storeArgs, throwException, toString, validateParamsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Constructor Details
-
CallbackInjector
public CallbackInjector(InjectionInfo info, boolean cancellable, LocalCapture localCapture, java.lang.String identifier)Make a new CallbackInjector with the supplied args- Parameters:
info- information about this injectorcancellable- True if injections performed by this injector should be cancellablelocalCapture- Local variable capture behaviour
-
-
Method Details
-
sanityCheck
- Overrides:
sanityCheckin classInjector
-
addTargetNode
protected void addTargetNode(Target target, java.util.List<InjectionNodes.InjectionNode> myNodes, org.objectweb.asm.tree.AbstractInsnNode node, java.util.Set<InjectionPoint> nominators)- Overrides:
addTargetNodein classInjector
-
inject
-
instanceCallbackInfo
protected void instanceCallbackInfo(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback, java.lang.String id, java.lang.String desc, boolean store)- Parameters:
callback- callback handleid- callback iddesc- constructor descriptorstore- true if storing in a local, false if this is happening at an invoke
-
injectCancellationCode
protected void injectCancellationCode(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback)if (e.isCancelled()) return e.getReturnValue();- Parameters:
callback- callback handle
-
injectReturnCode
protected void injectReturnCode(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback)Inject the appropriate return code for the method type- Parameters:
callback- callback handle
-
isStatic
protected boolean isStatic()Explicit to avoid creation of synthetic accessor- Returns:
- true if the target method is static
-