* jv-exp.y (push_fieldnames): Use STRUCTOP_PTR instead of
authorDaniel Jacobowitz <drow@false.org>
Mon, 14 May 2007 16:44:27 +0000 (16:44 +0000)
committerDaniel Jacobowitz <drow@false.org>
Mon, 14 May 2007 16:44:27 +0000 (16:44 +0000)
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.

gdb/ChangeLog
gdb/jv-exp.y
gdb/jv-lang.c
gdb/jv-typeprint.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.java/jprint.java

index 2861743..27d67b5 100644 (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.
index bb4e05e..fcbb84f 100644 (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)
index 07d1f45..17516e0 100644 (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)
index 727f728..b004bf9 100644 (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);
 }
index fabd894..a6b1d97 100644 (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,
index f17607e..4275e89 100644 (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);
   }
 }