mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
Remove prevEntry parameter from CompactOffHeapLinearHashTable.clearEntry(), writeEntry() and writeEntryVolatile() methods, as unneeded
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user