X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fjv-typeprint.c;h=18bfc32b385a91b56ca9ab392bd2b7e8235903f0;hb=f4b9d8efb98b8d65beae3cec24d881927d1a94f0;hp=c7bd349f31157ddcc8cc54efd8df04c7a67ec907;hpb=c2d11a7da0372ef052af1c74d56e264d8aae4743;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/jv-typeprint.c b/gdb/jv-typeprint.c index c7bd349f31..18bfc32b38 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 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright 1997, 1998, 1999, 2000 Free Software Foundation, Inc. This file is part of GDB. @@ -28,15 +28,16 @@ #include "gdb_string.h" #include "typeprint.h" #include "c-lang.h" +#include "cp-abi.h" /* Local functions */ -static void java_type_print_base PARAMS ((struct type * type, GDB_FILE * stream, int show, int level)); +static void java_type_print_base (struct type * type, + struct ui_file *stream, int show, + int level); static void -java_type_print_derivation_info (stream, type) - GDB_FILE *stream; - struct type *type; +java_type_print_derivation_info (struct ui_file *stream, struct type *type) { char *name; int i; @@ -82,14 +83,11 @@ java_type_print_derivation_info (stream, type) We increase it for some recursive calls. */ static void -java_type_print_base (type, stream, show, level) - struct type *type; - GDB_FILE *stream; - int show; - int level; +java_type_print_base (struct type *type, struct ui_file *stream, int show, + int level) { - register int i; - register int len; + int i; + int len; char *mangled_name; char *demangled_name; QUIT; @@ -125,7 +123,7 @@ java_type_print_base (type, stream, show, level) { /* array type */ char *name = java_demangle_type_signature (TYPE_TAG_NAME (type)); fputs_filtered (name, stream); - free (name); + xfree (name); break; } @@ -154,7 +152,7 @@ java_type_print_base (type, stream, show, level) fprintf_filtered (stream, "{\n"); if ((TYPE_NFIELDS (type) == 0) && (TYPE_NFN_FIELDS (type) == 0)) { - if (TYPE_FLAGS (type) & TYPE_FLAG_STUB) + if (TYPE_STUB (type)) fprintfi_filtered (level + 4, stream, "\n"); else fprintfi_filtered (level + 4, stream, "\n"); @@ -168,12 +166,12 @@ java_type_print_base (type, stream, show, level) { QUIT; /* Don't print out virtual function table. */ - if (STREQN (TYPE_FIELD_NAME (type, i), "_vptr", 5) + if (strncmp (TYPE_FIELD_NAME (type, i), "_vptr", 5) == 0 && is_cplus_marker ((TYPE_FIELD_NAME (type, i))[5])) continue; /* Don't print the dummy field "class". */ - if (STREQN (TYPE_FIELD_NAME (type, i), "class", 5)) + if (strncmp (TYPE_FIELD_NAME (type, i), "class", 5) == 0) continue; print_spaces_filtered (level + 4, stream); @@ -218,7 +216,7 @@ java_type_print_base (type, stream, show, level) n_overloads = TYPE_FN_FIELDLIST_LENGTH (type, i); method_name = TYPE_FN_FIELDLIST_NAME (type, i); name = type_name_no_tag (type); - is_constructor = name && STREQ (method_name, name); + is_constructor = name && strcmp (method_name, name) == 0; for (j = 0; j < n_overloads; j++) { @@ -227,12 +225,9 @@ java_type_print_base (type, stream, show, level) physname = TYPE_FN_FIELD_PHYSNAME (f, j); - is_full_physname_constructor = - ((physname[0] == '_' && physname[1] == '_' - && strchr ("0123456789Qt", physname[2])) - || STREQN (physname, "__ct__", 6) - || DESTRUCTOR_PREFIX_P (physname) - || STREQN (physname, "__dt__", 6)); + is_full_physname_constructor + = (is_constructor_name (physname) + || is_destructor_name (physname)); QUIT; @@ -302,11 +297,11 @@ java_type_print_base (type, stream, show, level) } fputs_filtered (demangled_no_class, stream); - free (demangled_name); + xfree (demangled_name); } if (TYPE_FN_FIELD_STUB (f, j)) - free (mangled_name); + xfree (mangled_name); fprintf_filtered (stream, ";\n"); } @@ -323,16 +318,12 @@ java_type_print_base (type, stream, show, level) /* LEVEL is the depth to indent lines by. */ -extern void -c_type_print_varspec_suffix PARAMS ((struct type *, GDB_FILE *, int, int, int)); +extern void c_type_print_varspec_suffix (struct type *, struct ui_file *, + int, int, int); void -java_print_type (type, varstring, stream, show, level) - struct type *type; - char *varstring; - GDB_FILE *stream; - int show; - int level; +java_print_type (struct type *type, char *varstring, struct ui_file *stream, + int show, int level) { int demangled_args;