private void addSharedLockOwner(int count, _LockOwner locker) { count++; Object sharedObj = mSharedLockOwnersObj; if (sharedObj == null) { mSharedLockOwnersObj = locker; } else if (sharedObj instanceof LockOwnerHTEntry[]) { LockOwnerHTEntry[] entries = (LockOwnerHTEntry[]) sharedObj; lockerHTadd(entries, count & 0x7fffffff, locker); } else { // Initial capacity of must be a power of 2. LockOwnerHTEntry[] entries = new LockOwnerHTEntry[8]; lockerHTadd(entries, (_LockOwner) sharedObj); lockerHTadd(entries, locker); mSharedLockOwnersObj = entries; } mLockCount = count; }
private void addSharedLockOwner(int count, _LockOwner locker) { count++; Object sharedObj = mSharedLockOwnersObj; if (sharedObj == null) { mSharedLockOwnersObj = locker; } else if (sharedObj instanceof LockOwnerHTEntry[]) { LockOwnerHTEntry[] entries = (LockOwnerHTEntry[]) sharedObj; lockerHTadd(entries, count & 0x7fffffff, locker); } else { // Initial capacity of must be a power of 2. LockOwnerHTEntry[] entries = new LockOwnerHTEntry[8]; lockerHTadd(entries, (_LockOwner) sharedObj); lockerHTadd(entries, locker); mSharedLockOwnersObj = entries; } mLockCount = count; }
private void addSharedLockOwner(int count, _LockOwner locker) { count++; Object sharedObj = mSharedLockOwnersObj; if (sharedObj == null) { mSharedLockOwnersObj = locker; } else if (sharedObj instanceof LockOwnerHTEntry[]) { LockOwnerHTEntry[] entries = (LockOwnerHTEntry[]) sharedObj; lockerHTadd(entries, count & 0x7fffffff, locker); } else { // Initial capacity of must be a power of 2. LockOwnerHTEntry[] entries = new LockOwnerHTEntry[8]; lockerHTadd(entries, (_LockOwner) sharedObj); lockerHTadd(entries, locker); mSharedLockOwnersObj = entries; } mLockCount = count; }
private void lockerHTadd(LockOwnerHTEntry[] entries, int newSize, _LockOwner locker) { if (newSize > (entries.length >> 1)) { int capacity = entries.length << 1; LockOwnerHTEntry[] newEntries = new LockOwnerHTEntry[capacity]; int newMask = capacity - 1; for (int i=entries.length; --i>=0; ) { for (LockOwnerHTEntry e = entries[i]; e != null; ) { LockOwnerHTEntry next = e.mNext; int ix = e.mOwner.hashCode() & newMask; e.mNext = newEntries[ix]; newEntries[ix] = e; e = next; } } mSharedLockOwnersObj = entries = newEntries; } lockerHTadd(entries, locker); }
private void lockerHTadd(LockOwnerHTEntry[] entries, int newSize, _LockOwner locker) { if (newSize > (entries.length >> 1)) { int capacity = entries.length << 1; LockOwnerHTEntry[] newEntries = new LockOwnerHTEntry[capacity]; int newMask = capacity - 1; for (int i=entries.length; --i>=0; ) { for (LockOwnerHTEntry e = entries[i]; e != null; ) { LockOwnerHTEntry next = e.mNext; int ix = e.mOwner.hashCode() & newMask; e.mNext = newEntries[ix]; newEntries[ix] = e; e = next; } } mSharedLockOwnersObj = entries = newEntries; } lockerHTadd(entries, locker); }
private void lockerHTadd(LockOwnerHTEntry[] entries, int newSize, _LockOwner locker) { if (newSize > (entries.length >> 1)) { int capacity = entries.length << 1; LockOwnerHTEntry[] newEntries = new LockOwnerHTEntry[capacity]; int newMask = capacity - 1; for (int i=entries.length; --i>=0; ) { for (LockOwnerHTEntry e = entries[i]; e != null; ) { LockOwnerHTEntry next = e.mNext; int ix = e.mOwner.hashCode() & newMask; e.mNext = newEntries[ix]; newEntries[ix] = e; e = next; } } mSharedLockOwnersObj = entries = newEntries; } lockerHTadd(entries, locker); }