X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Ftypes%2Fdecl_file.h;h=0b62b18087efaf4d489ad008135a03cc1283cb27;hp=3eb314c2aee355716c6fac838f81c0189e129847;hb=02e801eabbe26a129ea05e6723c94e10bb653dab;hpb=5359ad5c181e5772f350fe1cba060cbed3a05b91 diff --git a/src/types/decl_file.h b/src/types/decl_file.h index 3eb314c..0b62b18 100644 --- a/src/types/decl_file.h +++ b/src/types/decl_file.h @@ -1,19 +1,43 @@ -#ifndef _PSI_TYPES_DECL_FILE_H -#define _PSI_TYPES_DECL_FILE_H - -typedef struct decl_file { - char *ln; - char *fn; -} decl_file; - -static inline void free_decl_file(decl_file *file) { - if (file->ln) { - free(file->ln); - } - if (file->fn) { - free(file->fn); - } - memset(file, 0, sizeof(*file)); -} +/******************************************************************************* + 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_FILE_H +#define PSI_TYPES_DECL_FILE_H + +struct psi_data; + +struct psi_decl_file { + char *filename; + struct psi_plist *libnames; + struct psi_plist *dlopened; +}; + +void psi_decl_file_dtor(struct psi_decl_file *file); +bool psi_decl_file_validate(struct psi_data *dst, struct psi_data *src); + +void psi_libs_free(void **dlopened); +void psi_names_free(char **name); #endif