Skip to content

Commit

Permalink
Simplify p_copy variants.
Browse files Browse the repository at this point in the history
  • Loading branch information
broneill committed Dec 5, 2024
1 parent f1edba9 commit 4b5e671
Show file tree
Hide file tree
Showing 10 changed files with 68 additions and 68 deletions.
32 changes: 16 additions & 16 deletions src/main/java/org/cojen/tupl/core/BTreeValue.java
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ static long action(LocalTransaction txn, BTreeCursor cursor, CursorFrame frame,
bLen = 0;
} else {
bLen = Math.min(vLen - pos, bLen);
p_copyToArray(pageAddr, (int) (loc + pos), b, bOff, (int) bLen);
p_copy(pageAddr, (int) (loc + pos), b, bOff, (int) bLen);
}
return bLen;

Expand Down Expand Up @@ -487,7 +487,7 @@ static long action(LocalTransaction txn, BTreeCursor cursor, CursorFrame frame,
} catch (Throwable e) {
throw releaseExclusive(node, e);
}
p_copyFromArray(b, bOff, pageAddr, iLoc, iLen);
p_copy(b, bOff, pageAddr, iLoc, iLen);
return 0;
} else if (pos == 0 && bOff == 0 && bLen == b.length) {
// Writing over the entire value and extending.
Expand Down Expand Up @@ -518,7 +518,7 @@ static long action(LocalTransaction txn, BTreeCursor cursor, CursorFrame frame,
} catch (Throwable e) {
throw releaseExclusive(node, e);
}
p_copyFromArray(b, bOff, pageAddr, iLoc, iLen);
p_copy(b, bOff, pageAddr, iLoc, iLen);
pos = vLen;
bOff += iLen;
bLen -= iLen;
Expand All @@ -542,7 +542,7 @@ static long action(LocalTransaction txn, BTreeCursor cursor, CursorFrame frame,
}

oldValue = new byte[vLen];
p_copyToArray(pageAddr, loc, oldValue, 0, oldValue.length);
p_copy(pageAddr, loc, oldValue, 0, oldValue.length);

node.deleteLeafEntry(nodePos);
} catch (Throwable e) {
Expand Down Expand Up @@ -615,10 +615,10 @@ static long action(LocalTransaction txn, BTreeCursor cursor, CursorFrame frame,
// Not reading any inline content.
pos -= fInlineLen;
} else if (bLen <= amt) {
p_copyToArray(pageAddr, (int) (loc + pos), b, bOff, (int) bLen);
p_copy(pageAddr, (int) (loc + pos), b, bOff, (int) bLen);
return bLen;
} else {
p_copyToArray(pageAddr, (int) (loc + pos), b, bOff, amt);
p_copy(pageAddr, (int) (loc + pos), b, bOff, amt);
bLen -= amt;
bOff += amt;
pos = 0;
Expand All @@ -642,7 +642,7 @@ static long action(LocalTransaction txn, BTreeCursor cursor, CursorFrame frame,
Arrays.fill(b, bOff, bOff + amt, (byte) 0);
} else {
final Node fNode = db.nodeMapLoadFragment(fNodeId);
p_copyToArray(fNode.mPageAddr, fNodeOff, b, bOff, amt);
p_copy(fNode.mPageAddr, fNodeOff, b, bOff, amt);
fNode.releaseShared();
}
bLen -= amt;
Expand Down Expand Up @@ -924,7 +924,7 @@ static long action(LocalTransaction txn, BTreeCursor cursor, CursorFrame frame,
txn.pushUnwrite(cursor.mTree.mId, cursor.mKey, pos,
pageAddr, iLoc, iLen);
}
p_copyFromArray(b, bOff, pageAddr, iLoc, iLen);
p_copy(b, bOff, pageAddr, iLoc, iLen);
return 0;
}
// Write just the inline region, and then never touch it again if
Expand All @@ -936,7 +936,7 @@ static long action(LocalTransaction txn, BTreeCursor cursor, CursorFrame frame,
} catch (Throwable e) {
throw releaseExclusive(node, e);
}
p_copyFromArray(b, bOff, pageAddr, iLoc, iLen);
p_copy(b, bOff, pageAddr, iLoc, iLen);
bLen -= amt;
bOff += amt;
pos = fInlineLen;
Expand Down Expand Up @@ -1127,7 +1127,7 @@ static long action(LocalTransaction txn, BTreeCursor cursor, CursorFrame frame,
// Now write to the new page, zero-filling the gaps.
var fNodePageAddr = fNode.mPageAddr;
p_clear(fNodePageAddr, 0, fNodeOff);
p_copyFromArray(b, bOff, fNodePageAddr, fNodeOff, amt);
p_copy(b, bOff, fNodePageAddr, fNodeOff, amt);
p_clear(fNodePageAddr, fNodeOff + amt, pageSize);
} finally {
fNode.releaseExclusive();
Expand All @@ -1152,7 +1152,7 @@ static long action(LocalTransaction txn, BTreeCursor cursor, CursorFrame frame,
if (db.markFragmentDirty(fNode)) {
p_int48PutLE(pageAddr, loc, fNode.id());
}
p_copyFromArray(b, bOff, fNode.mPageAddr, fNodeOff, amt);
p_copy(b, bOff, fNode.mPageAddr, fNodeOff, amt);
} finally {
fNode.releaseExclusive();
}
Expand Down Expand Up @@ -1219,7 +1219,7 @@ private static void readMultilevelFragments(long pos, int level, Node inode,
throw e;
}
if (level <= 0) {
p_copyToArray(childNode.mPageAddr, (int) ppos, b, bOff, len);
p_copy(childNode.mPageAddr, (int) ppos, b, bOff, len);
childNode.releaseShared();
if (bLen <= 0) {
inode.releaseShared();
Expand Down Expand Up @@ -1359,7 +1359,7 @@ private static void writeMultilevelFragments(LocalTransaction txn, BTreeCursor c
p_int48PutLE(pageAddr, poffset, childNode.id());
}

p_copyFromArray(b, bOff, childNode.mPageAddr, (int) ppos, len);
p_copy(b, bOff, childNode.mPageAddr, (int) ppos, len);
childNode.releaseExclusive();

if (bLen <= 0) {
Expand Down Expand Up @@ -1668,12 +1668,12 @@ private static void tryIncreaseLengthField(final BTreeCursor cursor, final Curso
// Copy the length field.
int srcLoc = fHeaderLoc + 1;
int fieldLen = skipFragmentedLengthField(0, fHeader);
p_copyToArray(pageAddr, srcLoc, newValue, 1, fieldLen);
p_copy(pageAddr, srcLoc, newValue, 1, fieldLen);

// Copy the rest.
srcLoc += fieldLen;
int dstLoc = 1 + fieldLen + igrowth;
p_copyToArray(pageAddr, srcLoc, newValue, dstLoc, newValue.length - dstLoc);
p_copy(pageAddr, srcLoc, newValue, dstLoc, newValue.length - dstLoc);

// Clear the fragmented bit so that the update method doesn't delete the pages.
p_bytePut(pageAddr, vHeaderLoc,
Expand Down Expand Up @@ -1749,7 +1749,7 @@ private static int tryExtendDirect(final BTreeCursor cursor, final CursorFrame f
try {
final var newValue = new byte[newValueLen];
final long pageAddr = node.mPageAddr;
p_copyToArray(pageAddr, fHeaderLoc, newValue, 0, vLen);
p_copy(pageAddr, fHeaderLoc, newValue, 0, vLen);

// Clear the fragmented bit so that the update method doesn't delete the pages.
p_bytePut(pageAddr, vHeaderLoc,
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/org/cojen/tupl/core/DirectPageOps.java
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ static void p_clear(long pageAddr, int fromIndex, int toIndex) {
}
}

static void p_copyFromArray(byte[] src, int srcStart, long dstPageAddr, int dstStart, int len) {
static void p_copy(byte[] src, int srcStart, long dstPageAddr, long dstStart, int len) {
if (CHECK_BOUNDS) {
if (len < 0) {
throw new IndexOutOfBoundsException("len: " + len);
Expand All @@ -190,7 +190,7 @@ static void p_copyFromArray(byte[] src, int srcStart, long dstPageAddr, int dstS
MemorySegment.copy(src, srcStart, ALL, ValueLayout.JAVA_BYTE, dstPageAddr + dstStart, len);
}

static void p_copyToArray(long srcPageAddr, int srcStart, byte[] dst, int dstStart, int len) {
static void p_copy(long srcPageAddr, long srcStart, byte[] dst, int dstStart, int len) {
if (CHECK_BOUNDS) {
if (len < 0) {
throw new IndexOutOfBoundsException("len: " + len);
Expand All @@ -205,7 +205,7 @@ static void p_copyToArray(long srcPageAddr, int srcStart, byte[] dst, int dstSta
MemorySegment.copy(ALL, ValueLayout.JAVA_BYTE, srcPageAddr + srcStart, dst, dstStart, len);
}

static void p_copy(long srcPageAddr, int srcStart, long dstPageAddr, int dstStart, int len) {
static void p_copy(long srcPageAddr, int srcStart, long dstPageAddr, long dstStart, long len) {
if (CHECK_BOUNDS) {
if (len < 0) {
throw new IndexOutOfBoundsException("len: " + len);
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/org/cojen/tupl/core/DirectPageOpsSelector.java
Original file line number Diff line number Diff line change
Expand Up @@ -188,18 +188,18 @@ private static void select() throws Throwable {
mm.field("U").invoke("setMemory", pageVar.add(fromIndexVar), lenVar, (byte) 0);
done.here();

mm = cm.addMethod(void.class, "p_copyFromArray",
byte[].class, int.class, long.class, int.class, int.class).static_();
mm = cm.addMethod(void.class, "p_copy",
byte[].class, int.class, long.class, long.class, int.class).static_();
mm.field("U").invoke("copyMemory", mm.param(0), mm.field("O").add(mm.param(1)),
null, mm.param(2).add(mm.param(3)), mm.param(4));

mm = cm.addMethod(void.class, "p_copyToArray",
long.class, int.class, byte[].class, int.class, int.class).static_();
mm = cm.addMethod(void.class, "p_copy",
long.class, long.class, byte[].class, int.class, int.class).static_();
mm.field("U").invoke("copyMemory", null, mm.param(0).add(mm.param(1)),
mm.param(2), mm.field("O").add(mm.param(3)), mm.param(4));

mm = cm.addMethod(void.class, "p_copy",
long.class, int.class, long.class, int.class, int.class).static_();
long.class, int.class, long.class, long.class, long.class).static_();
mm.field("U").invoke("copyMemory", mm.param(0).add(mm.param(1)),
mm.param(2).add(mm.param(3)), mm.param(4));

Expand Down
6 changes: 3 additions & 3 deletions src/main/java/org/cojen/tupl/core/FragmentedTrash.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ static void add(BTree trash, LocalTransaction txn, long indexId,
throws IOException
{
var payload = new byte[valueLen];
p_copyToArray(entryAddr, valueStart, payload, 0, valueLen);
p_copy(entryAddr, valueStart, payload, 0, valueLen);

BTreeCursor cursor = prepareEntry(trash, txn.txnId());
byte[] key = cursor.key();
Expand Down Expand Up @@ -87,7 +87,7 @@ static void add(BTree trash, LocalTransaction txn, long indexId,
// Cannot re-use existing temporary array.
payload = new byte[payloadLen];
}
p_copyToArray(entryAddr, keyStart, payload, 0, keyLen);
p_copy(entryAddr, keyStart, payload, 0, keyLen);
arraycopy(key, 8, payload, keyLen, tidLen);

txn.pushUndeleteFragmented(indexId, payload, 0, payloadLen);
Expand Down Expand Up @@ -149,7 +149,7 @@ static void remove(BTree trash, long txnId, BTree index, byte[] undoEntry) throw
int tidLen = undoEntry.length - tidLoc;
trashKey = new byte[8 + tidLen];
encodeLongBE(trashKey, 0, txnId);
p_copyToArray(undo, tidLoc, trashKey, 8, tidLen);
p_copy(undo, tidLoc, trashKey, 8, tidLen);
} finally {
p_delete(undo);
}
Expand Down
14 changes: 7 additions & 7 deletions src/main/java/org/cojen/tupl/core/LocalDatabase.java
Original file line number Diff line number Diff line change
Expand Up @@ -5489,7 +5489,7 @@ byte[] fragment(final byte[] value, final long vlength, int max, int maxInline)
Node node = allocDirtyFragmentNode();
try {
encodeInt48LE(newValue, poffset, node.id());
p_copyFromArray(value, voffset, node.mPageAddr, 0, pageSize);
p_copy(value, voffset, node.mPageAddr, 0, pageSize);
if (pageCount == 1) {
break;
}
Expand Down Expand Up @@ -5564,9 +5564,9 @@ byte[] fragment(final byte[] value, final long vlength, int max, int maxInline)
encodeInt48LE(newValue, poffset, node.id());
long pageAddr = node.mPageAddr;
if (pageCount > 1) {
p_copyFromArray(value, voffset, pageAddr, 0, pageSize);
p_copy(value, voffset, pageAddr, 0, pageSize);
} else {
p_copyFromArray(value, voffset, pageAddr, 0, remainder);
p_copy(value, voffset, pageAddr, 0, remainder);
// Zero fill the rest, making it easier to extend later.
p_clear(pageAddr, remainder, pageSize());
break;
Expand Down Expand Up @@ -5695,7 +5695,7 @@ private void writeMultilevelFragments(int level, Node inode,
int len = (int) Math.min(levelCap, vlength);
if (level <= 0) {
long childPageAddr = childNode.mPageAddr;
p_copyFromArray(value, voffset, childPageAddr, 0, len);
p_copy(value, voffset, childPageAddr, 0, len);
// Zero fill the rest, making it easier to extend later.
p_clear(childPageAddr, len, pageSize());
childNode.releaseExclusive();
Expand Down Expand Up @@ -5817,7 +5817,7 @@ byte[] reconstruct(long fragmentedAddr, int off, int len, long[] stats)
off += 2;
len -= 2;
if (value != null) {
p_copyToArray(fragmentedAddr, off, value, vOff, inLen);
p_copy(fragmentedAddr, off, value, vOff, inLen);
}
off += inLen;
len -= inLen;
Expand All @@ -5844,7 +5844,7 @@ byte[] reconstruct(long fragmentedAddr, int off, int len, long[] stats)
long pageAddr = node.mPageAddr;
pLen = Math.min((int) vLen, pageSize());
if (value != null) {
p_copyToArray(pageAddr, 0, value, vOff, pLen);
p_copy(pageAddr, 0, value, vOff, pLen);
}
} finally {
node.releaseShared();
Expand Down Expand Up @@ -5900,7 +5900,7 @@ private long readMultilevelFragments(int level, Node inode,
pagesRead++;
if (level <= 0) {
if (value != null) {
p_copyToArray(childNode.mPageAddr, 0, value, voffset, len);
p_copy(childNode.mPageAddr, 0, value, voffset, len);
}
childNode.releaseShared();
} else {
Expand Down
Loading

0 comments on commit 4b5e671

Please sign in to comment.