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> 2019-03-05 Tom Tromey <tromey@adacore.com>
* target.c (the_dummy_target): Move later. Change type to * 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; long length;
struct type *type; struct type *type;
#ifdef IS_PY3K
output = PyBytes_AS_STRING (string.get ()); output = PyBytes_AS_STRING (string.get ());
length = PyBytes_GET_SIZE (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; type = builtin_type (gdbarch)->builtin_char;
if (hint && !strcmp (hint, "string")) if (hint && !strcmp (hint, "string"))

View file

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