diff options
author | Anton Tananaev <anton@traccar.org> | 2022-06-29 17:03:23 -0700 |
---|---|---|
committer | Anton Tananaev <anton@traccar.org> | 2022-06-29 17:03:23 -0700 |
commit | aed0411f4ae5cfc007d27e0521a39a242fab7840 (patch) | |
tree | a704e82dc4c82e0d128e9619290ebb5cb8a66ea1 /src/main/java/org/traccar/helper/BufferUtil.java | |
parent | 8921fc12ea0590c290f3780fa20df7176b8c0000 (diff) | |
download | trackermap-server-aed0411f4ae5cfc007d27e0521a39a242fab7840.tar.gz trackermap-server-aed0411f4ae5cfc007d27e0521a39a242fab7840.tar.bz2 trackermap-server-aed0411f4ae5cfc007d27e0521a39a242fab7840.zip |
Unify signed magnitude int decoding
Diffstat (limited to 'src/main/java/org/traccar/helper/BufferUtil.java')
-rw-r--r-- | src/main/java/org/traccar/helper/BufferUtil.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main/java/org/traccar/helper/BufferUtil.java b/src/main/java/org/traccar/helper/BufferUtil.java index 1e1a687fa..0dbe0a4ad 100644 --- a/src/main/java/org/traccar/helper/BufferUtil.java +++ b/src/main/java/org/traccar/helper/BufferUtil.java @@ -27,6 +27,12 @@ public final class BufferUtil { private BufferUtil() { } + public static int readSignedMagnitudeInt(ByteBuf buffer) { + long value = buffer.readUnsignedInt(); + int result = (int) BitUtil.to(value, 31); + return BitUtil.check(value, 31) ? -result : result; + } + public static int indexOf(ByteBuf buffer, int fromIndex, int toIndex, byte value, int count) { int startIndex = fromIndex; for (int i = 0; i < count; i++) { |