X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fgdb_obstack.h;h=3010cb6b10c1e4d6a2ea4ce5414e087ba0e2ab5e;hb=ad43e107eb233dcef8e76da6328aa4e4d74afd84;hp=210bbdc26a3fdaffd8ab7e7cb64e349ed5d66b87;hpb=9b254dd1ce46c19dde1dde5b8d1e22e862dfacce;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdb_obstack.h b/gdb/gdb_obstack.h index 210bbdc26a..3010cb6b10 100644 --- a/gdb/gdb_obstack.h +++ b/gdb/gdb_obstack.h @@ -1,6 +1,6 @@ /* Obstack wrapper for GDB. - Copyright (C) 2002, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 2002-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -24,9 +24,12 @@ /* Utility macros - wrap obstack alloc into something more robust. */ -#define OBSTACK_ZALLOC(OBSTACK,TYPE) (memset (obstack_alloc ((OBSTACK), sizeof (TYPE)), 0, sizeof (TYPE))) +#define OBSTACK_ZALLOC(OBSTACK,TYPE) \ + ((TYPE *) memset (obstack_alloc ((OBSTACK), sizeof (TYPE)), 0, sizeof (TYPE))) -#define OBSTACK_CALLOC(OBSTACK,NUMBER,TYPE) (memset (obstack_alloc ((OBSTACK), (NUMBER) * sizeof (TYPE)), 0, (NUMBER) * sizeof (TYPE))) +#define OBSTACK_CALLOC(OBSTACK,NUMBER,TYPE) \ + ((TYPE *) memset (obstack_alloc ((OBSTACK), (NUMBER) * sizeof (TYPE)), \ + 0, (NUMBER) * sizeof (TYPE))) /* Unless explicitly specified, GDB obstacks always use xmalloc() and xfree(). */ @@ -45,4 +48,19 @@ #define obstack_grow_str0(OBSTACK,STRING) \ obstack_grow0 (OBSTACK, STRING, strlen (STRING)) +#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; + +/* Duplicate STRING, returning an equivalent string that's allocated on the + obstack OBSTACKP. */ + +extern char *obstack_strdup (struct obstack *obstackp, const char *string); + #endif