Unweave

internal class Unweave(val transformer: ResettableClassFileTransformer, val inst: Instrumentation, val className: String)

Everything undoing an install takes, the way Patch.Weave is everything applying one takes.

Constructors

Link copied to clipboard
constructor(transformer: ResettableClassFileTransformer, inst: Instrumentation, className: String)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

Runtime name of the patched type. Resolved to live copies at removal rather than snapshotted at install — a pending install's class may have loaded since — and a name is what retransform batches on.

Link copied to clipboard
private val inst: Instrumentation
Link copied to clipboard
private val transformer: ResettableClassFileTransformer

Functions

Link copied to clipboard

Deregister only; the advice stays woven until a retransform covering className runs. Split from the retransform because that is where the cost is — a safepoint and a class reload — and N patches need one of those, not N.

Link copied to clipboard

Whether any copy of className is loaded right now. Live rather than an install-time flag, for the same reason retransform re-resolves by name: a pending patch's class can arrive at any time. Read only to explain a report, which keeps the scan off every other path.