diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/jv-lang.c | 48 | ||||
-rw-r--r-- | gdb/jv-lang.h | 9 | ||||
-rw-r--r-- | gdb/jv-valprint.c | 20 |
4 files changed, 49 insertions, 34 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1c78069..137e698 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2001-10-20 Andrew Cagney <ac131313@redhat.com> + * jv-lang.h: Add #ifndef JV_LANG_H wrapper. + (struct value): Add opaque declaration. Replace value_ptr with + ``struct value *''. + * jv-valprint.c, jv-lang.c: Replace value_ptr with equivalent + struct. + * wrapper.h (struct value): Add opaque declaration. Replace value_ptr with ``struct value *''. * wrapper.c: Replace value_ptr with ``struct value *''. diff --git a/gdb/jv-lang.c b/gdb/jv-lang.c index a0d78d7..81cea0a 100644 --- a/gdb/jv-lang.c +++ b/gdb/jv-lang.c @@ -53,10 +53,10 @@ static int java_demangled_signature_length (char *); static void java_demangled_signature_copy (char *, char *); static struct symtab *get_java_class_symtab (void); -static char *get_java_utf8_name (struct obstack *obstack, value_ptr name); -static int java_class_is_primitive (value_ptr clas); +static char *get_java_utf8_name (struct obstack *obstack, struct value *name); +static int java_class_is_primitive (struct value *clas); static struct type *java_lookup_type (char *signature); -static value_ptr java_value_string (char *ptr, int len); +static struct value *java_value_string (char *ptr, int len); static void java_emit_char (int c, struct ui_file * stream, int quoter); @@ -66,7 +66,7 @@ static void java_emit_char (int c, struct ui_file * stream, int quoter); static struct objfile *dynamics_objfile = NULL; -static struct type *java_link_class_type (struct type *, value_ptr); +static struct type *java_link_class_type (struct type *, struct value *); static struct objfile * get_dynamics_objfile (void) @@ -206,10 +206,10 @@ java_lookup_class (char *name) a name given by NAME (which has type Utf8Const*). */ char * -get_java_utf8_name (struct obstack *obstack, value_ptr name) +get_java_utf8_name (struct obstack *obstack, struct value *name) { char *chrs; - value_ptr temp = name; + struct value *temp = name; int name_length; CORE_ADDR data_addr; temp = value_struct_elt (&temp, NULL, "length", NULL, "structure"); @@ -222,12 +222,12 @@ get_java_utf8_name (struct obstack *obstack, value_ptr name) return chrs; } -value_ptr -java_class_from_object (value_ptr obj_val) +struct value * +java_class_from_object (struct value *obj_val) { /* This is all rather inefficient, since the offsets of vtable and class are fixed. FIXME */ - value_ptr vtable_val; + struct value *vtable_val; if (TYPE_CODE (VALUE_TYPE (obj_val)) == TYPE_CODE_PTR && TYPE_LENGTH (TYPE_TARGET_TYPE (VALUE_TYPE (obj_val))) == 0) @@ -240,9 +240,9 @@ java_class_from_object (value_ptr obj_val) /* Check if CLASS_IS_PRIMITIVE(value of clas): */ static int -java_class_is_primitive (value_ptr clas) +java_class_is_primitive (struct value *clas) { - value_ptr vtable = value_struct_elt (&clas, NULL, "vtable", NULL, "struct"); + struct value *vtable = value_struct_elt (&clas, NULL, "vtable", NULL, "struct"); CORE_ADDR i = value_as_address (vtable); return (int) (i & 0x7fffffff) == (int) 0x7fffffff; } @@ -250,13 +250,13 @@ java_class_is_primitive (value_ptr clas) /* Read a GCJ Class object, and generated a gdb (TYPE_CODE_STRUCT) type. */ struct type * -type_from_class (value_ptr clas) +type_from_class (struct value *clas) { struct type *type; char *name; - value_ptr temp; + struct value *temp; struct objfile *objfile; - value_ptr utf8_name; + struct value *utf8_name; char *nptr; CORE_ADDR addr; struct block *bl; @@ -286,7 +286,7 @@ type_from_class (value_ptr clas) objfile = get_dynamics_objfile (); if (java_class_is_primitive (clas)) { - value_ptr sig; + struct value *sig; temp = clas; sig = value_struct_elt (&temp, NULL, "method_count", NULL, "structure"); return java_primitive_type (value_as_long (sig)); @@ -337,16 +337,17 @@ type_from_class (value_ptr clas) /* Fill in class TYPE with data from the CLAS value. */ struct type * -java_link_class_type (struct type *type, value_ptr clas) +java_link_class_type (struct type *type, struct value *clas) { - value_ptr temp; + struct value *temp; char *unqualified_name; char *name = TYPE_TAG_NAME (type); int ninterfaces, nfields, nmethods; int type_is_object = 0; struct fn_field *fn_fields; struct fn_fieldlist *fn_fieldlists; - value_ptr fields, methods; + struct value *fields; + struct value *methods; struct value *method = NULL; struct value *field = NULL; int i, j; @@ -802,7 +803,7 @@ java_array_type (struct type *type, int dims) /* Create a Java string in the inferior from a (Utf8) literal. */ -static value_ptr +static struct value * java_value_string (char *ptr, int len) { error ("not implemented - java_value_string"); /* FIXME */ @@ -845,7 +846,7 @@ java_emit_char (int c, struct ui_file *stream, int quoter) } } -static value_ptr +static struct value * evaluate_subexp_java (struct type *expect_type, register struct expression *exp, register int *pos, enum noside noside) { @@ -853,7 +854,8 @@ evaluate_subexp_java (struct type *expect_type, register struct expression *exp, int i; char *name; enum exp_opcode op = exp->elts[*pos].opcode; - value_ptr arg1, arg2; + struct value *arg1; + struct value *arg2; struct type *type; switch (op) { @@ -899,8 +901,8 @@ evaluate_subexp_java (struct type *expect_type, register struct expression *exp, struct type *el_type; char buf4[4]; - value_ptr clas = java_class_from_object (arg1); - value_ptr temp = clas; + struct value *clas = java_class_from_object (arg1); + struct value *temp = clas; /* Get CLASS_ELEMENT_TYPE of the array type. */ temp = value_struct_elt (&temp, NULL, "methods", NULL, "structure"); diff --git a/gdb/jv-lang.h b/gdb/jv-lang.h index 822cf08..61fb943 100644 --- a/gdb/jv-lang.h +++ b/gdb/jv-lang.h @@ -18,6 +18,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef JV_LANG_H +#define JV_LANG_H + +struct value; + extern int java_parse (void); /* Defined in jv-exp.y */ extern void java_error (char *); /* Defined in jv-exp.y */ @@ -42,7 +47,7 @@ extern int java_val_print (struct type *, char *, int, CORE_ADDR, extern int java_value_print (struct value *, struct ui_file *, int, enum val_prettyprint); -extern value_ptr java_class_from_object (value_ptr); +extern struct value *java_class_from_object (struct value *); extern struct type *type_from_class (struct value *); @@ -64,3 +69,5 @@ extern void java_print_type (struct type *, char *, struct ui_file *, int, int); extern char *java_demangle_type_signature (char *); + +#endif diff --git a/gdb/jv-valprint.c b/gdb/jv-valprint.c index ad059be..73fff27 100644 --- a/gdb/jv-valprint.c +++ b/gdb/jv-valprint.c @@ -41,7 +41,7 @@ static void java_print_value_fields (struct type * type, char *valaddr, int -java_value_print (value_ptr val, struct ui_file *stream, int format, +java_value_print (struct value *val, struct ui_file *stream, int format, enum val_prettyprint pretty) { struct type *type; @@ -137,8 +137,8 @@ java_value_print (value_ptr val, struct ui_file *stream, int format, } else { - value_ptr v = allocate_value (el_type); - value_ptr next_v = allocate_value (el_type); + struct value *v = allocate_value (el_type); + struct value *next_v = allocate_value (el_type); VALUE_ADDRESS (v) = address + JAVA_OBJECT_SIZE + 4; VALUE_ADDRESS (next_v) = VALUE_ADDRESS (v); @@ -150,7 +150,7 @@ java_value_print (value_ptr val, struct ui_file *stream, int format, if (i > 0) { - value_ptr tmp; + struct value *tmp; tmp = next_v; next_v = v; @@ -204,13 +204,13 @@ java_value_print (value_ptr val, struct ui_file *stream, int format, && address != 0 && value_as_address (val) != 0) { - value_ptr data_val; + struct value *data_val; CORE_ADDR data; - value_ptr boffset_val; + struct value *boffset_val; unsigned long boffset; - value_ptr count_val; + struct value *count_val; unsigned long count; - value_ptr mark; + struct value *mark; mark = value_mark (); /* Remember start of new values */ @@ -370,7 +370,7 @@ java_print_value_fields (struct type *type, char *valaddr, CORE_ADDR address, if (!TYPE_FIELD_STATIC (type, i) && TYPE_FIELD_PACKED (type, i)) { - value_ptr v; + struct value *v; /* Bitfields require special handling, especially due to byte order problems. */ @@ -395,7 +395,7 @@ java_print_value_fields (struct type *type, char *valaddr, CORE_ADDR address, } else if (TYPE_FIELD_STATIC (type, i)) { - value_ptr v = value_static_field (type, i); + struct value *v = value_static_field (type, i); if (v == NULL) fputs_filtered ("<optimized out>", stream); else |