Changeset 8289
- Timestamp:
- 05/08/08 17:17:53
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
OpenSceneGraph/trunk/src/osgPlugins/shp/ESRIShape.cpp
r7639 r8289 10 10 11 11 using namespace ESRIShape ; 12 13 #define SAFE_DELETE_ARRAY( ptr ) delete[] ptr; ptr = 0L; 12 14 13 15 template <class T> … … 244 246 MultiPoint::~MultiPoint() 245 247 { 246 delete [] points;248 delete[] points; 247 249 } 248 250 … … 252 254 if( rh.read(fd) == false ) 253 255 return false; 256 257 SAFE_DELETE_ARRAY( points ); 254 258 255 259 Integer shapeType; … … 318 322 return false; 319 323 324 SAFE_DELETE_ARRAY( parts ); 325 SAFE_DELETE_ARRAY( points ); 326 320 327 Integer shapeType; 321 328 if( readVal<Integer>(fd, shapeType, LittleEndian ) == false ) … … 387 394 return false; 388 395 396 SAFE_DELETE_ARRAY( parts ); 397 SAFE_DELETE_ARRAY( points ); 398 389 399 Integer shapeType; 390 400 if( readVal<Integer>(fd, shapeType, LittleEndian ) == false ) … … 501 511 if( rh.read(fd) == false ) 502 512 return false; 513 514 SAFE_DELETE_ARRAY( points ); 515 SAFE_DELETE_ARRAY( mArray ); 503 516 504 517 Integer shapeType; … … 591 604 return false; 592 605 606 SAFE_DELETE_ARRAY( parts ); 607 SAFE_DELETE_ARRAY( points ); 608 SAFE_DELETE_ARRAY( mArray ); 609 593 610 Integer shapeType; 594 611 if( readVal<Integer>(fd, shapeType, LittleEndian ) == false ) … … 671 688 } 672 689 690 PolygonM::~PolygonM() 691 { 692 delete[] parts; 693 delete[] points; 694 delete[] mArray; 695 }; 696 697 673 698 bool PolygonM::read( int fd ) 674 699 { … … 676 701 if( rh.read(fd) == false ) 677 702 return false; 703 704 SAFE_DELETE_ARRAY( parts ); 705 SAFE_DELETE_ARRAY( points ); 706 SAFE_DELETE_ARRAY( mArray ); 678 707 679 708 Integer shapeType; … … 820 849 if( rh.read(fd) == false ) 821 850 return false; 851 852 SAFE_DELETE_ARRAY( points ); 853 SAFE_DELETE_ARRAY( zArray ); 854 SAFE_DELETE_ARRAY( mArray ); 822 855 823 856 Integer shapeType; … … 924 957 delete [] points; 925 958 delete [] zArray; 926 if( mArray != 0L ) 927 delete [] mArray; 959 delete [] mArray; 928 960 } 929 961 … … 933 965 if( rh.read(fd) == false ) 934 966 return false; 967 968 SAFE_DELETE_ARRAY( parts ); 969 SAFE_DELETE_ARRAY( points ); 970 SAFE_DELETE_ARRAY( zArray ); 971 SAFE_DELETE_ARRAY( mArray ); 935 972 936 973 Integer shapeType; … … 977 1014 int Z = Y + 16 + (8 * numPoints); 978 1015 979 if( rh.contentLength >Z )1016 if( rh.contentLength != Z ) 980 1017 { 981 1018 mRange.read(fd); … … 997 1034 numPoints(0), 998 1035 parts(0L), 999 points(0L) , 1036 points(0L), 1037 zArray(0L), 1000 1038 mArray(0L) 1001 1039 {} … … 1021 1059 points[i] = p.points[i]; 1022 1060 zArray[i] = p.zArray[i]; // jcm 1061 // M-Array seems to be missing sometimes 1062 if(p.mArray) 1023 1063 mArray[i] = p.mArray[i]; 1024 1064 } … … 1030 1070 delete [] points; 1031 1071 delete [] zArray; 1032 if( mArray != 0L ) 1033 delete [] mArray; 1072 delete [] mArray; 1034 1073 } 1035 1074 … … 1039 1078 if( rh.read(fd) == false ) 1040 1079 return false; 1080 1081 SAFE_DELETE_ARRAY( parts ); 1082 SAFE_DELETE_ARRAY( points ); 1083 SAFE_DELETE_ARRAY( zArray ); 1084 SAFE_DELETE_ARRAY( mArray ); 1041 1085 1042 1086 Integer shapeType; … … 1083 1127 int Y = X + (16*numPoints); 1084 1128 int Z = Y + 16 + (8*numPoints); 1085 if( rh.contentLength >Z )1129 if( rh.contentLength != Z ) 1086 1130 { 1087 1131 if( mRange.read(fd) == false ) … … 1166 1210 delete [] points; 1167 1211 delete [] zArray; 1168 if( mArray != 0L ) 1169 delete [] mArray; 1212 delete [] mArray; 1170 1213 } 1171 1214 … … 1175 1218 if( rh.read(fd) == false ) 1176 1219 return false; 1220 1221 SAFE_DELETE_ARRAY( parts ); 1222 SAFE_DELETE_ARRAY( partTypes ); 1223 SAFE_DELETE_ARRAY( points ); 1224 SAFE_DELETE_ARRAY( zArray ); 1225 SAFE_DELETE_ARRAY( mArray ); 1177 1226 1178 1227 Integer shapeType; OpenSceneGraph/trunk/src/osgPlugins/shp/ESRIShape.h
r7639 r8289 275 275 PolygonM(const PolygonM &p); 276 276 277 virtual ~PolygonM(); 278 277 279 bool read( int fd ); 278 280 };
