PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ _rti_iterator_arg_callback_init()

static int _rti_iterator_arg_callback_init ( _rti_iterator_arg  _param)
static

Definition at line 711 of file rt_mapalgebra.c.

711  {
712  uint32_t i = 0;
713 
714  _param->arg = rtalloc(sizeof(struct rt_iterator_arg_t));
715  if (_param->arg == NULL) {
716  rterror("_rti_iterator_arg_callback_init: Could not allocate memory for rt_iterator_arg");
717  return 0;
718  }
719 
720  _param->arg->values = NULL;
721  _param->arg->nodata = NULL;
722  _param->arg->src_pixel = NULL;
723 
724  /* initialize argument components */
725  _param->arg->values = rtalloc(sizeof(double **) * _param->count);
726  _param->arg->nodata = rtalloc(sizeof(int **) * _param->count);
727  _param->arg->src_pixel = rtalloc(sizeof(int *) * _param->count);
728  if (_param->arg->values == NULL || _param->arg->nodata == NULL || _param->arg->src_pixel == NULL) {
729  rterror("_rti_iterator_arg_callback_init: Could not allocate memory for element of rt_iterator_arg");
730  return 0;
731  }
732  memset(_param->arg->values, 0, sizeof(double **) * _param->count);
733  memset(_param->arg->nodata, 0, sizeof(int **) * _param->count);
734 
735  /* initialize pos */
736  for (i = 0; i < _param->count; i++) {
737 
738  _param->arg->src_pixel[i] = rtalloc(sizeof(int) * 2);
739  if (_param->arg->src_pixel[i] == NULL) {
740  rterror("_rti_iterator_arg_callback_init: Could not allocate memory for position elements of rt_iterator_arg");
741  return 0;
742  }
743  memset(_param->arg->src_pixel[i], 0, sizeof(int) * 2);
744  }
745 
746  _param->arg->rasters = _param->count;
747  _param->arg->rows = _param->dimension.rows;
748  _param->arg->columns = _param->dimension.columns;
749 
750  _param->arg->dst_pixel[0] = 0;
751  _param->arg->dst_pixel[1] = 0;
752 
753  return 1;
754 }
void rterror(const char *fmt,...) __attribute__((format(printf
Wrappers used for reporting errors and info.
void * rtalloc(size_t size)
Wrappers used for managing memory.
Definition: rt_context.c:191
struct _rti_iterator_arg_t::@18 dimension
rt_iterator_arg arg
double *** values
Definition: librtcore.h:2663
uint32_t columns
Definition: librtcore.h:2659
uint16_t rasters
Definition: librtcore.h:2655

References _rti_iterator_arg_t::arg, rt_iterator_arg_t::columns, _rti_iterator_arg_t::columns, _rti_iterator_arg_t::count, _rti_iterator_arg_t::dimension, rt_iterator_arg_t::dst_pixel, rt_iterator_arg_t::nodata, rt_iterator_arg_t::rasters, rt_iterator_arg_t::rows, _rti_iterator_arg_t::rows, rtalloc(), rterror(), rt_iterator_arg_t::src_pixel, and rt_iterator_arg_t::values.

Referenced by rt_raster_iterator().

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