mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
bpo-32096: Remove obj and mem from _PyRuntime (#4532)
bpo-32096, bpo-30860: Partially revert the commit
2ebc5ce42a:
* Move structures back from Include/internal/mem.h to
Objects/obmalloc.c
* Remove _PyObject_Initialize() and _PyMem_Initialize()
* Remove Include/internal/pymalloc.h
* Add test_capi.test_pre_initialization_api():
Make sure that it's possible to call Py_DecodeLocale(), and then call
Py_SetProgramName() with the decoded string, before Py_Initialize().
PyMem_RawMalloc() and Py_DecodeLocale() can be called again before
_PyRuntimeState_Init().
Co-Authored-By: Eric Snow <ericsnowcurrently@gmail.com>
This commit is contained in:
parent
4864a619dc
commit
9e87e7776f
12 changed files with 684 additions and 688 deletions
|
|
@ -125,6 +125,28 @@ static int test_forced_io_encoding(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************
|
||||
* Test parts of the C-API that work before initialization
|
||||
*********************************************************/
|
||||
|
||||
static int test_pre_initialization_api(void)
|
||||
{
|
||||
wchar_t *program = Py_DecodeLocale("spam", NULL);
|
||||
if (program == NULL) {
|
||||
fprintf(stderr, "Fatal error: cannot decode program name\n");
|
||||
return 1;
|
||||
}
|
||||
Py_SetProgramName(program);
|
||||
|
||||
Py_Initialize();
|
||||
Py_Finalize();
|
||||
|
||||
PyMem_RawFree(program);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* *********************************************************
|
||||
* List of test cases and the function that implements it.
|
||||
*
|
||||
|
|
@ -146,6 +168,7 @@ struct TestCase
|
|||
static struct TestCase TestCases[] = {
|
||||
{ "forced_io_encoding", test_forced_io_encoding },
|
||||
{ "repeated_init_and_subinterpreters", test_repeated_init_and_subinterpreters },
|
||||
{ "pre_initialization_api", test_pre_initialization_api },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue