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.
This commit is contained in:
parent
4ec9d7d564
commit
4ae6cc1962
@ -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.
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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.
|
||||
|
@ -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. */
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user