InstructionList when one or multiple disposed instructions are still being referenced by an InstructionTargeter object. I.e. the
InstructionTargeter has to be notified that (one of) the InstructionHandle it is referencing is being removed from the
InstructionList and thus not valid anymore.
Making this an exception instead of a return value forces the user to handle these case explicitly in a try { ... } catch. The following code illustrates how this may be done:
...
try {
il.delete(start_ih, end_ih);
} catch (TargetLostException e) {
for (InstructionHandle target : e.getTargets()) {
for (InstructionTargeter targeter : target.getTargeters()) {
targeter.updateTarget(target, new_target);
}
}
}
InstructionHandle, InstructionList, InstructionTargeter
| Modifier and Type | Field and Description |
|---|---|
| private static final long | |
| private final InstructionHandle[] |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| public InstructionHandle[] | Returns: list of instructions still being targeted.Gets the list of instructions still being targeted. |
| serialVersionUID | back to summary |
|---|---|
| private static final long serialVersionUID | |
| targets | back to summary |
|---|---|
private final InstructionHandle[] targets
| |
| TargetLostException | back to summary |
|---|---|
| pack-priv TargetLostException(final InstructionHandle[] targets, final String message) | |
| getTargets | back to summary |
|---|---|
| public InstructionHandle[] getTargets() Gets the list of instructions still being targeted.
| |