Remove some Python 3 #ifs

A recent patch from Kevin Buettner taught me that the PyBytes API is
available on Python 2.  This patch removes a couple of related #ifs in
the Python code.

Tested on x86-64 Fedora 29, using both Python 3.7 and Python 2.7.

gdb/ChangeLog
2019-03-05  Tom Tromey  <tromey@adacore.com>

	* python/py-prettyprint.c (print_string_repr): Remove #if.
	* python/py-utils.c (unicode_to_encoded_string): Remove #if.
This commit is contained in:
Tom Tromey 2019-03-05 14:58:24 -07:00
parent 06b5b831a0
commit ea38e5df77
3 changed files with 7 additions and 14 deletions

View File

@ -1,3 +1,8 @@
2019-03-05 Tom Tromey <tromey@adacore.com>
* python/py-prettyprint.c (print_string_repr): Remove #if.
* python/py-utils.c (unicode_to_encoded_string): Remove #if.
2019-03-05 Tom Tromey <tromey@adacore.com>
* target.c (the_dummy_target): Move later. Change type to

View File

@ -312,13 +312,8 @@ print_string_repr (PyObject *printer, const char *hint,
long length;
struct type *type;
#ifdef IS_PY3K
output = PyBytes_AS_STRING (string.get ());
length = PyBytes_GET_SIZE (string.get ());
#else
output = PyString_AsString (string.get ());
length = PyString_Size (string.get ());
#endif
type = builtin_type (gdbarch)->builtin_char;
if (hint && !strcmp (hint, "string"))

View File

@ -66,20 +66,13 @@ python_string_to_unicode (PyObject *obj)
static gdb::unique_xmalloc_ptr<char>
unicode_to_encoded_string (PyObject *unicode_str, const char *charset)
{
gdb::unique_xmalloc_ptr<char> result;
/* Translate string to named charset. */
gdbpy_ref<> string (PyUnicode_AsEncodedString (unicode_str, charset, NULL));
if (string == NULL)
return NULL;
#ifdef IS_PY3K
result.reset (xstrdup (PyBytes_AsString (string.get ())));
#else
result.reset (xstrdup (PyString_AsString (string.get ())));
#endif
return result;
return gdb::unique_xmalloc_ptr<char>
(xstrdup (PyBytes_AsString (string.get ())));
}
/* Returns a PyObject with the contents of the given unicode string