| Index: gdb/jv-typeprint.c
|
| diff --git a/gdb/jv-typeprint.c b/gdb/jv-typeprint.c
|
| index 6d8ecdf496e551b366a148f5fe214550f2f888d6..3f6d9da534adebe981a233a1b026e9ed5546b36f 100644
|
| --- a/gdb/jv-typeprint.c
|
| +++ b/gdb/jv-typeprint.c
|
| @@ -1,5 +1,5 @@
|
| /* Support for printing Java types for GDB, the GNU debugger.
|
| - Copyright (C) 1997-2000, 2007-2012 Free Software Foundation, Inc.
|
| + Copyright (C) 1997-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -24,17 +24,19 @@
|
| #include "demangle.h"
|
| #include "gdb-demangle.h"
|
| #include "jv-lang.h"
|
| -#include "gdb_string.h"
|
| +#include <string.h>
|
| #include "typeprint.h"
|
| #include "c-lang.h"
|
| #include "cp-abi.h"
|
| +#include "cp-support.h"
|
| #include "gdb_assert.h"
|
|
|
| /* Local functions */
|
|
|
| static void java_type_print_base (struct type * type,
|
| struct ui_file *stream, int show,
|
| - int level);
|
| + int level,
|
| + const struct type_print_options *flags);
|
|
|
| static void
|
| java_type_print_derivation_info (struct ui_file *stream, struct type *type)
|
| @@ -84,7 +86,7 @@ java_type_print_derivation_info (struct ui_file *stream, struct type *type)
|
|
|
| static void
|
| java_type_print_base (struct type *type, struct ui_file *stream, int show,
|
| - int level)
|
| + int level, const struct type_print_options *flags)
|
| {
|
| int i;
|
| int len;
|
| @@ -115,7 +117,8 @@ java_type_print_base (struct type *type, struct ui_file *stream, int show,
|
| switch (TYPE_CODE (type))
|
| {
|
| case TYPE_CODE_PTR:
|
| - java_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
|
| + java_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level,
|
| + flags);
|
| break;
|
|
|
| case TYPE_CODE_STRUCT:
|
| @@ -192,7 +195,7 @@ java_type_print_base (struct type *type, struct ui_file *stream, int show,
|
|
|
| java_print_type (TYPE_FIELD_TYPE (type, i),
|
| TYPE_FIELD_NAME (type, i),
|
| - stream, show - 1, level + 4);
|
| + stream, show - 1, level + 4, flags);
|
|
|
| fprintf_filtered (stream, ";\n");
|
| }
|
| @@ -237,7 +240,8 @@ java_type_print_base (struct type *type, struct ui_file *stream, int show,
|
| physname[p - real_physname] = '\0';
|
|
|
| is_full_physname_constructor
|
| - = (is_constructor_name (physname)
|
| + = (TYPE_FN_FIELD_CONSTRUCTOR (f, j)
|
| + || is_constructor_name (physname)
|
| || is_destructor_name (physname));
|
|
|
| QUIT;
|
| @@ -283,8 +287,8 @@ java_type_print_base (struct type *type, struct ui_file *stream, int show,
|
| mangled_name = physname;
|
|
|
| demangled_name =
|
| - cplus_demangle (mangled_name,
|
| - DMGL_ANSI | DMGL_PARAMS | DMGL_JAVA);
|
| + gdb_demangle (mangled_name,
|
| + DMGL_ANSI | DMGL_PARAMS | DMGL_JAVA);
|
|
|
| if (demangled_name == NULL)
|
| demangled_name = xstrdup (mangled_name);
|
| @@ -323,7 +327,7 @@ java_type_print_base (struct type *type, struct ui_file *stream, int show,
|
| break;
|
|
|
| default:
|
| - c_type_print_base (type, stream, show, level);
|
| + c_type_print_base (type, stream, show, level, flags);
|
| }
|
| }
|
|
|
| @@ -331,11 +335,12 @@ java_type_print_base (struct type *type, struct ui_file *stream, int show,
|
|
|
| void
|
| java_print_type (struct type *type, const char *varstring,
|
| - struct ui_file *stream, int show, int level)
|
| + struct ui_file *stream, int show, int level,
|
| + const struct type_print_options *flags)
|
| {
|
| int demangled_args;
|
|
|
| - java_type_print_base (type, stream, show, level);
|
| + java_type_print_base (type, stream, show, level, flags);
|
|
|
| if (varstring != NULL && *varstring != '\0')
|
| {
|
| @@ -347,5 +352,5 @@ java_print_type (struct type *type, const char *varstring,
|
| so don't print an additional pair of ()'s. */
|
|
|
| demangled_args = varstring != NULL && strchr (varstring, '(') != NULL;
|
| - c_type_print_varspec_suffix (type, stream, show, 0, demangled_args);
|
| + c_type_print_varspec_suffix (type, stream, show, 0, demangled_args, flags);
|
| }
|
|
|