jobject
and jmetadata
handles whose lifetimes are
dependent on associated IndirectHotSpotObjectConstantImpl
and
MetaspaceHandleObject
wrapper objects respectively.
The general theory of operation is that all wrappers are created by calling into the VM which
calls back out to actually create the wrapper instance. During the call the VM keeps the object
or metadata reference alive through the use of handles. Once the call completes the wrapper
object is registered here and will be scanned during metadata scanning. The weakness of the
reference to the wrapper object allows the handles to be reclaimed when they are no longer used.
Modifier and Type | Field and Description |
---|---|
private final long | handle
A |
private final boolean |
Access | Constructor and Description |
---|---|
private |
Modifier and Type | Method and Description |
---|---|
pack-priv static void | |
pack-priv boolean | doCleanup()
Implements abstract jdk. this.handle .
|
handle | back to summary |
---|---|
private final long handle A |
isJObject | back to summary |
---|---|
private final boolean isJObject Specifies if |
HandleCleaner | back to summary |
---|---|
private HandleCleaner(Object wrapper, long handle, boolean isJObject) |
create | back to summary |
---|---|
pack-priv static void create(Object wrapper, long handle) Registers a cleaner for
|
doCleanup | back to summary |
---|---|
pack-priv boolean doCleanup() Implements abstract jdk. Releases the resource associated with
|