diff --git a/src/main/java/com/dynatrace/hash4j/hashing/Murmur3_128.java b/src/main/java/com/dynatrace/hash4j/hashing/Murmur3_128.java index 22bb3963..18699a55 100644 --- a/src/main/java/com/dynatrace/hash4j/hashing/Murmur3_128.java +++ b/src/main/java/com/dynatrace/hash4j/hashing/Murmur3_128.java @@ -268,7 +268,15 @@ public HashStream128 putByte(byte b) { @Override public HashStream128 putShort(short v) { - final long l = v & 0xFFFFL; + return putTwoBytes(v & 0xFFFFL); + } + + @Override + public HashStream128 putChar(char v) { + return putTwoBytes(v); + } + + private HashStream128 putTwoBytes(long l) { buffer1 |= l << bitCount; if ((bitCount & 0x30L) == 0x30L) { if ((bitCount & 0x40L) != 0) { diff --git a/src/main/java/com/dynatrace/hash4j/hashing/Murmur3_32.java b/src/main/java/com/dynatrace/hash4j/hashing/Murmur3_32.java index 3411d6b5..2cdcfe63 100644 --- a/src/main/java/com/dynatrace/hash4j/hashing/Murmur3_32.java +++ b/src/main/java/com/dynatrace/hash4j/hashing/Murmur3_32.java @@ -159,7 +159,16 @@ public HashStream32 putByte(byte b) { @Override public HashStream32 putShort(short v) { - buffer |= (v & 0xFFFFL) << shift; + return putTwoBytes(v & 0xFFFFL); + } + + @Override + public HashStream32 putChar(char v) { + return putTwoBytes(v); + } + + private HashStream32 putTwoBytes(long v) { + buffer |= v << shift; shift += 16; length += 2; if (shift >= 32) {