@@ -377,10 +377,10 @@ void QgsGml::endElement( const XML_Char* el )
377
377
else if ( theParseMode == feature && localName == mTypeName )
378
378
{
379
379
Q_ASSERT ( mCurrentFeature );
380
- if ( mCurrentWKBSize > 0 )
380
+ if ( mCurrentWKB . size () > 0 )
381
381
{
382
382
QgsGeometry *g = new QgsGeometry ();
383
- g->fromWkb ( mCurrentWKB , mCurrentWKBSize );
383
+ g->fromWkb ( mCurrentWKB , mCurrentWKB . size () );
384
384
mCurrentFeature ->setGeometry ( g );
385
385
mCurrentWKB = QgsWkbPtr ( nullptr , 0 );
386
386
}
@@ -767,10 +767,10 @@ int QgsGml::getRingWKB( QgsWkbPtr &wkbPtr, const QList<QgsPoint>& ringCoordinate
767
767
768
768
int QgsGml::createMultiLineFromFragments ()
769
769
{
770
- mCurrentWKBSize = 1 + 2 * sizeof ( int ) + totalWKBFragmentSize ();
771
- mCurrentWKB = QgsWkbPtr ( new unsigned char [mCurrentWKBSize ], mCurrentWKBSize );
770
+ int size = 1 + 2 * sizeof ( int ) + totalWKBFragmentSize ();
771
+ mCurrentWKB = QgsWkbPtr ( new unsigned char [size ], size );
772
772
773
- QgsWkbPtr wkbPtr ( mCurrentWKB , mCurrentWKBSize );
773
+ QgsWkbPtr wkbPtr ( mCurrentWKB );
774
774
775
775
wkbPtr << mEndian << QGis::WKBMultiLineString << mCurrentWKBFragments .constBegin ()->size ();
776
776
@@ -790,8 +790,8 @@ int QgsGml::createMultiLineFromFragments()
790
790
791
791
int QgsGml::createMultiPointFromFragments ()
792
792
{
793
- mCurrentWKBSize = 1 + 2 * sizeof ( int ) + totalWKBFragmentSize ();
794
- mCurrentWKB = QgsWkbPtr ( new unsigned char [mCurrentWKBSize ], mCurrentWKBSize );
793
+ int size = 1 + 2 * sizeof ( int ) + totalWKBFragmentSize ();
794
+ mCurrentWKB = QgsWkbPtr ( new unsigned char [size ], size );
795
795
796
796
QgsWkbPtr wkbPtr ( mCurrentWKB );
797
797
wkbPtr << mEndian << QGis::WKBMultiPoint << mCurrentWKBFragments .constBegin ()->size ();
@@ -812,8 +812,8 @@ int QgsGml::createMultiPointFromFragments()
812
812
813
813
int QgsGml::createPolygonFromFragments ()
814
814
{
815
- mCurrentWKBSize = 1 + 2 * sizeof ( int ) + totalWKBFragmentSize ();
816
- mCurrentWKB = QgsWkbPtr ( new unsigned char [mCurrentWKBSize ], mCurrentWKBSize );
815
+ int size = 1 + 2 * sizeof ( int ) + totalWKBFragmentSize ();
816
+ mCurrentWKB = QgsWkbPtr ( new unsigned char [size ], size );
817
817
818
818
QgsWkbPtr wkbPtr ( mCurrentWKB );
819
819
wkbPtr << mEndian << QGis::WKBPolygon << mCurrentWKBFragments .constBegin ()->size ();
@@ -833,12 +833,12 @@ int QgsGml::createPolygonFromFragments()
833
833
834
834
int QgsGml::createMultiPolygonFromFragments ()
835
835
{
836
- mCurrentWKBSize = 0 ;
837
- mCurrentWKBSize += 1 + 2 * sizeof ( int );
838
- mCurrentWKBSize += totalWKBFragmentSize ();
839
- mCurrentWKBSize += mCurrentWKBFragments .size () * ( 1 + 2 * sizeof ( int ) ); // fragments are just the rings
836
+ int size = 0 ;
837
+ size += 1 + 2 * sizeof ( int );
838
+ size += totalWKBFragmentSize ();
839
+ size += mCurrentWKBFragments .size () * ( 1 + 2 * sizeof ( int ) ); // fragments are just the rings
840
840
841
- mCurrentWKB = QgsWkbPtr ( new unsigned char [mCurrentWKBSize ], mCurrentWKBSize );
841
+ mCurrentWKB = QgsWkbPtr ( new unsigned char [size ], size );
842
842
843
843
QgsWkbPtr wkbPtr ( mCurrentWKB );
844
844
wkbPtr << ( char ) mEndian << QGis::WKBMultiPolygon << mCurrentWKBFragments .size ();
0 commit comments