File: ensure_array_size.h

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-- 936 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef ENSURE_ARRAY_SIZE_H
#define ENSURE_ARRAY_SIZE_H

void realloc_array(void **array, size_t elem_size, size_t *curr_array_size, size_t requested_size);

#define ENSURE_ARRAY_SIZE(arrayp, curr_array_size, req_size)                      \
  do {                                                                            \
    if ((req_size) > (curr_array_size))                                           \
    {                                                                             \
      size_t casize = (curr_array_size);                                          \
                                                                                  \
      realloc_array((void **) &(arrayp), sizeof(*(arrayp)), &casize, (req_size)); \
      (curr_array_size) = casize;                                                 \
    }                                                                             \
  } while (0)

#endif