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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescription(package private) 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.(package private) void
(package private) final void
function 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
-