Index: gdb/ChangeLog =================================================================== RCS file: /cvs/src/src/gdb/ChangeLog,v retrieving revision 1.10655 diff -u -p -r1.10655 ChangeLog --- gdb/ChangeLog 29 Jun 2009 18:27:23 -0000 1.10655 +++ gdb/ChangeLog 30 Jun 2009 09:19:27 -0000 @@ -1,3 +1,7 @@ +2009-06-30 Vladimir Prus + + * varobj.c (varobj_get_type): Use type_to_string. + 2009-06-29 Pedro Alves * infrun.c (handle_inferior_event): Context switch to the new Index: gdb/varobj.c =================================================================== RCS file: /cvs/src/src/gdb/varobj.c,v retrieving revision 1.136 diff -u -p -r1.136 varobj.c --- gdb/varobj.c 29 Jun 2009 13:24:41 -0000 1.136 +++ gdb/varobj.c 30 Jun 2009 09:19:27 -0000 @@ -34,6 +34,7 @@ #include "vec.h" #include "gdbthread.h" #include "inferior.h" +#include "typeprint.h" #if HAVE_PYTHON #include "python/python.h" @@ -1030,29 +1031,13 @@ varobj_add_child (struct varobj *var, co char * varobj_get_type (struct varobj *var) { - struct value *val; - struct cleanup *old_chain; - struct ui_file *stb; - char *thetype; - long length; - /* For the "fake" variables, do not return a type. (It's type is NULL, too.) Do not return a type for invalid variables as well. */ if (CPLUS_FAKE_CHILD (var) || !var->root->is_valid) return NULL; - stb = mem_fileopen (); - old_chain = make_cleanup_ui_file_delete (stb); - - /* To print the type, we simply create a zero ``struct value *'' and - cast it to our type. We then typeprint this variable. */ - val = value_zero (var->type, not_lval); - type_print (value_type (val), "", stb, -1); - - thetype = ui_file_xstrdup (stb, &length); - do_cleanups (old_chain); - return thetype; + return type_to_string (var->type); } /* Obtain the type of an object variable. */