From f7c7e421fc32646cdcb60404ff7f801009875afd Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Wed, 5 Feb 2025 13:57:09 +0100 Subject: [PATCH] TransactionInput, TransactionOutPoint: in write(), prefer calling write() over serialize() The reason is `write()` re-uses the `ByteBuffer`, whereas `serialize()` allocates an intermediate byte array. --- core/src/main/java/org/bitcoinj/core/TransactionInput.java | 2 +- core/src/main/java/org/bitcoinj/core/TransactionOutPoint.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/core/TransactionInput.java b/core/src/main/java/org/bitcoinj/core/TransactionInput.java index 79515b735..111920297 100644 --- a/core/src/main/java/org/bitcoinj/core/TransactionInput.java +++ b/core/src/main/java/org/bitcoinj/core/TransactionInput.java @@ -170,7 +170,7 @@ public class TransactionInput { * @throws BufferOverflowException if the input doesn't fit the remaining buffer */ public ByteBuffer write(ByteBuffer buf) throws BufferOverflowException { - buf.put(outpoint.serialize()); + outpoint.write(buf); Buffers.writeLengthPrefixedBytes(buf, scriptBytes); ByteUtils.writeInt32LE(sequence, buf); return buf; diff --git a/core/src/main/java/org/bitcoinj/core/TransactionOutPoint.java b/core/src/main/java/org/bitcoinj/core/TransactionOutPoint.java index edb26ce80..6a4a82795 100644 --- a/core/src/main/java/org/bitcoinj/core/TransactionOutPoint.java +++ b/core/src/main/java/org/bitcoinj/core/TransactionOutPoint.java @@ -103,7 +103,7 @@ public class TransactionOutPoint { * @throws BufferOverflowException if the outpoint doesn't fit the remaining buffer */ public ByteBuffer write(ByteBuffer buf) throws BufferOverflowException { - buf.put(hash.serialize()); + hash.write(buf); ByteUtils.writeInt32LE(index, buf); return buf; }