Remove prevEntry parameter from CompactOffHeapLinearHashTable.clearEntry(), writeEntry() and writeEntryVolatile() methods, as unneeded

This commit is contained in:
leventov
2016-01-02 16:12:01 +03:00
parent 6061d68f35
commit 9b782c4ec2
5 changed files with 16 additions and 21 deletions
@@ -135,24 +135,22 @@ public abstract class CompactOffHeapLinearHashTable {
public abstract long readEntry(long addr, long pos);
public abstract void writeEntryVolatile(
long addr, long pos, long prevEntry, long key, long value);
public abstract void writeEntryVolatile(long addr, long pos, long key, long value);
public void putValueVolatile(long addr, long pos, long value) {
checkValueForPut(value);
long currentEntry = readEntry(addr, pos);
writeEntryVolatile(addr, pos, currentEntry, key(currentEntry), value);
writeEntryVolatile(addr, pos, key(currentEntry), value);
}
abstract void writeEntry(long addr, long pos, long prevEntry, long anotherEntry);
abstract void writeEntry(long addr, long pos, long newEntry);
abstract void clearEntry(long addr, long pos, long prevEntry);
abstract void clearEntry(long addr, long pos);
/**
* Returns "insert" position in terms of consequent putValue()
*/
public long remove(long addr, long posToRemove) {
long entryToRemove = readEntry(addr, posToRemove);
long posToShift = posToRemove;
while (true) {
posToShift = step(posToShift);
@@ -171,12 +169,11 @@ public abstract class CompactOffHeapLinearHashTable {
if ((cond1 && cond2) ||
// chain wrapped around capacity
(posToShift < insertPos && (cond1 || cond2))) {
writeEntry(addr, posToRemove, entryToRemove, entryToShift);
writeEntry(addr, posToRemove, entryToShift);
posToRemove = posToShift;
entryToRemove = entryToShift;
}
}
clearEntry(addr, posToRemove, entryToRemove);
clearEntry(addr, posToRemove);
return posToRemove;
}
}
@@ -47,17 +47,17 @@ public final class IntCompactOffHeapLinearHashTable extends CompactOffHeapLinear
}
@Override
public void writeEntryVolatile(long addr, long pos, long prevEntry, long key, long value) {
public void writeEntryVolatile(long addr, long pos, long key, long value) {
OS.memory().writeVolatileInt(null, addr + pos, (int) entry(key, value));
}
@Override
void writeEntry(long addr, long pos, long prevEntry, long anotherEntry) {
OS.memory().writeInt(addr + pos, (int) anotherEntry);
void writeEntry(long addr, long pos, long newEntry) {
OS.memory().writeInt(addr + pos, (int) newEntry);
}
@Override
void clearEntry(long addr, long pos, long prevEntry) {
void clearEntry(long addr, long pos) {
OS.memory().writeInt(addr + pos, 0);
}
}
@@ -47,17 +47,17 @@ public final class LongCompactOffHeapLinearHashTable extends CompactOffHeapLinea
}
@Override
public void writeEntryVolatile(long addr, long pos, long prevEntry, long key, long value) {
public void writeEntryVolatile(long addr, long pos, long key, long value) {
OS.memory().writeVolatileLong(null, addr + pos, entry(key, value));
}
@Override
void writeEntry(long addr, long pos, long prevEntry, long anotherEntry) {
OS.memory().writeLong(addr + pos, anotherEntry);
void writeEntry(long addr, long pos, long newEntry) {
OS.memory().writeLong(addr + pos, newEntry);
}
@Override
void clearEntry(long addr, long pos, long prevEntry) {
void clearEntry(long addr, long pos) {
OS.memory().writeLong(addr + pos, 0L);
}
}
@@ -94,8 +94,7 @@ public abstract class HashLookupSearch {
}
hl().checkValueForPut(entryPos);
long currentEntry = hl().readEntry(addr(), hlp.hashLookupPos);
hl().writeEntryVolatile(addr(), hlp.hashLookupPos, currentEntry, searchKey, entryPos);
hl().writeEntryVolatile(addr(), hlp.hashLookupPos, searchKey, entryPos);
}
public boolean checkSlotContainsExpectedKeyAndValue(long value) {
@@ -228,8 +228,7 @@ public abstract class MapEntryStages<K, V> extends HashEntryStages<K>
CompactOffHeapLinearHashTable hl = hh.h().hashLookup;
long oldEntry = hl.readEntry(oldHashLookupAddr, oldHashLookupPos);
hl.checkValueForPut(pos);
hl.writeEntryVolatile(s.tierBaseAddr, hlp.hashLookupPos,
oldEntry, hl.key(oldEntry), pos);
hl.writeEntryVolatile(s.tierBaseAddr, hlp.hashLookupPos, hl.key(oldEntry), pos);
if (tierHasChanged)
hl.remove(oldHashLookupAddr, oldHashLookupPos);
}