X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Ftypes%2Fdecl_enums.h;h=25835384fb9d9eed2412d6ef6aed137720062087;hb=2f5af21b263403997e154658635d6b6e6eaab453;hp=61a3f72564ddd3990048ba85281e2c79ee5b6d8e;hpb=5359ad5c181e5772f350fe1cba060cbed3a05b91;p=m6w6%2Fext-psi diff --git a/src/types/decl_enums.h b/src/types/decl_enums.h index 61a3f72..2583538 100644 --- a/src/types/decl_enums.h +++ b/src/types/decl_enums.h @@ -1,30 +1,40 @@ -#ifndef _PSI_TYPES_DECL_ENUMS_H -#define _PSI_TYPES_DECL_ENUMS_H +/******************************************************************************* + Copyright (c) 2016, Michael Wallner . + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*******************************************************************************/ + +#ifndef PSI_TYPES_DECL_ENUMS_H +#define PSI_TYPES_DECL_ENUMS_H + +#include "decl_enum.h" typedef struct decl_enums { decl_enum **list; size_t count; } decl_enums; -static inline decl_enums* add_decl_enum(decl_enums *es, decl_enum *e) { - if (!es) { - es = calloc(1, sizeof(*es)); - } - es->list = realloc(es->list, ++es->count * sizeof(*es->list)); - es->list[es->count-1] = e; - return es; -} - -static inline void free_decl_enums(decl_enums *es) { - if (es->list) { - size_t j; - - for (j = 0; j < es->count; ++j) { - free_decl_enum(es->list[j]); - } - } - free(es->list); - free(es); -} +decl_enums *add_decl_enum(decl_enums *es, decl_enum *e); +void free_decl_enums(decl_enums *es); +void dump_decl_enums(int fd, decl_enums *es); #endif