summaryrefslogtreecommitdiffstats
path: root/src/errors.h
diff options
context:
space:
mode:
authorKen Takata <kentkt@csc.jp>2023-10-04 20:05:05 +0200
committerChristian Brabandt <cb@256bit.org>2023-10-04 20:05:05 +0200
commit119fdd9293f63614ed2ca60a78993466435db639 (patch)
tree0de7811d4f2982b04385c8d7cacf83134604c353 /src/errors.h
parent317468aaceb48e136ed7e3fa6d233345fd5360c6 (diff)
patch 9.0.1980: win32: issues with stable python ABIv9.0.1980
Problem: win32: issues with stable python ABI Solution: if_python3,win32: Fix Python3 stable ABI There were some issues in current stable ABI implementation on Windows: * Python DLL name should be `python3.dll` instead of `python311.dll` and so on. (See: https://docs.python.org/3/c-api/stable.html) * Some non-stable API functions were used: - `_PyObject_NextNotImplemented` - `PyStdPrinter_Type` * `reset_stdin()` and `hook_py_exit()` didn't work with `python3.dll`. `python3.dll` is a special type of DLL called forwarder DLL. It just forwards the functions to other DLL (e.g. `python311.dll`). There were two issues regarding these functions: - `python3.dll` doesn't have import tables. This caused a crash in `get_imported_func_info()`. Add a check whether the specified DLL has an import table. - `reset_stdin()` and `hook_py_exit()` should be applied to the forwarded DLL (e.g. `python311.dll`), not to `python3.dll`. Check the export directory of `python3.dll` to find the forwarded DLL and apply the functions to it. closes: #13260 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Ken Takata <kentkt@csc.jp>
Diffstat (limited to 'src/errors.h')
0 files changed, 0 insertions, 0 deletions