Package io.quarkus.deployment.recording
Class BytecodeRecorderImpl.DeferredParameter
java.lang.Object
io.quarkus.deployment.recording.BytecodeRecorderImpl.DeferredParameter
- Direct Known Subclasses:
BytecodeRecorderImpl.DeferredArrayStoreParameter
- Enclosing class:
- BytecodeRecorderImpl
A bytecode serialized value. This is an abstraction over ResultHandle, as ResultHandle
cannot span methods.
Instances of DeferredParameter can be used in different methods
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) abstract io.quarkus.gizmo.ResultHandledoLoad(BytecodeRecorderImpl.MethodContext context, io.quarkus.gizmo.MethodCreator method, io.quarkus.gizmo.ResultHandle array) The function that is called to read the value for use.(package private) void(package private) final voidfunction that prepares the value for use.
-
Field Details
-
prepared
boolean prepared
-
-
Constructor Details
-
DeferredParameter
DeferredParameter()
-
-
Method Details
-
doLoad
abstract io.quarkus.gizmo.ResultHandle doLoad(BytecodeRecorderImpl.MethodContext context, io.quarkus.gizmo.MethodCreator method, io.quarkus.gizmo.ResultHandle array) The function that is called to read the value for use. This may be by reading the value from the Object[] array, or is can be a direct ldc instruction in the case of primitives.Code in this method is run in a single instruction group, so large objects should be serialized in the
doPrepare(MethodContext)method insteadThis should not be called directly, but by
BytecodeRecorderImpl.SplitMethodContext.loadDeferred(DeferredParameter) -
prepare
function that prepares the value for use. This is where objects should actually be loaded into the main array- Parameters:
context- The main method context.
-
doPrepare
-