diff options
Diffstat (limited to 'OpenSim/Region/PhysicsModules/Meshing')
-rw-r--r-- | OpenSim/Region/PhysicsModules/Meshing/Meshmerizer/Meshmerizer.cs | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/OpenSim/Region/PhysicsModules/Meshing/Meshmerizer/Meshmerizer.cs b/OpenSim/Region/PhysicsModules/Meshing/Meshmerizer/Meshmerizer.cs index 0d4b6b9..de39d0e 100644 --- a/OpenSim/Region/PhysicsModules/Meshing/Meshmerizer/Meshmerizer.cs +++ b/OpenSim/Region/PhysicsModules/Meshing/Meshmerizer/Meshmerizer.cs | |||
@@ -597,28 +597,22 @@ namespace OpenSim.Region.PhysicsModule.Meshing | |||
597 | { | 597 | { |
598 | OSD decodedOsd = null; | 598 | OSD decodedOsd = null; |
599 | 599 | ||
600 | using (MemoryStream inMs = new MemoryStream(meshBytes)) | 600 | using (MemoryStream outMs = new MemoryStream()) |
601 | { | 601 | { |
602 | using (MemoryStream outMs = new MemoryStream()) | 602 | using (MemoryStream inMs = new MemoryStream(meshBytes)) |
603 | { | 603 | { |
604 | using (DeflateStream decompressionStream = new DeflateStream(inMs, CompressionMode.Decompress)) | 604 | using (DeflateStream decompressionStream = new DeflateStream(inMs, CompressionMode.Decompress)) |
605 | { | 605 | { |
606 | byte[] readBuffer = new byte[2048]; | 606 | byte[] readBuffer = new byte[8192]; |
607 | inMs.Read(readBuffer, 0, 2); // skip first 2 bytes in header | 607 | inMs.Read(readBuffer, 0, 2); // skip first 2 bytes in header |
608 | int readLen = 0; | 608 | int readLen = 0; |
609 | 609 | ||
610 | while ((readLen = decompressionStream.Read(readBuffer, 0, readBuffer.Length)) > 0) | 610 | while ((readLen = decompressionStream.Read(readBuffer, 0, readBuffer.Length)) > 0) |
611 | outMs.Write(readBuffer, 0, readLen); | 611 | outMs.Write(readBuffer, 0, readLen); |
612 | |||
613 | outMs.Flush(); | ||
614 | |||
615 | outMs.Seek(0, SeekOrigin.Begin); | ||
616 | |||
617 | byte[] decompressedBuf = outMs.GetBuffer(); | ||
618 | |||
619 | decodedOsd = OSDParser.DeserializeLLSDBinary(decompressedBuf); | ||
620 | } | 612 | } |
621 | } | 613 | } |
614 | outMs.Seek(0, SeekOrigin.Begin); | ||
615 | decodedOsd = OSDParser.DeserializeLLSDBinary(outMs); | ||
622 | } | 616 | } |
623 | return decodedOsd; | 617 | return decodedOsd; |
624 | } | 618 | } |