public final void setStart(InstructionHandle start) { // Call notifyTargetChanging *before* modifying this, // as the code triggered by notifyTargetChanging // depends on this pointing to the 'old' start. notifyTargetChanging(); this.start = start; // call notifyTargetChanged *after* modifying this, // as the code triggered by notifyTargetChanged // depends on this pointing to the 'new' start. notifyTargetChanged(); }
public final void setEnd(InstructionHandle end) { // call notifyTargetChanging *before* modifying this, // as the code triggered by notifyTargetChanging // depends on this pointing to the 'old' end. // Unregister 'this' from the HashSet held by the 'old' end. notifyTargetChanging(); this.end = end; // call notifyTargetChanged *after* modifying this, // as the code triggered by notifyTargetChanged // depends on this pointing to the 'new' end. // Register 'this' in the HashSet held by the 'new' end. notifyTargetChanged(); }