Remove la_get_string member
authorTom Tromey <tom@tromey.com>
Thu, 3 Oct 2019 22:59:17 +0000 (16:59 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 5 Nov 2019 22:36:28 +0000 (15:36 -0700)
The la_get_string member of struct language_defn was intended to
provide a way to fetch string data from a "string" object in a
language-dependent way.  However, it turned out that this was never
needed, and was only ever implemented for C.  This patch removes the
language hook entirely.

gdb/ChangeLog
2019-11-05  Tom Tromey  <tom@tromey.com>

* rust-lang.c (rust_language_defn): Update.
* python/py-value.c (valpy_string): Call c_get_string.
* p-lang.c (pascal_language_defn): Update.
* opencl-lang.c (opencl_language_defn): Update.
* objc-lang.c (objc_language_defn): Update.
* m2-lang.c (m2_language_defn): Update.
* language.c (unknown_language_defn, auto_language_defn): Update.
(default_get_string): Remove.
* guile/scm-value.c (gdbscm_value_to_string): Use c_get_string.
* go-lang.c (go_language_defn): Update.
* f-lang.c (f_language_defn): Update.
* d-lang.c (d_language_defn): Update.
* c-lang.c (c_language_defn, cplus_language_defn)
(asm_language_defn, minimal_language_defn): Update.
* ada-lang.c (ada_language_defn): Update.
* language.h (struct language_defn) <la_get_string>: Remove.
(LA_GET_STRING): Remove.
(default_get_string): Don't declare.

Change-Id: Ia97763dfe34dc8ecb46587f7a651f8af9be8fdbd

15 files changed:
gdb/ChangeLog
gdb/ada-lang.c
gdb/c-lang.c
gdb/d-lang.c
gdb/f-lang.c
gdb/go-lang.c
gdb/guile/scm-value.c
gdb/language.c
gdb/language.h
gdb/m2-lang.c
gdb/objc-lang.c
gdb/opencl-lang.c
gdb/p-lang.c
gdb/python/py-value.c
gdb/rust-lang.c

index 00d21fac1e75743c1ef07d2095116ce62536d690..5720c8e7fe14956fbd98bea0305b990d61a32ec1 100644 (file)
@@ -1,3 +1,24 @@
+2019-11-05  Tom Tromey  <tom@tromey.com>
+
+       * rust-lang.c (rust_language_defn): Update.
+       * python/py-value.c (valpy_string): Call c_get_string.
+       * p-lang.c (pascal_language_defn): Update.
+       * opencl-lang.c (opencl_language_defn): Update.
+       * objc-lang.c (objc_language_defn): Update.
+       * m2-lang.c (m2_language_defn): Update.
+       * language.c (unknown_language_defn, auto_language_defn): Update.
+       (default_get_string): Remove.
+       * guile/scm-value.c (gdbscm_value_to_string): Use c_get_string.
+       * go-lang.c (go_language_defn): Update.
+       * f-lang.c (f_language_defn): Update.
+       * d-lang.c (d_language_defn): Update.
+       * c-lang.c (c_language_defn, cplus_language_defn)
+       (asm_language_defn, minimal_language_defn): Update.
+       * ada-lang.c (ada_language_defn): Update.
+       * language.h (struct language_defn) <la_get_string>: Remove.
+       (LA_GET_STRING): Remove.
+       (default_get_string): Don't declare.
+
 2019-11-05  Tom Tromey  <tom@tromey.com>
 
        * tui/tui-source.h (struct tui_source_window): Inline
index 73704907136766789c575c564c38d365293c2182..0bddc9e8b0d422d6774e507e5cb9990dc514dbe1 100644 (file)
@@ -14135,7 +14135,6 @@ extern const struct language_defn ada_language_defn = {
   ada_language_arch_info,
   ada_print_array_index,
   default_pass_by_reference,
-  c_get_string,
   ada_watch_location_expression,
   ada_get_symbol_name_matcher, /* la_get_symbol_name_matcher */
   ada_iterate_over_symbols,
index 57592dfbce0f8822fa3ca3d68ed520b4124a0c5d..74e3f7311996755386b4a0f0db514bebb0be15bd 100644 (file)
@@ -926,7 +926,6 @@ extern const struct language_defn c_language_defn =
   c_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
-  c_get_string,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,
@@ -1072,7 +1071,6 @@ extern const struct language_defn cplus_language_defn =
   cplus_language_arch_info,
   default_print_array_index,
   cp_pass_by_reference,
-  c_get_string,
   c_watch_location_expression,
   cp_get_symbol_name_matcher,
   iterate_over_symbols,
@@ -1127,7 +1125,6 @@ extern const struct language_defn asm_language_defn =
   c_language_arch_info,        /* FIXME: la_language_arch_info.  */
   default_print_array_index,
   default_pass_by_reference,
-  c_get_string,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,
@@ -1182,7 +1179,6 @@ extern const struct language_defn minimal_language_defn =
   c_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
-  c_get_string,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,
index b80b374d6f1e3cde66015bb058309331ae141599..1701976da7888366b0f41742e46e4a9f89e6cd00 100644 (file)
@@ -244,7 +244,6 @@ extern const struct language_defn d_language_defn =
   d_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
-  c_get_string,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,
index 5681379b3b3c0872e071b857300adbdf1c89d070..7f241c62784bef13642f17ab6bac6d0186842b19 100644 (file)
@@ -671,7 +671,6 @@ extern const struct language_defn f_language_defn =
   f_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
-  default_get_string,
   c_watch_location_expression,
   cp_get_symbol_name_matcher,  /* la_get_symbol_name_matcher */
   iterate_over_symbols,
index c77676c8a5799141a37731159d23e96090f854df..c5ab306c3bd701a84e5bdf7405445942d2c5c69a 100644 (file)
@@ -615,7 +615,6 @@ extern const struct language_defn go_language_defn =
   go_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
-  c_get_string,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,
index 9b382108fb87a91a9c197c09e0459fa5c466f973..8aa4cfa345b6b34040ac5d54013e470399512dfd 100644 (file)
@@ -1015,7 +1015,7 @@ gdbscm_value_to_string (SCM self, SCM rest)
   try
     {
       gdb::unique_xmalloc_ptr<gdb_byte> buffer;
-      LA_GET_STRING (value, &buffer, &length, &char_type, &la_encoding);
+      c_get_string (value, &buffer, &length, &char_type, &la_encoding);
       buffer_contents = buffer.release ();
     }
   catch (const gdb_exception &except)
index 02c448fb1d8e8fc48d35aa6e433fbf1b1458d4dd..0e13c7185b76b57fa445d4642ac863c9d28f4281 100644 (file)
@@ -690,14 +690,6 @@ default_print_array_index (struct value *index_value, struct ui_file *stream,
   fprintf_filtered (stream, "] = ");
 }
 
-void
-default_get_string (struct value *value,
-                   gdb::unique_xmalloc_ptr<gdb_byte> *buffer,
-                   int *length, struct type **char_type, const char **charset)
-{
-  error (_("Getting a string is unsupported in this language."));
-}
-
 /* See language.h.  */
 
 bool
@@ -885,7 +877,6 @@ const struct language_defn unknown_language_defn =
   unknown_language_arch_info,  /* la_language_arch_info.  */
   default_print_array_index,
   default_pass_by_reference,
-  default_get_string,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,
@@ -937,7 +928,6 @@ const struct language_defn auto_language_defn =
   unknown_language_arch_info,  /* la_language_arch_info.  */
   default_print_array_index,
   default_pass_by_reference,
-  default_get_string,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,
index aa19f8ee9b4b97199eacdc38d7bbba3f69a8277f..5fc25a235ff08f84db5c4e345d66bf6c396306f6 100644 (file)
@@ -360,21 +360,6 @@ struct language_defn
        reference at the language level.  */
     int (*la_pass_by_reference) (struct type *type);
 
-    /* Obtain a string from the inferior, storing it in a newly allocated
-       buffer in BUFFER, which should be freed by the caller.  If the
-       in- and out-parameter *LENGTH is specified at -1, the string is
-       read until a null character of the appropriate width is found -
-       otherwise the string is read to the length of characters specified.
-       On completion, *LENGTH will hold the size of the string in characters.
-       If a *LENGTH of -1 was specified it will count only actual
-       characters, excluding any eventual terminating null character.
-       Otherwise *LENGTH will include all characters - including any nulls.
-       CHARSET will hold the encoding used in the string.  */
-    void (*la_get_string) (struct value *value,
-                          gdb::unique_xmalloc_ptr<gdb_byte> *buffer,
-                          int *length, struct type **chartype,
-                          const char **charset);
-
     /* Return an expression that can be used for a location
        watchpoint.  TYPE is a pointer type that points to the memory
        to watch, and ADDR is the address of the watched memory.  */
@@ -559,8 +544,6 @@ extern enum language set_language (enum language);
                                 encoding, force_ellipses,options))
 #define LA_EMIT_CHAR(ch, type, stream, quoter) \
   (current_language->la_emitchar(ch, type, stream, quoter))
-#define LA_GET_STRING(value, buffer, length, chartype, encoding) \
-  (current_language->la_get_string(value, buffer, length, chartype, encoding))
 
 #define LA_PRINT_ARRAY_INDEX(index_value, stream, options) \
   (current_language->la_print_array_index(index_value, stream, options))
@@ -643,11 +626,6 @@ int default_pass_by_reference (struct type *type);
 void default_print_typedef (struct type *type, struct symbol *new_symbol,
                            struct ui_file *stream);
 
-void default_get_string (struct value *value,
-                        gdb::unique_xmalloc_ptr<gdb_byte> *buffer,
-                        int *length, struct type **char_type,
-                        const char **charset);
-
 /* Default name hashing function.  */
 
 /* Produce an unsigned hash value from SEARCH_NAME that is consistent
index 759414d7f0f0043cdff31645f3f008f54ac8fc41..2d2dfe31018318f545032570cd4474a31543172c 100644 (file)
@@ -413,7 +413,6 @@ extern const struct language_defn m2_language_defn =
   m2_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
-  default_get_string,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,
index fbf0dab2ae233b83ed3769f4320b289309ec4126..946a0a1faed286bdec06d929b4cc8dbde97a97b2 100644 (file)
@@ -401,7 +401,6 @@ extern const struct language_defn objc_language_defn = {
   c_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
-  default_get_string,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,
index 80d7ec96bc2bbba906f9ae12cf9a7ccc4d59fddf..5d03210b569db9d9037dd2a060fe956fa2a83f7e 100644 (file)
@@ -1080,7 +1080,6 @@ extern const struct language_defn opencl_language_defn =
   opencl_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
-  c_get_string,
   c_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,
index 95911158d15ea9e7678964515156b099686f3a96..0cf1c6c16ca614da5f77737d357c5199c9b445ae 100644 (file)
@@ -466,7 +466,6 @@ extern const struct language_defn pascal_language_defn =
   pascal_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
-  default_get_string,
   c_watch_location_expression,
   NULL,                                /* la_compare_symbol_for_completion */
   iterate_over_symbols,
index 1428b7abe5c7b0038ac561c96d3571e363c8780c..1ca2dc5c7195271c0165952d27254e66a77da205 100644 (file)
@@ -567,7 +567,7 @@ valpy_string (PyObject *self, PyObject *args, PyObject *kw)
 
   try
     {
-      LA_GET_STRING (value, &buffer, &length, &char_type, &la_encoding);
+      c_get_string (value, &buffer, &length, &char_type, &la_encoding);
     }
   catch (const gdb_exception &except)
     {
index 838d9019adfbca32ee205b88da2842ecef0f1e13..b872a2dbf1c47d9d85a0caa93dc5269eece3cef2 100644 (file)
@@ -2165,7 +2165,6 @@ extern const struct language_defn rust_language_defn =
   rust_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
-  c_get_string,
   rust_watch_location_expression,
   NULL,                                /* la_get_symbol_name_matcher */
   iterate_over_symbols,