Skip to content

Commit 1437474

Browse files
committed
MemoryStream is disposed in every usage
1 parent 2898a2b commit 1437474

7 files changed

Lines changed: 222 additions & 211 deletions

File tree

Orm/Xtensive.Orm.Tests.Core/Linq/SerializableExpressionsTest.cs

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -76,29 +76,31 @@ public void NetDataContractSerializeTest()
7676

7777
private void RunSerializeTest(XmlObjectSerializer serializer)
7878
{
79-
var stream = new MemoryStream();
80-
foreach (var expression in Expressions) {
81-
Console.WriteLine(expression.ToString(true));
82-
serializer.WriteObject(stream, expression.ToSerializableExpression());
83-
stream.Seek(0, SeekOrigin.Begin);
84-
var serialized = (SerializableExpression) serializer.ReadObject(stream);
85-
stream.SetLength(0);
86-
Assert.AreEqual(expression.ToExpressionTree(), serialized.ToExpression().ToExpressionTree());
87-
Console.WriteLine("OK");
79+
using (var stream = new MemoryStream()) {
80+
foreach (var expression in Expressions) {
81+
Console.WriteLine(expression.ToString(true));
82+
serializer.WriteObject(stream, expression.ToSerializableExpression());
83+
stream.Seek(0, SeekOrigin.Begin);
84+
var serialized = (SerializableExpression) serializer.ReadObject(stream);
85+
stream.SetLength(0);
86+
Assert.AreEqual(expression.ToExpressionTree(), serialized.ToExpression().ToExpressionTree());
87+
Console.WriteLine("OK");
88+
}
8889
}
8990
}
9091

9192
private void RunSerializeTest(IFormatter serializer)
9293
{
93-
var stream = new MemoryStream();
94-
foreach (var expression in Expressions) {
95-
Console.WriteLine(expression.ToString(true));
96-
serializer.Serialize(stream, expression.ToSerializableExpression());
97-
stream.Seek(0, SeekOrigin.Begin);
98-
var serialized = (SerializableExpression)serializer.Deserialize(stream);
99-
stream.SetLength(0);
100-
Assert.AreEqual(expression.ToExpressionTree(), serialized.ToExpression().ToExpressionTree());
101-
Console.WriteLine("OK");
94+
using (var stream = new MemoryStream()) {
95+
foreach (var expression in Expressions) {
96+
Console.WriteLine(expression.ToString(true));
97+
serializer.Serialize(stream, expression.ToSerializableExpression());
98+
stream.Seek(0, SeekOrigin.Begin);
99+
var serialized = (SerializableExpression) serializer.Deserialize(stream);
100+
stream.SetLength(0);
101+
Assert.AreEqual(expression.ToExpressionTree(), serialized.ToExpression().ToExpressionTree());
102+
Console.WriteLine("OK");
103+
}
102104
}
103105
}
104106

@@ -124,28 +126,29 @@ public void SerializeBenchmarkTest()
124126
private void RunSerializeBenchmark(XmlObjectSerializer serializer, bool warmUp)
125127
{
126128
int operationCount = warmUp ? warmUpOperationCount : actualOperationCount;
127-
var stream = new MemoryStream();
128-
int operation = 0;
129-
long length = 0;
130-
using (CreateMeasurement(warmUp, serializer.GetType().Name, operationCount))
131-
while (operation < operationCount) {
132-
foreach (var expression in Expressions) {
133-
operation++;
134-
if (operation > operationCount)
135-
break;
136-
serializer.WriteObject(stream, expression.ToSerializableExpression());
137-
length += stream.Position;
138-
stream.Seek(0, SeekOrigin.Begin);
139-
var serialized = (SerializableExpression)serializer.ReadObject(stream);
140-
stream.SetLength(0);
129+
using (var stream = new MemoryStream()) {
130+
int operation = 0;
131+
long length = 0;
132+
using (CreateMeasurement(warmUp, serializer.GetType().Name, operationCount))
133+
while (operation < operationCount) {
134+
foreach (var expression in Expressions) {
135+
operation++;
136+
if (operation > operationCount)
137+
break;
138+
serializer.WriteObject(stream, expression.ToSerializableExpression());
139+
length += stream.Position;
140+
stream.Seek(0, SeekOrigin.Begin);
141+
var serialized = (SerializableExpression) serializer.ReadObject(stream);
142+
stream.SetLength(0);
143+
}
141144
}
142-
}
143-
// for (int i = 0; i < operationCount; i++) {
144-
// serializer.Serialize(stream, Expressions[expressionIndex].ToSerializableExpression());
145-
// length += stream.Length;
146-
// stream.SetLength(0);
147-
// }
148-
Console.Out.WriteLine("Stream size: {0} Kb", length / 1024);
145+
// for (int i = 0; i < operationCount; i++) {
146+
// serializer.Serialize(stream, Expressions[expressionIndex].ToSerializableExpression());
147+
// length += stream.Length;
148+
// stream.SetLength(0);
149+
// }
150+
Console.Out.WriteLine("Stream size: {0} Kb", length / 1024);
151+
}
149152
}
150153

151154
private static IDisposable CreateMeasurement(bool warmUp, string name, int operationCount)

Orm/Xtensive.Orm.Tests.Sql/MySQL/MiscTests.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,13 @@ public void ArrayTest()//TODO: Find reason why this pattern is structured like t
6565
SqlSelect select = SqlDml.Select();
6666
select.Where = SqlDml.In(1, i);
6767

68-
MemoryStream ms = new MemoryStream();
69-
BinaryFormatter bf = new BinaryFormatter();
70-
bf.Serialize(ms, select);
68+
using (var mStream = new MemoryStream()) {
69+
var formatter = new BinaryFormatter();
70+
formatter.Serialize(mStream, select);
7171

72-
ms.Seek(0, SeekOrigin.Begin);
73-
select = (SqlSelect)bf.Deserialize(ms);
72+
_ = mStream.Seek(0, SeekOrigin.Begin);
73+
select = (SqlSelect) formatter.Deserialize(mStream);
74+
}
7475

7576
Console.WriteLine(SqlDriver.Compile(select).GetCommandText());
7677
}

Orm/Xtensive.Orm.Tests.Sql/SqlServer/MiscTests.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,13 @@ public void ArrayTest()
7373
SqlSelect select = SqlDml.Select();
7474
select.Where = SqlDml.In(1, i);
7575

76-
MemoryStream ms = new MemoryStream();
77-
BinaryFormatter bf = new BinaryFormatter();
78-
bf.Serialize(ms, select);
76+
using (var mStream = new MemoryStream()) {
77+
var formatter = new BinaryFormatter();
78+
formatter.Serialize(mStream, select);
7979

80-
ms.Seek(0, SeekOrigin.Begin);
81-
select = (SqlSelect)bf.Deserialize(ms);
80+
_ = mStream.Seek(0, SeekOrigin.Begin);
81+
select = (SqlSelect) formatter.Deserialize(mStream);
82+
}
8283

8384
Console.WriteLine(sqlDriver.Compile(select).GetCommandText());
8485
}

Orm/Xtensive.Orm.Tests.Sql/Sqlite/MiscTests.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,19 +118,18 @@ public void ImplicitConversionTest()
118118
[Test]
119119
public void ArrayTest() //TODO: Find reason why this pattern is structured like this.(Malisa)
120120
{
121-
SqlArray<int> i = SqlDml.Array(new int[] {
122-
1, 2
123-
});
121+
SqlArray<int> i = SqlDml.Array(new int[] { 1, 2 });
124122
i.Values[0] = 10;
125123
SqlSelect select = SqlDml.Select();
126124
select.Where = SqlDml.In(1, i);
127125

128-
MemoryStream ms = new MemoryStream();
129-
BinaryFormatter bf = new BinaryFormatter();
130-
bf.Serialize(ms, select);
126+
using (var mStream = new MemoryStream()) {
127+
var formatter = new BinaryFormatter();
128+
formatter.Serialize(mStream, select);
131129

132-
ms.Seek(0, SeekOrigin.Begin);
133-
select = (SqlSelect) bf.Deserialize(ms);
130+
_ = mStream.Seek(0, SeekOrigin.Begin);
131+
select = (SqlSelect) formatter.Deserialize(mStream);
132+
}
134133

135134
Console.WriteLine(sqlDriver.Compile(select).GetCommandText());
136135
}

Orm/Xtensive.Orm.Tests/Issues/Issue0808_StructSerialization.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System;
1+
using System;
22
using System.Collections.Generic;
33
using System.IO;
44
using System.Linq;
@@ -51,18 +51,18 @@ public void MainTest()
5151
var t = typeof(UnifiedCustomerID);
5252
Expression<Func<int, UnifiedCustomerID>> ex = a => new UnifiedCustomerID { Id = 2 };
5353
var serializableExpression = ex.ToSerializableExpression();
54-
var memoryStream = new MemoryStream();
54+
using (var memoryStream = new MemoryStream()) {
55+
var serializer = new DataContractSerializer(typeof(SerializableLambdaExpression),
56+
SerializableExpressionTypes.Except(Enumerable.Repeat(typeof(SerializableLambdaExpression), 1)));
5557

56-
var serializer = new DataContractSerializer(typeof (SerializableLambdaExpression),
57-
SerializableExpressionTypes.Except(Enumerable.Repeat(typeof (SerializableLambdaExpression), 1)));
58+
serializer.WriteObject(memoryStream, serializableExpression);
5859

59-
serializer.WriteObject(memoryStream, serializableExpression);
60+
memoryStream.Position = 0;
6061

61-
memoryStream.Position = 0;
62+
var deserializedExpression = (SerializableLambdaExpression) serializer.ReadObject(memoryStream);
6263

63-
var deserializedExpression = (SerializableLambdaExpression) serializer.ReadObject(memoryStream);
64-
65-
var ex2 = deserializedExpression.ToExpression();
64+
var ex2 = deserializedExpression.ToExpression();
65+
}
6666
}
6767
}
6868
}

Orm/Xtensive.Orm.Tests/Model/FieldConverterTest.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,19 @@ public DateTime? Date
4848

4949
private static byte[] Serialize(ObservableCollection<int> collection)
5050
{
51-
var ms = new MemoryStream();
52-
var bf = new BinaryFormatter();
53-
bf.Serialize(ms, collection);
54-
return ms.ToArray();
51+
using (var ms = new MemoryStream()) {
52+
var bf = new BinaryFormatter();
53+
bf.Serialize(ms, collection);
54+
return ms.ToArray();
55+
}
5556
}
5657

5758
private static ObservableCollection<int> Deserialize(byte[] bytes)
5859
{
59-
var bf = new BinaryFormatter();
60-
var ms = new MemoryStream(bytes);
61-
return (ObservableCollection<int>) bf.Deserialize(ms);
60+
using (var ms = new MemoryStream(bytes)) {
61+
var bf = new BinaryFormatter();
62+
return (ObservableCollection<int>) bf.Deserialize(ms);
63+
}
6264
}
6365

6466
protected override void OnInitialize()

0 commit comments

Comments
 (0)