Add cleanup code to LIDAR resampling

This commit is contained in:
Gareth Evans
2017-06-14 20:40:52 +01:00
parent 02bd67f11b
commit ff3bc0c164
3 changed files with 21 additions and 1 deletions

View File

@@ -304,7 +304,6 @@ int loadLIDAR(char *filenames, int resample)
fprintf(stderr, "Overflow %zu\n",i); fprintf(stderr, "Overflow %zu\n",i);
continue; continue;
} }
// fprintf(stderr,"dest:%p src:%p\n", dest_addr, src_addr);
memcpy( dest_addr, src_addr, tiles[i].width * sizeof(short) ); memcpy( dest_addr, src_addr, tiles[i].width * sizeof(short) );
} }
} }
@@ -349,6 +348,16 @@ int loadLIDAR(char *filenames, int resample)
if (debug) if (debug)
fprintf(stderr, "fc %d WIDTH %d HEIGHT %d ippd %d minN %.5f maxN %.5f minW %.5f maxW %.5f avgCellsize %.5f\n", fc, width, height, ippd,min_north,max_north,min_west,max_west,avgCellsize); fprintf(stderr, "fc %d WIDTH %d HEIGHT %d ippd %d minN %.5f maxN %.5f minW %.5f maxW %.5f avgCellsize %.5f\n", fc, width, height, ippd,min_north,max_north,min_west,max_west,avgCellsize);
cleanup:
if ( tiles != NULL ) {
for (size_t i = 0; i < fc; i++) {
tile_destroy(&tiles[i]);
}
}
free(tiles);
return 0; return 0;
} }

View File

@@ -233,3 +233,13 @@ int tile_resize(tile_t* tile, int resolution){
fprintf(stderr, "Resampling: Current %dm Desired %dm Scale %d\n", current_res, resolution, scaling_factor); fprintf(stderr, "Resampling: Current %dm Desired %dm Scale %d\n", current_res, resolution, scaling_factor);
return tile_rescale(tile, scaling_factor); return tile_rescale(tile, scaling_factor);
} }
/*
* tile_destroy
* This function simply destroys any data associated with a tile
*/
void tile_destroy(tile_t* tile){
if (tile->data != NULL)
free(tile->data);
}

View File

@@ -42,5 +42,6 @@ typedef struct _tile_t{
int tile_load_lidar(tile_t*, char *); int tile_load_lidar(tile_t*, char *);
int tile_rescale(tile_t *, float); int tile_rescale(tile_t *, float);
void tile_destroy(tile_t *);
#endif #endif