Skip to content

Commit 971fe8e

Browse files
authored
Fix empty string deserialization (#1)
1 parent 28dd061 commit 971fe8e

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "OhMyCH"
22
uuid = "27ae6650-29b9-4c69-9010-441cd8c8f06e"
3-
version = "0.1.0"
3+
version = "0.1.1"
44

55
[deps]
66
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"

src/serialization.jl

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,22 +42,20 @@ end
4242
@inline function read_leb128(s::Serializer)
4343
value = 0
4444
shift = 0
45-
while !eof(s)
45+
while true
46+
if eof(s)
47+
error("Unexpected end of file while reading LEB128 number.")
48+
end
4649
byte = read(s, UInt8)
4750
value |= (UInt64(byte & 0x7f) << shift)
4851
if (byte & 0x80) == 0
49-
break
52+
return value
5053
end
5154
shift += 7
5255
if shift > 63
5356
error("LEB128 number is too long.")
5457
end
5558
end
56-
if eof(s)
57-
error("Unexpected end of file while reading LEB128 number.")
58-
else
59-
value
60-
end
6159
end
6260

6361
"""

test/serialization.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,14 @@ import OhMyCH: Serializer, serialize, deserialize
7171
s = Serializer()
7272

7373
@test serialize(s, String, "1234567890abcdef") == 17
74-
@test serialize(s, String, "") == 1
7574
@test serialize(s, String, "안녕하세요!") == 17
75+
@test serialize(s, String, "") == 1
7676

7777
seekstart(s)
7878

7979
@test deserialize(s, String) == "1234567890abcdef"
80-
@test deserialize(s, String) == ""
8180
@test deserialize(s, String) == "안녕하세요!"
81+
@test deserialize(s, String) == ""
8282

8383
@test eof(s)
8484
end

0 commit comments

Comments
 (0)