private synchronized VM_Lock findOrInsert (Object o, boolean insert) { int h = o.hashCode() % SIZE; if (h < 0) h = -1 * h;
private VM_Lock findOrInsert (Object o, boolean insert) { int h = VM_ObjectModel.getObjectHashCode(o) % SIZE; if (h < 0) h = -h;
  private synchronized VM_Lock findOrInsert (Object o, boolean insert) {    int h = o.hashCode() % SIZE;    if (h < 0) h = -1 * h;    for (VM_LockBucket b = buckets[h]; b != null; b = b.next)       if (b.object == o) {        if (DEBUG) { VM.sysWrite(VM_Magic.objectAsAddress(o));  VM.sysWrite(": Found nursery lock\n"); }        return b.lock;      }    if (insert) {      if (DEBUG) { VM.sysWrite(VM_Magic.objectAsAddress(o));  VM.sysWrite(": Created nursery lock\n"); }      VM_LockBucket b = allocate();      b.next = buckets[h];      b.object = o;      b.lock = VM_Lock.allocate();      b.lock.lockedObject = o;      buckets[h] = b;      return b.lock;    }    return null;  }