X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libcpp%2Fpch.c;h=cc23b4ee908771957adf24c2d9101eab7acf32ff;hb=750e985b53cc6bb3acdd8b16b898e09c60b546ec;hp=a343cd857f01ddff22ed1512bfe8182a0493a051;hpb=d718b525701491becba5852fc642f13f9f1ed42f;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libcpp/pch.c b/libcpp/pch.c index a343cd857f0..cc23b4ee908 100644 --- a/libcpp/pch.c +++ b/libcpp/pch.c @@ -1,5 +1,6 @@ /* Part of CPP library. (Precompiled header reading/writing.) - Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 + Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -13,7 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "config.h" #include "system.h" @@ -136,11 +137,11 @@ save_idents (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p) struct cpp_string *sp; unsigned char *text; - sp = xmalloc (sizeof (struct cpp_string)); + sp = XNEW (struct cpp_string); *slot = sp; sp->len = NODE_LEN (hn); - sp->text = text = xmalloc (NODE_LEN (hn)); + sp->text = text = XNEWVEC (unsigned char, NODE_LEN (hn)); memcpy (text, NODE_NAME (hn), NODE_LEN (hn)); } } @@ -192,7 +193,7 @@ int cpp_save_state (cpp_reader *r, FILE *f) { /* Save the list of non-void identifiers for the dependency checking. */ - r->savedstate = xmalloc (sizeof (struct cpp_savedstate)); + r->savedstate = XNEW (struct cpp_savedstate); r->savedstate->definedhash = htab_create (100, cpp_string_hash, cpp_string_eq, NULL); cpp_forall_identifiers (r, save_idents, r->savedstate); @@ -225,7 +226,7 @@ count_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p) news.len = NODE_LEN (hn); news.text = NODE_NAME (hn); - slot = htab_find (ss->definedhash, &news); + slot = (void **) htab_find (ss->definedhash, &news); if (slot == NULL) { ss->hashsize += NODE_LEN (hn) + 1; @@ -264,7 +265,7 @@ write_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p) news.len = NODE_LEN (hn); news.text = NODE_NAME (hn); - slot = htab_find (ss->definedhash, &news); + slot = (void **) htab_find (ss->definedhash, &news); if (slot == NULL) { ss->defs[ss->n_defs] = hn; @@ -309,13 +310,13 @@ cpp_write_pch_deps (cpp_reader *r, FILE *f) ss->n_defs = 0; cpp_forall_identifiers (r, count_defs, ss); - ss->defs = xmalloc (ss->n_defs * sizeof (cpp_hashnode *)); + ss->defs = XNEWVEC (cpp_hashnode *, ss->n_defs); ss->n_defs = 0; cpp_forall_identifiers (r, write_defs, ss); /* Sort the list, copy it into a buffer, and write it out. */ qsort (ss->defs, ss->n_defs, sizeof (cpp_hashnode *), &comp_hashnodes); - definedstrs = ss->definedstrs = xmalloc (ss->hashsize); + definedstrs = ss->definedstrs = XNEWVEC (unsigned char, ss->hashsize); for (i = 0; i < ss->n_defs; ++i) { size_t len = NODE_LEN (ss->defs[i]); @@ -345,8 +346,6 @@ cpp_write_pch_deps (cpp_reader *r, FILE *f) int cpp_write_pch_state (cpp_reader *r, FILE *f) { - struct macrodef_struct z; - if (!r->deps) r->deps = deps_init (); @@ -391,7 +390,7 @@ collect_ht_nodes (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, if (nl->n_defs == nl->asize) { nl->asize *= 2; - nl->defs = xrealloc (nl->defs, nl->asize * sizeof (cpp_hashnode *)); + nl->defs = XRESIZEVEC (cpp_hashnode *, nl->defs, nl->asize); } nl->defs[nl->n_defs] = hn; @@ -419,7 +418,7 @@ cpp_valid_state (cpp_reader *r, const char *name, int fd) { struct macrodef_struct m; size_t namebufsz = 256; - unsigned char *namebuf = xmalloc (namebufsz); + unsigned char *namebuf = XNEWVEC (unsigned char, namebufsz); unsigned char *undeftab = NULL; struct ht_node_list nl = { 0, 0, 0 }; unsigned char *first, *last; @@ -451,7 +450,7 @@ cpp_valid_state (cpp_reader *r, const char *name, int fd) { free (namebuf); namebufsz = m.definition_length + 256; - namebuf = xmalloc (namebufsz); + namebuf = XNEWVEC (unsigned char, namebufsz); } if ((size_t)read (fd, namebuf, m.definition_length) @@ -489,14 +488,14 @@ cpp_valid_state (cpp_reader *r, const char *name, int fd) /* Read in the list of identifiers that must not be defined. Check that they really aren't. */ - undeftab = xmalloc (m.definition_length); + undeftab = XNEWVEC (unsigned char, m.definition_length); if ((size_t) read (fd, undeftab, m.definition_length) != m.definition_length) goto error; /* Collect identifiers from the current hash table. */ nl.n_defs = 0; nl.asize = 10; - nl.defs = xmalloc (nl.asize * sizeof (cpp_hashnode *)); + nl.defs = XNEWVEC (cpp_hashnode *, nl.asize); cpp_forall_identifiers (r, &collect_ht_nodes, &nl); qsort (nl.defs, nl.n_defs, sizeof (cpp_hashnode *), &comp_hashnodes); @@ -578,8 +577,7 @@ save_macros (cpp_reader *r, cpp_hashnode *h, void *data_p) if (data->count == data->array_size) { data->array_size *= 2; - data->defns = xrealloc (data->defns, (data->array_size - * sizeof (uchar *))); + data->defns = XRESIZEVEC (uchar *, data->defns, (data->array_size)); } switch (h->type) @@ -593,7 +591,8 @@ save_macros (cpp_reader *r, cpp_hashnode *h, void *data_p) const uchar * defn = cpp_macro_definition (r, h); size_t defnlen = ustrlen (defn); - data->defns[data->count] = xmemdup (defn, defnlen, defnlen + 2); + data->defns[data->count] = (uchar *) xmemdup (defn, defnlen, + defnlen + 2); data->defns[data->count][defnlen] = '\n'; } break; @@ -612,10 +611,10 @@ save_macros (cpp_reader *r, cpp_hashnode *h, void *data_p) void cpp_prepare_state (cpp_reader *r, struct save_macro_data **data) { - struct save_macro_data *d = xmalloc (sizeof (struct save_macro_data)); + struct save_macro_data *d = XNEW (struct save_macro_data); d->array_size = 512; - d->defns = xmalloc (d->array_size * sizeof (d->defns[0])); + d->defns = XNEWVEC (uchar *, d->array_size); d->count = 0; cpp_forall_identifiers (r, save_macros, d); d->saved_pragmas = _cpp_save_pragma_names (r); @@ -630,9 +629,7 @@ int cpp_read_state (cpp_reader *r, const char *name, FILE *f, struct save_macro_data *data) { - struct macrodef_struct m; - struct save_macro_item *d; - size_t i, mac_count; + size_t i; struct lexer_state old_state; /* Restore spec_nodes, which will be full of references to the old @@ -657,7 +654,7 @@ cpp_read_state (cpp_reader *r, const char *name, FILE *f, size_t namelen; uchar *defn; - namelen = strcspn (data->defns[i], "( \n"); + namelen = ustrcspn (data->defns[i], "( \n"); h = cpp_lookup (r, data->defns[i], namelen); defn = data->defns[i] + namelen;