OSDN Git Service

1st attempt to fix Protocol buffer corruption issue
[automap/automap.git] / Automap / Data / PngMetadataChunk.cs
index c62aadf..132b947 100644 (file)
@@ -1,10 +1,12 @@
 using System;
-
-using Vintagestory.API.Util;
+using System.Diagnostics;
+using System.IO;
 
 using Hjg.Pngcs;
 using Hjg.Pngcs.Chunks;
 
+using ProtoBuf;
+
 namespace Automap
 {
        /// <summary>
@@ -31,17 +33,23 @@ namespace Automap
 
                public override ChunkRaw CreateRawChunk()
                {
-                       var datas = SerializerUtil.Serialize<ColumnMeta>(ChunkMetadata);
+                       using (MemoryStream outputStream = new MemoryStream( )) 
+                       {
+                       Serializer.Serialize<ColumnMeta>(outputStream, this.ChunkMetadata);
 
-                       ChunkRaw rawChunk = createEmptyChunk(datas.Length, true);
-                       rawChunk.Data = datas;
+                       ChunkRaw pngChunk = createEmptyChunk(( int )outputStream.Length, true);
+                       pngChunk.Data = outputStream.ToArray();
 
-                       return rawChunk;
+                       return pngChunk;
+                       }
                }
 
-               public override void ParseFromRaw(ChunkRaw rawChunk)
-               {
-                       this.ChunkMetadata = SerializerUtil.Deserialize<ColumnMeta>(rawChunk.Data);
+               public override void ParseFromRaw(ChunkRaw pngChunk)
+               {                       
+                       using (MemoryStream inputStream = new MemoryStream(pngChunk.Data, false)) 
+                       {
+                       this.ChunkMetadata = Serializer.Deserialize<ColumnMeta>(inputStream);                           
+                       }
                }
 
                public override void CloneDataFromRead(PngChunk other)