invalidate(im);
if (im != null) { invalidate(im); }
  private void handleOverriddenMethods (VM_Class c) {    VM_Class sc = c.getSuperClass();    if (sc == null)      return;                   // c == java.lang.Object.    // for each virtual method of sc, if it is overriden by     // a virtual method declared by c, then handle any required invalidations.    VM_Method[] sc_methods = sc.getVirtualMethods();    VM_Method[] c_methods = c.getVirtualMethods();    for (int i = 0; i < sc_methods.length; i++) {      if (sc_methods[i] != c_methods[i]) {        VM_Method overridden = sc_methods[i];        java.util.Iterator invalidatedMethods =             db.invalidatedByOverriddenMethod(overridden);        if (invalidatedMethods != null) {          while (invalidatedMethods.hasNext()) {            int cmid = ((Integer)invalidatedMethods.next()).intValue();            VM_CompiledMethod im = VM_CompiledMethods.getCompiledMethod(cmid);            invalidate(im);          }          db.removeNotOverriddenDependency(overridden);        }      }    }  }