From d2afef13c283c7ea0f551ddfe966651b63ad6700 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 21 Jan 2013 18:15:32 +0000 Subject: * gdb_obstack.h (obconcat): Move declaration here, from... * symfile.h (obconcat): ... here. * gdb_obstack.c: New file. (obconcat): Move from... * symfile.c (obconcat): ... here. * Makefile.in (SFILES): Add gdb_obstack.c. (COMMON_OBS): Add gdb_obstack.o. --- gdb/ChangeLog | 10 ++++++++++ gdb/Makefile.in | 6 ++++-- gdb/gdb_obstack.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ gdb/gdb_obstack.h | 7 +++++++ gdb/symfile.c | 26 -------------------------- gdb/symfile.h | 7 ------- 6 files changed, 68 insertions(+), 35 deletions(-) create mode 100644 gdb/gdb_obstack.c diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 74d1dcb..6ef74bc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,15 @@ 2013-01-21 Tom Tromey + * gdb_obstack.h (obconcat): Move declaration here, from... + * symfile.h (obconcat): ... here. + * gdb_obstack.c: New file. + (obconcat): Move from... + * symfile.c (obconcat): ... here. + * Makefile.in (SFILES): Add gdb_obstack.c. + (COMMON_OBS): Add gdb_obstack.o. + +2013-01-21 Tom Tromey + * symfile.h (obsavestring): Don't declare. * symfile.c (obsavestring): Remove. * ada-exp.y: Use obstack_copy0, not obsavestring. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 7305e6d..6746e64 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -713,7 +713,8 @@ SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c ada-tasks.c \ exceptions.c expprint.c \ f-exp.y f-lang.c f-typeprint.c f-valprint.c filesystem.c \ findcmd.c findvar.c frame.c frame-base.c frame-unwind.c \ - gdbarch.c arch-utils.c gdb_bfd.c gdbtypes.c gnu-v2-abi.c gnu-v3-abi.c \ + gdbarch.c arch-utils.c gdb_bfd.c gdb_obstack.c \ + gdbtypes.c gnu-v2-abi.c gnu-v3-abi.c \ go-exp.y go-lang.c go-typeprint.c go-valprint.c \ inf-loop.c \ infcall.c \ @@ -883,7 +884,8 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \ macrotab.o macrocmd.o macroexp.o macroscope.o \ mi-common.o \ event-loop.o event-top.o inf-loop.o completer.o \ - gdbarch.o arch-utils.o gdbtypes.o gdb_bfd.o osabi.o copying.o \ + gdbarch.o arch-utils.o gdbtypes.o gdb_bfd.o gdb_obstack.o \ + osabi.o copying.o \ memattr.o mem-break.o target.o parse.o language.o buildsym.o \ findcmd.o \ std-regs.o \ diff --git a/gdb/gdb_obstack.c b/gdb/gdb_obstack.c new file mode 100644 index 0000000..df34968 --- /dev/null +++ b/gdb/gdb_obstack.c @@ -0,0 +1,47 @@ +/* Obstack wrapper for GDB. + + Copyright (C) 2013 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + 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, see . */ + +#include "defs.h" +#include "gdb_obstack.h" + +/* Concatenate NULL terminated variable argument list of `const char *' + strings; return the new string. Space is found in the OBSTACKP. + Argument list must be terminated by a sentinel expression `(char *) + NULL'. */ + +char * +obconcat (struct obstack *obstackp, ...) +{ + va_list ap; + + va_start (ap, obstackp); + for (;;) + { + const char *s = va_arg (ap, const char *); + + if (s == NULL) + break; + + obstack_grow_str (obstackp, s); + } + va_end (ap); + obstack_1grow (obstackp, 0); + + return obstack_finish (obstackp); +} diff --git a/gdb/gdb_obstack.h b/gdb/gdb_obstack.h index 96196b7..1459ee9 100644 --- a/gdb/gdb_obstack.h +++ b/gdb/gdb_obstack.h @@ -51,4 +51,11 @@ #define obstack_grow_wstr(OBSTACK, WSTRING) \ obstack_grow (OBSTACK, WSTRING, sizeof (gdb_wchar_t) * gdb_wcslen (WSTRING)) +/* Concatenate NULL terminated variable argument list of `const char + *' strings; return the new string. Space is found in the OBSTACKP. + Argument list must be terminated by a sentinel expression `(char *) + NULL'. */ + +extern char *obconcat (struct obstack *obstackp, ...) ATTRIBUTE_SENTINEL; + #endif diff --git a/gdb/symfile.c b/gdb/symfile.c index f610e67..2f87260 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -151,32 +151,6 @@ static VEC (sym_fns_ptr) *symtab_fns = NULL; int auto_solib_add = 1; -/* Concatenate NULL terminated variable argument list of `const char *' - strings; return the new string. Space is found in the OBSTACKP. - Argument list must be terminated by a sentinel expression `(char *) - NULL'. */ - -char * -obconcat (struct obstack *obstackp, ...) -{ - va_list ap; - - va_start (ap, obstackp); - for (;;) - { - const char *s = va_arg (ap, const char *); - - if (s == NULL) - break; - - obstack_grow_str (obstackp, s); - } - va_end (ap); - obstack_1grow (obstackp, 0); - - return obstack_finish (obstackp); -} - /* True if we are reading a symbol table. */ int currently_reading_symtab = 0; diff --git a/gdb/symfile.h b/gdb/symfile.h index ad9a4e2..8caec8e 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -506,13 +506,6 @@ extern struct section_addr_info extern void free_section_addr_info (struct section_addr_info *); -/* Concatenate NULL terminated variable argument list of `const char - *' strings; return the new string. Space is found in the OBSTACKP. - Argument list must be terminated by a sentinel expression `(char *) - NULL'. */ - -extern char *obconcat (struct obstack *obstackp, ...) ATTRIBUTE_SENTINEL; - /* Variables */ /* If non-zero, shared library symbols will be added automatically -- cgit v1.1