PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ _rti_warp_arg_destroy()

static void _rti_warp_arg_destroy ( _rti_warp_arg  arg)
static

Definition at line 104 of file rt_warp.c.

104  {
105  int i = 0;
106 
107  if (arg->dst.ds != NULL)
108  GDALClose(arg->dst.ds);
109  if (arg->dst.srs != NULL)
110  CPLFree(arg->dst.srs);
111 
112  if (arg->dst.drv != NULL && arg->dst.destroy_drv) {
113  GDALDeregisterDriver(arg->dst.drv);
114  GDALDestroyDriver(arg->dst.drv);
115  }
116 
117  if (arg->src.ds != NULL)
118  GDALClose(arg->src.ds);
119  if (arg->src.srs != NULL)
120  CPLFree(arg->src.srs);
121 
122  if (arg->src.drv != NULL && arg->src.destroy_drv) {
123  GDALDeregisterDriver(arg->src.drv);
124  GDALDestroyDriver(arg->src.drv);
125  }
126 
127  if (arg->transform.func == GDALApproxTransform) {
128  if (arg->transform.arg.imgproj != NULL)
129  GDALDestroyGenImgProjTransformer(arg->transform.arg.imgproj);
130  }
131 
132  if (arg->wopts != NULL)
133  GDALDestroyWarpOptions(arg->wopts);
134 
135  if (arg->transform.option.len > 0 && arg->transform.option.item != NULL) {
136  for (i = 0; i < arg->transform.option.len; i++) {
137  if (arg->transform.option.item[i] != NULL)
138  rtdealloc(arg->transform.option.item[i]);
139  }
140  rtdealloc(arg->transform.option.item);
141  }
142 
143  rtdealloc(arg);
144  arg = NULL;
145 }
void rtdealloc(void *mem)
Definition: rt_context.c:206
struct _rti_warp_arg_t::@20 src
char * srs
Definition: rt_warp.c:46
GDALDriverH drv
Definition: rt_warp.c:44
struct _rti_warp_arg_t::@20 dst
GDALDatasetH ds
Definition: rt_warp.c:45
void * transform
Definition: rt_warp.c:59
int destroy_drv
Definition: rt_warp.c:47
GDALWarpOptions * wopts
Definition: rt_warp.c:50

References _rti_warp_arg_t::destroy_drv, _rti_warp_arg_t::drv, _rti_warp_arg_t::ds, _rti_warp_arg_t::dst, rtdealloc(), _rti_warp_arg_t::src, _rti_warp_arg_t::srs, _rti_warp_arg_t::transform, and _rti_warp_arg_t::wopts.

Referenced by rt_raster_gdal_warp().

Here is the call graph for this function:
Here is the caller graph for this function: