From f3fbd1c0586ff6ec7895991e6c28f61a503c36a8 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sat, 23 Jul 2016 20:50:09 +0000 Subject: Vendor import of lldb release_39 branch r276489: https://llvm.org/svn/llvm-project/lldb/branches/release_39@276489 --- scripts/Python/modules/readline/readline.cpp | 34 ++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 5 deletions(-) (limited to 'scripts/Python/modules/readline/readline.cpp') diff --git a/scripts/Python/modules/readline/readline.cpp b/scripts/Python/modules/readline/readline.cpp index d66ccf4b6b7dc..d4b4962cc313f 100644 --- a/scripts/Python/modules/readline/readline.cpp +++ b/scripts/Python/modules/readline/readline.cpp @@ -20,11 +20,6 @@ // work around LLVM pr18841 to avoid seg faults in the stock Python // readline.so linked against GNU readline. -static struct PyMethodDef moduleMethods[] = -{ - {nullptr, nullptr, 0, nullptr} -}; - #ifndef LLDB_DISABLE_LIBEDIT PyDoc_STRVAR( moduleDocumentation, @@ -35,9 +30,33 @@ PyDoc_STRVAR( "Stub module meant to avoid linking GNU readline."); #endif +#if PY_MAJOR_VERSION >= 3 +static struct PyModuleDef readline_module = +{ + PyModuleDef_HEAD_INIT, // m_base + "readline", // m_name + moduleDocumentation, // m_doc + -1, // m_size + nullptr, // m_methods + nullptr, // m_reload + nullptr, // m_traverse + nullptr, // m_clear + nullptr, // m_free +}; +#else +static struct PyMethodDef moduleMethods[] = +{ + {nullptr, nullptr, 0, nullptr} +}; +#endif + #ifndef LLDB_DISABLE_LIBEDIT static char* +#if PY_MAJOR_VERSION >= 3 +simple_readline(FILE *stdin, FILE *stdout, const char *prompt) +#else simple_readline(FILE *stdin, FILE *stdout, char *prompt) +#endif { rl_instream = stdin; rl_outstream = stdout; @@ -67,10 +86,15 @@ initreadline(void) #ifndef LLDB_DISABLE_LIBEDIT PyOS_ReadlineFunctionPointer = simple_readline; #endif + +#if PY_MAJOR_VERSION >= 3 + return PyModule_Create(&readline_module); +#else Py_InitModule4( "readline", moduleMethods, moduleDocumentation, static_cast(NULL), PYTHON_API_VERSION); +#endif } -- cgit v1.2.3