Skip to content

Commit beb1a8f

Browse files
committed
Do not close stream after deserializing text kv1
Fixes #104
1 parent baff467 commit beb1a8f

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

ValveKeyValue/ValveKeyValue.Test/Text/StreamsTestCase.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,14 @@ public void CanHandleBlockingStreams(int maxReadAtOnce)
9393

9494
Assert.That(data["test"].ToInt32(CultureInfo.InvariantCulture), Is.EqualTo(1337));
9595
}
96+
97+
[Test]
98+
public void LeavesStreamOpenAfterDeserialize()
99+
{
100+
using var stream = TestDataHelper.OpenResource("Text.object_person.vdf");
101+
102+
KVSerializer.Create(KVSerializationFormat.KeyValues1Text).Deserialize(stream);
103+
104+
Assert.That(stream.CanRead, Is.True);
105+
}
96106
}

ValveKeyValue/ValveKeyValue/KVSerializer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ IVisitingReader MakeReader(Stream stream, IParsingVisitationListener listener, K
114114

115115
return format switch
116116
{
117-
KVSerializationFormat.KeyValues1Text => new KV1TextReader(new StreamReader(stream), listener, options),
117+
KVSerializationFormat.KeyValues1Text => new KV1TextReader(new StreamReader(stream, null, true, -1, leaveOpen: true), listener, options),
118118
KVSerializationFormat.KeyValues1Binary => new KV1BinaryReader(stream, listener, options.StringTable),
119119
_ => throw new ArgumentOutOfRangeException(nameof(format), format, "Invalid serialization format."),
120120
};

0 commit comments

Comments
 (0)