bpo-36142: Add _PyPreConfig_SetAllocator() (GH-12187)

* _PyPreConfig_Write() now reallocates the pre-configuration with the
  new memory allocator.
* It is no longer needed to force the "default raw memory allocator"
  to clear pre-configuration and core configuration. Simplify the
  code.
* _PyPreConfig_Write() now does nothing if called after
  Py_Initialize(): no longer check if the allocator is the same.
* Remove _PyMem_GetDebugAllocatorsName(): dev mode sets again
  allocator to "debug".
This commit is contained in:
Victor Stinner 2019-03-06 01:13:43 +01:00 committed by GitHub
parent 7d2ef3ef50
commit c656e25667
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 50 additions and 88 deletions

View file

@ -336,7 +336,6 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
'legacy_windows_fs_encoding': 0,
'legacy_windows_stdio': 0,
})
DEBUG_ALLOCATOR = 'pymalloc_debug' if support.with_pymalloc() else 'malloc_debug'
# main config
COPY_MAIN_CONFIG = (
@ -589,7 +588,7 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
def test_init_env_dev_mode(self):
config = dict(self.INIT_ENV_CONFIG,
allocator=self.DEBUG_ALLOCATOR,
allocator='debug',
dev_mode=1)
self.check_config("init_env_dev_mode", config)
@ -597,7 +596,7 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
config = {
'dev_mode': 1,
'faulthandler': 1,
'allocator': self.DEBUG_ALLOCATOR,
'allocator': 'debug',
}
self.check_config("init_dev_mode", config)