if (compiledMethod == null) return;
if (compiledMethod.isObsolete()) return;
  static synchronized void setCompiledMethodObsolete(VM_CompiledMethod compiledMethod) {    if (compiledMethod == null) return;    int	cmid = compiledMethod.getId();    // Currently, we avoid setting methods of java.lang.Object obsolete.    // This is because the TIBs for arrays point to the original version    // and are not updated on recompilation.    // !!TODO: When replacing a java.lang.Object method, find arrays in JTOC    //	and update TIB to use newly recompiled method.    if (compiledMethod.getMethod().declaringClass.isJavaLangObjectType())      return;    if (VM.VerifyAssertions) {      // Any good reason this could happen?      VM.assert(compiledMethods[ cmid ] != null);    }    if (obsoleteMethods == null) {      // This should tend not to get too big as it gets compressed as we      // snip obsollete code at GC time.      obsoleteMethods = new int[ 100 ];    } else if (obsoleteMethodCount >= obsoleteMethods.length) {      int newArray[] = new int[obsoleteMethods.length*2];      // Disable GC during array copy because GC can alter the source array      VM.disableGC();      for (int i = 0, n = obsoleteMethods.length; i < n; ++i) {        newArray[i] = obsoleteMethods[i];      }      VM.enableGC();      obsoleteMethods = newArray;    }    compiledMethod.setObsolete( true );    obsoleteMethods[obsoleteMethodCount++] = cmid;  }  // Snip reference to CompiledMethod so that we can reclaim code space. If  // the code is currently being executed, stack scanning is responsible for  // marking it NOT obsolete. Keep such reference until a future GC.  // NOTE: It's expected that this is processed during GC, after scanning  //	stacks to determine which methods are currently executing.  static void snipObsoleteCompiledMethods() {    if (obsoleteMethods == null) return;        int oldCount = obsoleteMethodCount;    obsoleteMethodCount = 0;    for (int i = 0; i < oldCount; i++) {      int currCM = obsoleteMethods[i];      if (compiledMethods[currCM].isObsolete()) {	compiledMethods[currCM] = null;		// break the link      } else {	obsoleteMethods[obsoleteMethodCount++] = currCM; // keep it	compiledMethods[currCM].setObsolete(true);	 // maybe next time      }    }  }