aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/jv-lang.c48
-rw-r--r--gdb/jv-lang.h9
-rw-r--r--gdb/jv-valprint.c20
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