aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2020-11-02 10:17:07 -0700
committerTom Tromey <tromey@adacore.com>2020-11-02 10:17:07 -0700
commit5b3d3560e9e867f652ff622863cbac267455f726 (patch)
treef43c211abd48c163511bc5457d6d729c6bca2a9b /gdb/python
parentdda83cd783075941aabe9b0292b004b11f00c831 (diff)
downloadfsf-binutils-gdb-5b3d3560e9e867f652ff622863cbac267455f726.zip
fsf-binutils-gdb-5b3d3560e9e867f652ff622863cbac267455f726.tar.gz
fsf-binutils-gdb-5b3d3560e9e867f652ff622863cbac267455f726.tar.bz2
Minor Python simplifications
I noticed that a few "#if"s could be removed from the Python code. This patch is the result. gdb/ChangeLog 2020-11-02 Tom Tromey <tromey@adacore.com> * python/python.c: Consolidate two HAVE_PYTHON blocks. (python_GdbModuleDef): Move earlier. Now static. (do_start_initialization): Consolidate some IS_PY3K blocks.
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/python.c63
1 files changed, 24 insertions, 39 deletions
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 74fee00..bf3abdb 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -106,10 +106,6 @@ int gdb_python_initialized;
extern PyMethodDef python_GdbMethods[];
-#ifdef IS_PY3K
-extern struct PyModuleDef python_GdbModuleDef;
-#endif
-
PyObject *gdb_module;
PyObject *gdb_python_module;
@@ -1625,6 +1621,19 @@ finalize_python (void *ignore)
}
#ifdef IS_PY3K
+static struct PyModuleDef python_GdbModuleDef =
+{
+ PyModuleDef_HEAD_INIT,
+ "_gdb",
+ NULL,
+ -1,
+ python_GdbMethods,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
/* This is called via the PyImport_AppendInittab mechanism called
during initialization, to make the built-in _gdb module known to
Python. */
@@ -1639,18 +1648,6 @@ init__gdb_module (void)
static bool
do_start_initialization ()
{
-#ifdef IS_PY3K
- size_t progsize, count;
- /* Python documentation indicates that the memory given
- to Py_SetProgramName cannot be freed. However, it seems that
- at least Python 3.7.4 Py_SetProgramName takes a copy of the
- given program_name. Making progname_copy static and not release
- the memory avoids a leak report for Python versions that duplicate
- program_name, and respect the requirement of Py_SetProgramName
- for Python versions that do not duplicate program_name. */
- static wchar_t *progname_copy;
-#endif
-
#ifdef WITH_PYTHON_PATH
/* Work around problem where python gets confused about where it is,
and then can't find its libraries, etc.
@@ -1662,11 +1659,20 @@ do_start_initialization ()
(concat (ldirname (python_libdir.c_str ()).c_str (), SLASH_STRING, "bin",
SLASH_STRING, "python", (char *) NULL));
#ifdef IS_PY3K
+ /* Python documentation indicates that the memory given
+ to Py_SetProgramName cannot be freed. However, it seems that
+ at least Python 3.7.4 Py_SetProgramName takes a copy of the
+ given program_name. Making progname_copy static and not release
+ the memory avoids a leak report for Python versions that duplicate
+ program_name, and respect the requirement of Py_SetProgramName
+ for Python versions that do not duplicate program_name. */
+ static wchar_t *progname_copy;
+
std::string oldloc = setlocale (LC_ALL, NULL);
setlocale (LC_ALL, "");
- progsize = strlen (progname.get ());
+ size_t progsize = strlen (progname.get ());
progname_copy = XNEWVEC (wchar_t, progsize + 1);
- count = mbstowcs (progname_copy, progname.get (), progsize + 1);
+ size_t count = mbstowcs (progname_copy, progname.get (), progsize + 1);
if (count == (size_t) -1)
{
fprintf (stderr, "Could not convert python path to string\n");
@@ -1976,12 +1982,6 @@ gdbpy_initialized (const struct extension_language_defn *extlang)
return gdb_python_initialized;
}
-#endif /* HAVE_PYTHON */
-
-
-
-#ifdef HAVE_PYTHON
-
PyMethodDef python_GdbMethods[] =
{
{ "history", gdbpy_history, METH_VARARGS,
@@ -2124,21 +2124,6 @@ Register a TUI window constructor." },
{NULL, NULL, 0, NULL}
};
-#ifdef IS_PY3K
-struct PyModuleDef python_GdbModuleDef =
-{
- PyModuleDef_HEAD_INIT,
- "_gdb",
- NULL,
- -1,
- python_GdbMethods,
- NULL,
- NULL,
- NULL,
- NULL
-};
-#endif
-
/* Define all the event objects. */
#define GDB_PY_DEFINE_EVENT_TYPE(name, py_name, doc, base) \
PyTypeObject name##_event_object_type \