[mapguide-commits] r6547 - trunk/MgDev/Common/PlatformBase/Services
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Thu Mar 15 07:43:38 EDT 2012
Author: jng
Date: 2012-03-15 04:43:38 -0700 (Thu, 15 Mar 2012)
New Revision: 6547
Modified:
trunk/MgDev/Common/PlatformBase/Services/Raster.cpp
Log:
#1968: Fix incorrect serialization/deserialization in MgRaster. Reviewed by Trevor Wekel
Modified: trunk/MgDev/Common/PlatformBase/Services/Raster.cpp
===================================================================
--- trunk/MgDev/Common/PlatformBase/Services/Raster.cpp 2012-03-15 06:30:11 UTC (rev 6546)
+++ trunk/MgDev/Common/PlatformBase/Services/Raster.cpp 2012-03-15 11:43:38 UTC (rev 6547)
@@ -226,7 +226,16 @@
stream->WriteString(m_rasterPropName);
stream->WriteInt32(m_bpp);
stream->WriteInt32(m_dataModel);
- stream->WriteObject(m_palette.p);
+
+ // hack to handle null palette. (NOTE: copy/pasted MgByte serialization logic from MgSpatialContextData)
+ Ptr<MgByte> tmpPalette = m_palette;
+ if (tmpPalette == NULL)
+ tmpPalette = new MgByte();
+
+ Ptr<MgByteSource> byteSource = new MgByteSource(tmpPalette);
+ Ptr<MgByteReader> byteReader = byteSource->GetReader();
+ stream->WriteStream(byteReader);
+
// stream->WriteObject(m_extent);
stream->WriteInt32(m_numBands);
stream->WriteInt32(m_curBand);
@@ -247,7 +256,12 @@
stream->GetString(m_rasterPropName);
stream->GetInt32(m_bpp);
stream->GetInt32(m_dataModel);
- m_palette = (MgByte*)stream->GetObject();
+
+ //(NOTE: copy/pasted MgByte deserialization logic from MgSpatialContextData)
+ Ptr<MgByteReader> byteReader = stream->GetStream();
+ Ptr<MgByteSink> byteSink = new MgByteSink(byteReader);
+ m_palette = byteSink->ToBuffer();
+
// m_extent = (MgEnvelope*)stream->GetObject();
stream->GetInt32(m_numBands);
stream->GetInt32(m_curBand);
More information about the mapguide-commits
mailing list