Skip to content

Commit 358cecb

Browse files
committed
MemoryStream Set: incorrect get size and write to buffer causes exception (C# generator) #71
1 parent 4a63c8b commit 358cecb

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

projects/CSharp/Proto/com.chronoxor.fbe.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,7 +1427,7 @@ public override bool Verify()
14271427
}
14281428

14291429
// Get the bytes value
1430-
public override void Get(out MemoryStream value) { Get(out value, new MemoryStream(0)); }
1430+
public override void Get(out MemoryStream value) { Get(out value, new MemoryStream()); }
14311431
public override void Get(out MemoryStream value, MemoryStream defaults)
14321432
{
14331433
Debug.Assert((defaults != null), "Invalid default bytes value!");
@@ -1475,7 +1475,7 @@ public override void Set(MemoryStream value)
14751475

14761476
Write(FBEOffset, fbeBytesOffset);
14771477
Write(fbeBytesOffset, fbeBytesSize);
1478-
Write(fbeBytesOffset + 4, value.GetBuffer());
1478+
Write(fbeBytesOffset + 4, value.GetBuffer(), 0, fbeBytesSize);
14791479
}
14801480
}
14811481

@@ -6309,7 +6309,7 @@ public override long Verify()
63096309
// Get the bytes value
63106310
public override long Get(out MemoryStream value)
63116311
{
6312-
value = new MemoryStream(0);
6312+
value = new MemoryStream();
63136313

63146314
Debug.Assert(((_buffer.Offset + FBEOffset + 4) <= _buffer.Size), "Model is broken!");
63156315
if ((_buffer.Offset + FBEOffset + 4) > _buffer.Size)
@@ -6342,7 +6342,7 @@ public override long Set(MemoryStream value)
63426342
return 4;
63436343

63446344
Write(FBEOffset, fbeBytesSize);
6345-
Write(FBEOffset + 4, value.GetBuffer());
6345+
Write(FBEOffset + 4, value.GetBuffer(), 0, fbeBytesSize);
63466346
return 4 + fbeBytesSize;
63476347
}
63486348
}

projects/CSharp/Proto/com.chronoxor.test.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8228,7 +8228,7 @@ public struct StructBytes : IComparable, IComparable<StructBytes>, IEquatable<St
82288228

82298229
public static StructBytes Default => new StructBytes
82308230
{
8231-
f1 = new MemoryStream(0)
8231+
f1 = new MemoryStream()
82328232
, f2 = null
82338233
, f3 = null
82348234
};
@@ -8482,7 +8482,7 @@ public void GetFields(out StructBytes fbeValue, long fbeStructSize)
84828482
if ((fbeCurrentSize + f1.FBESize) <= fbeStructSize)
84838483
f1.Get(out fbeValue.f1);
84848484
else
8485-
fbeValue.f1 = new MemoryStream(0);
8485+
fbeValue.f1 = new MemoryStream();
84868486
fbeCurrentSize += f1.FBESize;
84878487

84888488
if ((fbeCurrentSize + f2.FBESize) <= fbeStructSize)

source/generator_csharp.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,7 +1031,7 @@ void GeneratorCSharp::GenerateFBEFieldModelBytes()
10311031
}
10321032
10331033
// Get the bytes value
1034-
public override void Get(out MemoryStream value) { Get(out value, new MemoryStream(0)); }
1034+
public override void Get(out MemoryStream value) { Get(out value, new MemoryStream()); }
10351035
public override void Get(out MemoryStream value, MemoryStream defaults)
10361036
{
10371037
Debug.Assert((defaults != null), "Invalid default bytes value!");
@@ -1079,7 +1079,7 @@ void GeneratorCSharp::GenerateFBEFieldModelBytes()
10791079
10801080
Write(FBEOffset, fbeBytesOffset);
10811081
Write(fbeBytesOffset, fbeBytesSize);
1082-
Write(fbeBytesOffset + 4, value.GetBuffer());
1082+
Write(fbeBytesOffset + 4, value.GetBuffer(), 0, fbeBytesSize);
10831083
}
10841084
}
10851085
)CODE";
@@ -2331,7 +2331,7 @@ void GeneratorCSharp::GenerateFBEFinalModelBytes()
23312331
// Get the bytes value
23322332
public override long Get(out MemoryStream value)
23332333
{
2334-
value = new MemoryStream(0);
2334+
value = new MemoryStream();
23352335
23362336
Debug.Assert(((_buffer.Offset + FBEOffset + 4) <= _buffer.Size), "Model is broken!");
23372337
if ((_buffer.Offset + FBEOffset + 4) > _buffer.Size)
@@ -2364,7 +2364,7 @@ void GeneratorCSharp::GenerateFBEFinalModelBytes()
23642364
return 4;
23652365
23662366
Write(FBEOffset, fbeBytesSize);
2367-
Write(FBEOffset + 4, value.GetBuffer());
2367+
Write(FBEOffset + 4, value.GetBuffer(), 0, fbeBytesSize);
23682368
return 4 + fbeBytesSize;
23692369
}
23702370
}
@@ -8647,7 +8647,7 @@ std::string GeneratorCSharp::ConvertDefault(const std::string& domain, const std
86478647
if (type == "bool")
86488648
return "false";
86498649
else if (type == "bytes")
8650-
return "new MemoryStream(0)";
8650+
return "new MemoryStream()";
86518651
else if ((type == "char") || (type == "wchar"))
86528652
return "'\\0'";
86538653
else if ((type == "byte") || (type == "int8") || (type == "uint8") || (type == "int16") || (type == "uint16") || (type == "int32") || (type == "uint32") || (type == "int64") || (type == "uint64"))

0 commit comments

Comments
 (0)