+
+ if (r->type_changed || r->children_changed)
+ uiout->field_int ("new_num_children",
+ varobj_get_num_children (r->varobj));
+
+ gdb::unique_xmalloc_ptr<char> display_hint
+ = varobj_get_display_hint (r->varobj);
+ if (display_hint)
+ uiout->field_string ("displayhint", display_hint.get ());
+
+ if (varobj_is_dynamic_p (r->varobj))
+ uiout->field_int ("dynamic", 1);
+
+ varobj_get_child_range (r->varobj, &from, &to);
+ uiout->field_int ("has_more", varobj_has_more (r->varobj, to));
+
+ if (r->newobj)
+ {
+ int j;
+ varobj_p child;
+ struct cleanup *cleanup;
+
+ cleanup = make_cleanup_ui_out_list_begin_end (uiout, "new_children");
+ for (j = 0; VEC_iterate (varobj_p, r->newobj, j, child); ++j)
+ {
+ struct cleanup *cleanup_child;
+
+ cleanup_child
+ = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+ print_varobj (child, print_values, 1 /* print_expression */);
+ do_cleanups (cleanup_child);
+ }
+
+ do_cleanups (cleanup);
+ VEC_free (varobj_p, r->newobj);
+ r->newobj = NULL; /* Paranoia. */
+ }
+
+ do_cleanups (cleanup);