* jv-exp.y (push_fieldnames): Use STRUCTOP_PTR instead of

STRUCTOP_STRUCT.
	* jv-lang.c (evaluate_subexp_java): Handle STRUCTOP_PTR instead of
	STRUCTOP_STRUCT.
	* jv-typeprint.c (java_print_type): Do not crash on NULL varstring.

	* gdb.java/jprint.java (public): Avoid invalid call to static
	method.
This commit is contained in:
Daniel Jacobowitz 2007-05-14 16:44:27 +00:00
parent bfe9c90b9a
commit dc5000e721
6 changed files with 19 additions and 6 deletions

View File

@ -1,3 +1,11 @@
2007-05-14 Daniel Jacobowitz <dan@codesourcery.com>
* jv-exp.y (push_fieldnames): Use STRUCTOP_PTR instead of
STRUCTOP_STRUCT.
* jv-lang.c (evaluate_subexp_java): Handle STRUCTOP_PTR instead of
STRUCTOP_STRUCT.
* jv-typeprint.c (java_print_type): Do not crash on NULL varstring.
2007-05-14 Ulrich Weigand <uweigand@de.ibm.com>
* gdbarch.sh (read_sp): Remove.

View File

@ -1265,7 +1265,7 @@ push_variable (struct stoken name)
}
/* Assuming a reference expression has been pushed, emit the
STRUCTOP_STRUCT ops to access the field named NAME. If NAME is a
STRUCTOP_PTR ops to access the field named NAME. If NAME is a
qualified name (has '.'), generate a field access for each part. */
static void
@ -1281,9 +1281,9 @@ push_fieldnames (name)
{
/* token.ptr is start of current field name. */
token.length = &name.ptr[i] - token.ptr;
write_exp_elt_opcode (STRUCTOP_STRUCT);
write_exp_elt_opcode (STRUCTOP_PTR);
write_exp_string (token);
write_exp_elt_opcode (STRUCTOP_STRUCT);
write_exp_elt_opcode (STRUCTOP_PTR);
token.ptr += token.length + 1;
}
if (i >= name.length)

View File

@ -928,7 +928,7 @@ evaluate_subexp_java (struct type *expect_type, struct expression *exp,
goto nosideret;
return java_value_string (&exp->elts[pc + 2].string, i);
case STRUCTOP_STRUCT:
case STRUCTOP_PTR:
arg1 = evaluate_subexp_standard (expect_type, exp, pos, noside);
/* Convert object field (such as TYPE.class) to reference. */
if (TYPE_CODE (value_type (arg1)) == TYPE_CODE_STRUCT)

View File

@ -338,6 +338,6 @@ java_print_type (struct type *type, char *varstring, struct ui_file *stream,
/* For demangled function names, we have the arglist as part of the name,
so don't print an additional pair of ()'s */
demangled_args = strchr (varstring, '(') != NULL;
demangled_args = varstring != NULL && strchr (varstring, '(') != NULL;
c_type_print_varspec_suffix (type, stream, show, 0, demangled_args);
}

View File

@ -1,3 +1,8 @@
2007-05-14 Daniel Jacobowitz <dan@codesourcery.com>
* gdb.java/jprint.java (public): Avoid invalid call to static
method.
2007-05-14 Denis Pilat <denis.pilat@st.com>
* gdb.mi/mi-console.exp, gdb.mi/gdb669.exp, gdb.mi/mi-cli.exp,

View File

@ -54,7 +54,7 @@ public class jprint extends jvclass {
}
public static void main(String[] args) {
jprint x = new jprint ();
x.print (44);
x.dothat (44);
print (k, 33);
}
}