Class CallbackInjector
java.lang.Object
org.spongepowered.asm.mixin.injection.code.Injector
org.spongepowered.asm.mixin.injection.callback.CallbackInjector
This class is responsible for generating the bytecode for injected callbacks,
for details of usage see
@Inject.-
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, isInterface, isStatic, logger, methodArgs, methodNode, returnType -
Constructor Summary
ConstructorsConstructorDescriptionCallbackInjector(InjectionInfo info, boolean cancellable, LocalCapture localCapture, String identifier) Make a new CallbackInjector with the supplied args -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddTargetNode(InjectorTarget injectorTarget, List<InjectionNodes.InjectionNode> myNodes, org.objectweb.asm.tree.AbstractInsnNode node, 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, String id, String desc, boolean store) protected booleanisStatic()Explicit to avoid creation of synthetic accessorprotected voidpreInject(Target target, InjectionNodes.InjectionNode node) protected voidsanityCheck(Target target, List<InjectionPoint> injectionPoints) Methods inherited from class org.spongepowered.asm.mixin.injection.code.Injector
addTargetNode, canCoerce, canCoerce, canCoerce, checkCoerce, checkTargetForNode, checkTargetModifiers, find, findTargetNodes, inject, invokeHandler, invokeHandler, invokeHandlerWithArgs, invokeHandlerWithArgs, postInject, preInject, pushArgs, pushArgs, storeArgs, storeArgs, storeArgs, storeArgs, throwException, toString, validateParams
-
Constructor Details
-
CallbackInjector
public CallbackInjector(InjectionInfo info, boolean cancellable, LocalCapture localCapture, 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(InjectorTarget injectorTarget, List<InjectionNodes.InjectionNode> myNodes, org.objectweb.asm.tree.AbstractInsnNode node, Set<InjectionPoint> nominators) - Overrides:
addTargetNodein classInjector
-
preInject
-
inject
-
instanceCallbackInfo
protected void instanceCallbackInfo(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback, String id, 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
-