Changeset 11909
- Timestamp:
- 08/18/07 12:48:14 (1 year ago)
- Files:
-
- trunk/gdal/frmts/vrt/vrtdataset.cpp (modified) (1 diff)
- trunk/gdal/frmts/vrt/vrtdriver.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/gdal/frmts/vrt/vrtdataset.cpp
r11898 r11909 150 150 /* Setup root node and attributes. */ 151 151 /* -------------------------------------------------------------------- */ 152 CPLXMLNode *psDSTree, *psMD; 152 CPLXMLNode *psDSTree = NULL; 153 CPLXMLNode *psMD = NULL; 153 154 char szNumber[128]; 154 155 trunk/gdal/frmts/vrt/vrtdriver.cpp
r11898 r11909 153 153 if( EQUAL(poSrcDS->GetDriver()->GetDescription(),"VRT") ) 154 154 { 155 FILE *fpVRT = NULL;156 157 fpVRT = VSIFOpen( pszFilename, "w" );158 159 if( NULL == fpVRT )160 {161 CPLError( CE_Failure, CPLE_AppDefined,162 "Can not open virtual dataset (\'%s\') for writing.",163 pszFilename );164 return NULL;165 }166 155 167 156 /* -------------------------------------------------------------------- */ … … 170 159 char *pszVRTPath = CPLStrdup(CPLGetPath(pszFilename)); 171 160 CPLXMLNode *psDSTree = ((VRTDataset *) poSrcDS)->SerializeToXML( pszVRTPath ); 172 char *pszXML; 173 174 pszXML = CPLSerializeXMLTree( psDSTree ); 161 162 char *pszXML = CPLSerializeXMLTree( psDSTree ); 175 163 176 164 CPLDestroyXMLNode( psDSTree ); … … 181 169 /* Write to disk. */ 182 170 /* -------------------------------------------------------------------- */ 183 CPLAssert( NULL != fpVRT ); 184 185 VSIFWrite( pszXML, 1, strlen(pszXML), fpVRT ); 186 VSIFClose( fpVRT ); 171 GDALDataset* pCopyDS = NULL; 172 173 if( 0 != strlen( pszFilename ) ) 174 { 175 FILE *fpVRT = NULL; 176 177 fpVRT = VSIFOpen( pszFilename, "w" ); 178 CPLAssert( NULL != fpVRT ); 179 180 VSIFWrite( pszXML, 1, strlen(pszXML), fpVRT ); 181 VSIFClose( fpVRT ); 182 183 pCopyDS = (GDALDataset *) GDALOpen( pszFilename, GA_Update ); 184 } 185 else 186 { 187 /* No destination file is given, so pass serialized XML directly. */ 188 189 pCopyDS = (GDALDataset *) GDALOpen( pszXML, GA_Update ); 190 } 187 191 188 192 CPLFree( pszXML ); 189 190 return (GDALDataset *) GDALOpen( pszFilename, GA_Update );193 194 return pCopyDS; 191 195 } 192 196
