diff options
author | Tom Tromey <tom@tromey.com> | 2022-01-26 17:57:33 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2022-02-06 14:27:58 -0700 |
commit | 1a1bfce78f58cc934bf6ace4d03ddc87c9cbb860 (patch) | |
tree | c6868e38013866ca266f78296387f76b349b0c15 /gdb | |
parent | 5d0027b9bab7cbf5eb41a8c8ad1b9e4650d5f87e (diff) | |
download | gdb-1a1bfce78f58cc934bf6ace4d03ddc87c9cbb860.zip gdb-1a1bfce78f58cc934bf6ace4d03ddc87c9cbb860.tar.gz gdb-1a1bfce78f58cc934bf6ace4d03ddc87c9cbb860.tar.bz2 |
Merge do_val_print and common_val_print
The only caller of do_val_print just does a small bit of work before
the call. This patch merges the two functions, and removes an
unnecessary local variable, making gdb a bit simpler.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/valprint.c | 56 |
1 files changed, 21 insertions, 35 deletions
diff --git a/gdb/valprint.c b/gdb/valprint.c index 82abcb4..25e4a8d 100644 --- a/gdb/valprint.c +++ b/gdb/valprint.c @@ -989,16 +989,27 @@ generic_value_print (struct value *val, struct ui_file *stream, int recurse, } } -/* Helper function for val_print and common_val_print that does the - work. Arguments are as to val_print, but FULL_VALUE, if given, is - the value to be printed. */ +/* Print using the given LANGUAGE the value VAL onto stream STREAM according + to OPTIONS. -static void -do_val_print (struct value *value, struct ui_file *stream, int recurse, - const struct value_print_options *options, - const struct language_defn *language) + This is a preferable interface to val_print, above, because it uses + GDB's value mechanism. */ + +void +common_val_print (struct value *value, struct ui_file *stream, int recurse, + const struct value_print_options *options, + const struct language_defn *language) { - int ret = 0; + if (language->la_language == language_ada) + /* The value might have a dynamic type, which would cause trouble + below when trying to extract the value contents (since the value + size is determined from the type size which is unknown). So + get a fixed representation of our value. */ + value = ada_to_fixed_value (value); + + if (value_lazy (value)) + value_fetch_lazy (value); + struct value_print_options local_opts = *options; struct type *type = value_type (value); struct type *real_type = check_typedef (type); @@ -1024,9 +1035,8 @@ do_val_print (struct value *value, struct ui_file *stream, int recurse, if (!options->raw) { - ret = apply_ext_lang_val_pretty_printer (value, stream, recurse, options, - language); - if (ret) + if (apply_ext_lang_val_pretty_printer (value, stream, recurse, options, + language)) return; } @@ -1127,30 +1137,6 @@ value_check_printable (struct value *val, struct ui_file *stream, return 1; } -/* Print using the given LANGUAGE the value VAL onto stream STREAM according - to OPTIONS. - - This is a preferable interface to val_print, above, because it uses - GDB's value mechanism. */ - -void -common_val_print (struct value *val, struct ui_file *stream, int recurse, - const struct value_print_options *options, - const struct language_defn *language) -{ - if (language->la_language == language_ada) - /* The value might have a dynamic type, which would cause trouble - below when trying to extract the value contents (since the value - size is determined from the type size which is unknown). So - get a fixed representation of our value. */ - val = ada_to_fixed_value (val); - - if (value_lazy (val)) - value_fetch_lazy (val); - - do_val_print (val, stream, recurse, options, language); -} - /* See valprint.h. */ void |