diff options
author | Doug Evans <dje@google.com> | 2016-03-29 23:48:35 -0700 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2016-03-29 23:48:35 -0700 |
commit | 4ae6cc19626d010005fbfbfba72952d26cc7c728 (patch) | |
tree | 79b99d5476876b4bd92ac2d0f0b6c67589ca67ec /gdb | |
parent | 4ec9d7d56427e9fa49fd705599bb2ff0c3c5f3c1 (diff) | |
download | gdb-4ae6cc19626d010005fbfbfba72952d26cc7c728.zip gdb-4ae6cc19626d010005fbfbfba72952d26cc7c728.tar.gz gdb-4ae6cc19626d010005fbfbfba72952d26cc7c728.tar.bz2 |
python/py-utils.c (host_string_to_python_string): New function.
gdb/ChangeLog:
* python/py-utils.c (host_string_to_python_string): New function.
* python/python-internal.h (host_string_to_python_string): Declare it.
* python/py-*.c (*): Update all calls to
PyString_Decode (str, strlen (str), host_charset (), NULL);
to use host_string_to_python_string instead.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/python/py-breakpoint.c | 8 | ||||
-rw-r--r-- | gdb/python/py-objfile.c | 10 | ||||
-rw-r--r-- | gdb/python/py-progspace.c | 4 | ||||
-rw-r--r-- | gdb/python/py-symtab.c | 8 | ||||
-rw-r--r-- | gdb/python/py-utils.c | 8 | ||||
-rw-r--r-- | gdb/python/python-internal.h | 1 | ||||
-rw-r--r-- | gdb/python/python.c | 4 |
8 files changed, 30 insertions, 21 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f69458b..7d1429c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2016-03-30 Doug Evans <dje@google.com> + + * python/py-utils.c (host_string_to_python_string): New function. + * python/python-internal.h (host_string_to_python_string): Declare it. + * python/py-*.c (*): Update all calls to + PyString_Decode (str, strlen (str), host_charset (), NULL); + to use host_string_to_python_string instead. + 2016-03-30 Marcin KoĆcielnicki <koriakin@0x04.net> * remote.c (remote_check_symbols): Allocate own buffer for reply. diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c index 964ec62..611a41e 100644 --- a/gdb/python/py-breakpoint.c +++ b/gdb/python/py-breakpoint.c @@ -392,7 +392,7 @@ bppy_get_location (PyObject *self, void *closure) str = event_location_to_string (obj->bp->location); if (! str) str = ""; - return PyString_Decode (str, strlen (str), host_charset (), NULL); + return host_string_to_python_string (str); } /* Python function to get the breakpoint expression. */ @@ -414,7 +414,7 @@ bppy_get_expression (PyObject *self, void *closure) if (! str) str = ""; - return PyString_Decode (str, strlen (str), host_charset (), NULL); + return host_string_to_python_string (str); } /* Python function to get the condition expression of a breakpoint. */ @@ -430,7 +430,7 @@ bppy_get_condition (PyObject *self, void *closure) if (! str) Py_RETURN_NONE; - return PyString_Decode (str, strlen (str), host_charset (), NULL); + return host_string_to_python_string (str); } /* Returns 0 on success. Returns -1 on error, with a python exception set. @@ -515,7 +515,7 @@ bppy_get_commands (PyObject *self, void *closure) ui_out_redirect (current_uiout, NULL); cmdstr = ui_file_xstrdup (string_file, &length); make_cleanup (xfree, cmdstr); - result = PyString_Decode (cmdstr, strlen (cmdstr), host_charset (), NULL); + result = host_string_to_python_string (cmdstr); do_cleanups (chain); return result; } diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c index 89c1551..cd26c5b 100644 --- a/gdb/python/py-objfile.c +++ b/gdb/python/py-objfile.c @@ -78,9 +78,7 @@ objfpy_get_filename (PyObject *self, void *closure) objfile_object *obj = (objfile_object *) self; if (obj->objfile) - return PyString_Decode (objfile_name (obj->objfile), - strlen (objfile_name (obj->objfile)), - host_charset (), NULL); + return host_string_to_python_string (objfile_name (obj->objfile)); Py_RETURN_NONE; } @@ -96,8 +94,7 @@ objfpy_get_username (PyObject *self, void *closure) { const char *username = obj->objfile->original_name; - return PyString_Decode (username, strlen (username), - host_charset (), NULL); + return host_string_to_python_string (username); } Py_RETURN_NONE; @@ -152,8 +149,7 @@ objfpy_get_build_id (PyObject *self, void *closure) char *hex_form = make_hex_string (build_id->data, build_id->size); PyObject *result; - result = PyString_Decode (hex_form, strlen (hex_form), - host_charset (), NULL); + result = host_string_to_python_string (hex_form); xfree (hex_form); return result; } diff --git a/gdb/python/py-progspace.c b/gdb/python/py-progspace.c index 62a5c7a..e1258c7 100644 --- a/gdb/python/py-progspace.c +++ b/gdb/python/py-progspace.c @@ -71,9 +71,7 @@ pspy_get_filename (PyObject *self, void *closure) struct objfile *objfile = obj->pspace->symfile_object_file; if (objfile) - return PyString_Decode (objfile_name (objfile), - strlen (objfile_name (objfile)), - host_charset (), NULL); + return host_string_to_python_string (objfile_name (objfile)); } Py_RETURN_NONE; } diff --git a/gdb/python/py-symtab.c b/gdb/python/py-symtab.c index d084969..c3c94e5 100644 --- a/gdb/python/py-symtab.c +++ b/gdb/python/py-symtab.c @@ -108,8 +108,7 @@ stpy_get_filename (PyObject *self, void *closure) STPY_REQUIRE_VALID (self, symtab); filename = symtab_to_filename_for_display (symtab); - str_obj = PyString_Decode (filename, strlen (filename), - host_charset (), NULL); + str_obj = host_string_to_python_string (filename); return str_obj; } @@ -140,8 +139,7 @@ stpy_get_producer (PyObject *self, void *closure) { const char *producer = COMPUNIT_PRODUCER (cust); - return PyString_Decode (producer, strlen (producer), - host_charset (), NULL); + return host_string_to_python_string (producer); } Py_RETURN_NONE; @@ -157,7 +155,7 @@ stpy_fullname (PyObject *self, PyObject *args) fullname = symtab_to_fullname (symtab); - return PyString_Decode (fullname, strlen (fullname), host_charset (), NULL); + return host_string_to_python_string (fullname); } /* Implementation of gdb.Symtab.is_valid (self) -> Boolean. diff --git a/gdb/python/py-utils.c b/gdb/python/py-utils.c index a7e79e3..2e2121d 100644 --- a/gdb/python/py-utils.c +++ b/gdb/python/py-utils.c @@ -221,6 +221,14 @@ python_string_to_host_string (PyObject *obj) return result; } +/* Convert a host string to a python string. */ + +PyObject * +host_string_to_python_string (const char *str) +{ + return PyString_Decode (str, strlen (str), host_charset (), NULL); +} + /* Return true if OBJ is a Python string or unicode object, false otherwise. */ diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index 731402b..6a2619c 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -538,6 +538,7 @@ char *unicode_to_target_string (PyObject *unicode_str); char *python_string_to_target_string (PyObject *obj); PyObject *python_string_to_target_python_string (PyObject *obj); char *python_string_to_host_string (PyObject *obj); +PyObject *host_string_to_python_string (const char *str); int gdbpy_is_string (PyObject *obj); char *gdbpy_obj_to_string (PyObject *obj); char *gdbpy_exception_to_string (PyObject *ptype, PyObject *pvalue); diff --git a/gdb/python/python.c b/gdb/python/python.c index 7202105..84f0596 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -516,7 +516,7 @@ gdbpy_parameter_value (enum var_types type, void *var) if (! str) str = ""; - return PyString_Decode (str, strlen (str), host_charset (), NULL); + return host_string_to_python_string (str); } case var_boolean: @@ -706,7 +706,7 @@ gdbpy_solib_name (PyObject *self, PyObject *args) soname = solib_name_from_address (current_program_space, pc); if (soname) - str_obj = PyString_Decode (soname, strlen (soname), host_charset (), NULL); + str_obj = host_string_to_python_string (soname); else { str_obj = Py_None; |