File: ensure_array_size.c

package info (click to toggle)
cdo 2.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 49,836 kB
  • sloc: cpp: 185,271; ansic: 95,766; sh: 7,192; f90: 6,147; makefile: 1,977; ruby: 1,078; csh: 1,028; python: 995; fortran: 319; pascal: 219; perl: 9
file content (17 lines) | stat: -rw-r--r-- 488 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include <stdlib.h>

#include "ensure_array_size.h"
#include "error.h"

void
realloc_array(void **array, size_t elem_size, size_t *curr_array_size, size_t requested_size)
{
  const size_t array_inc_size = (1024 + elem_size - 1) / elem_size;
  *curr_array_size = array_inc_size * ((requested_size + array_inc_size) / array_inc_size);
  *array = realloc(*array, *curr_array_size * elem_size);
  if (!*array) xabort("reallocation failed");
}