From 39454d68365b45151308fd700c0f4f7155c2a003 Mon Sep 17 00:00:00 2001 From: liuyong199311080810 <1991595613@qq.com> Date: Fri, 20 Dec 2019 11:14:40 +0800 Subject: [PATCH] modify rlp encode --- build.gradle | 2 +- src/main/java/org/tdf/rlp/RLPParser.java | 7 ++----- src/test/java/org/tdf/rlp/RLPTest.java | 3 +-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 71009bc..e51a697 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'org.tdf' -version '1.1.14' +version '1.1.15' sourceCompatibility = 1.8 diff --git a/src/main/java/org/tdf/rlp/RLPParser.java b/src/main/java/org/tdf/rlp/RLPParser.java index ddbae41..b679dc1 100644 --- a/src/main/java/org/tdf/rlp/RLPParser.java +++ b/src/main/java/org/tdf/rlp/RLPParser.java @@ -52,7 +52,7 @@ private int estimateSize() { if (prefix < OFFSET_SHORT_ITEM) { return 1; } - if (prefix < OFFSET_LONG_ITEM) { + if (prefix <= OFFSET_LONG_ITEM) { return prefix - OFFSET_SHORT_ITEM + 1; } if (prefix < OFFSET_SHORT_LIST) { @@ -136,11 +136,8 @@ private RLPItem readItem() { if (prefix < OFFSET_SHORT_ITEM) { return RLPItem.fromBytes(new byte[]{(byte) prefix}); } - if (prefix < OFFSET_LONG_ITEM) { + if (prefix <= OFFSET_LONG_ITEM) { int length = prefix - OFFSET_SHORT_ITEM; - if (length == 0) { - return RLPItem.NULL; - } RLPItem item = new RLPItem(new LazyByteArray(raw, offset, offset + length)); skip(length); return item; diff --git a/src/test/java/org/tdf/rlp/RLPTest.java b/src/test/java/org/tdf/rlp/RLPTest.java index 05afba5..608ce91 100644 --- a/src/test/java/org/tdf/rlp/RLPTest.java +++ b/src/test/java/org/tdf/rlp/RLPTest.java @@ -1631,7 +1631,6 @@ public void testIgnore(){ assert el.get(1).asString().equals("111"); } - @Ignore @Test public void testbug() throws Exception{ LazyByteArray data = new LazyByteArray(HexBytes.decode("3d4d105a3fc6db71d35ed654b1b7aab73d8fa50d"), 0, 20); @@ -1646,6 +1645,6 @@ public void testbug() throws Exception{ .data(data) .build(); RLPList li = RLPList.of(item1, item2); - assert RLPElement.fromEncoded(li.getEncoded(), false).size() == 3; + assert RLPElement.fromEncoded(li.getEncoded(), false).size() == 2; } }