if (inc_vals) {
/* free unused memory */
if (sample_size != k) {
- rtrealloc(values, k * sizeof(double));
+ values = rtrealloc(values, k * sizeof(double));
}
stats->values = values;
#endif
*rtn_count = quantiles_count;
+ if (init_quantiles) rtdealloc(quantiles);
RASTER_DEBUG(3, "done");
return rtn;
}
OGR_Fld_Destroy(hFldDfn);
OGR_DS_DeleteLayer(memdatasource, 0);
+ if (NULL != pszQuery) rtdealloc(pszQuery);
OGRReleaseDataSource(memdatasource);
return 0;
OGR_Fld_Destroy(hFldDfn);
OGR_DS_DeleteLayer(memdatasource, 0);
+ if (NULL != pszQuery) rtdealloc(pszQuery);
OGRReleaseDataSource(memdatasource);
return pols;
}
/* free unused memory */
- rtrealloc(rtn, j * sizeof(struct rt_gdaldriver_t));
+ rtn = rtrealloc(rtn, j * sizeof(struct rt_gdaldriver_t));
*drv_count = j;
return rtn;
/* necessary??? */
GDALFlushCache(ds);
+ if (allocBandNums) rtdealloc(bandNums);
+
return ds;
}
static void testRasterReplaceBand() {
rt_raster raster;
rt_band band;
+ rt_band rband;
void* mem;
size_t datasize;
uint16_t width;
raster = rt_raster_new(10, 10);
assert(raster); /* or we're out of virtual memory */
- band = addBand(raster, PT_8BUI, 0, 0);
- CHECK(band);
+ rband = addBand(raster, PT_8BUI, 0, 0);
+ CHECK(rband);
band = addBand(raster, PT_8BUI, 1, 255);
CHECK(band);
band = rt_band_new_inline(width, height, PT_8BUI, 1, 1, mem);
assert(band);
+ rband = rt_raster_get_band(raster, 0);
+ assert(rband);
+
rtn = rt_raster_replace_band(raster, band, 0);
CHECK(rtn);
nodata = rt_band_get_nodata(rt_raster_get_band(raster, 0));
CHECK((nodata == 1));
- rt_band_destroy(band);
- rt_raster_destroy(raster);
- free(mem);
+ deepRelease(raster);
+
+ mem = rt_band_get_data(rband);
+ if (mem) free(mem);
+ rt_band_destroy(rband);
}
struct rt_reclassexpr_t {
int rtn;
rt_band newband;
double val;
+ void *mem = NULL;
raster = rt_raster_new(100, 10);
assert(raster); /* or we're out of virtual memory */
CHECK_EQUALS(val, 255);
- for (i = cnt - 1; i >= 0; i--)
- free(exprset[i]);
+ for (i = cnt - 1; i >= 0; i--) free(exprset[i]);
free(exprset);
- rt_band_destroy(newband);
deepRelease(raster);
+
+ mem = rt_band_get_data(newband);
+ if (mem) free(mem);
+ rt_band_destroy(newband);
}
struct rt_gdaldriver_t {
for (i = 0; i < size; i++) {
/*printf("gdal_driver: %s\n", drv[i].short_name);*/
CHECK(drv[i].short_name);
+ rtdealloc(drv[i].create_options);
}
+
+ rtdealloc(drv);
}
static void testRasterToGDAL() {