Sha256: 4a31b1b571672c2ee10df89d408205bd241804819c44e537d2c5a18a2ea71981

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

#ifndef EXPAND_CAPACITY_H
#define EXPAND_CAPACITY_H

#define expand_capacity(TYPE, ITEMS, CAPACITY, INITIAL_CAPACITY, DESC) {  \
  unsigned long prev_capacity = CAPACITY;                                 \
  TYPE *prev_items = ITEMS;                                               \
                                                                          \
  if (CAPACITY == UINT_MAX) raise_max_capacity_reached_error(DESC);       \
  CAPACITY = prev_items == NULL ? INITIAL_CAPACITY : prev_capacity * 2;   \
  if (CAPACITY <= prev_capacity) CAPACITY = UINT_MAX;                     \
  ITEMS = calloc(CAPACITY, sizeof(TYPE));                                 \
                                                                          \
  if (prev_items != NULL) {                                               \
    memcpy(ITEMS, prev_items, prev_capacity * sizeof(TYPE));              \
    free(prev_items);                                                     \
  }                                                                       \
}

#endif

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dijkstra_fast-1.5.3 ext/dijkstra_fast/expand_capacity.h
dijkstra_fast-1.5.2 ext/dijkstra_fast/expand_capacity.h