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.
+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
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"))
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