https://github.com/JuliaLang/julia
Raw File
Tip revision: 22590d529dceed93ae1dd8f32d569edba3be9f50 authored by Stefan Karpinski on 31 May 2018, 00:07:32 UTC
VERSION: 0.7.0-DEV => 0.7.0-alpha (#27242)
Tip revision: 22590d5
arraylist.h
// This file is a part of Julia. License is MIT: https://julialang.org/license

#ifndef JL_ARRAYLIST_H
#define JL_ARRAYLIST_H

#define AL_N_INLINE 29

#ifdef __cplusplus
extern "C" {
#endif

typedef struct {
    size_t len;
    size_t max;
    void **items;
    void *_space[AL_N_INLINE];
} arraylist_t;

arraylist_t *arraylist_new(arraylist_t *a, size_t size);
void arraylist_free(arraylist_t *a);

void arraylist_push(arraylist_t *a, void *elt);
void *arraylist_pop(arraylist_t *a);
void arraylist_grow(arraylist_t *a, size_t n);

#ifdef __cplusplus
}
#endif

#endif
back to top