mirror of
https://github.com/python/cpython.git
synced 2025-08-22 09:45:06 +00:00
GH-108716: Turn off deep-freezing of code objects. (GH-108722)
This commit is contained in:
parent
00cf626cd4
commit
15d4c9fabc
15 changed files with 50 additions and 86 deletions
|
@ -2006,7 +2006,6 @@ look_up_frozen(const char *name)
|
|||
struct frozen_info {
|
||||
PyObject *nameobj;
|
||||
const char *data;
|
||||
PyObject *(*get_code)(void);
|
||||
Py_ssize_t size;
|
||||
bool is_package;
|
||||
bool is_alias;
|
||||
|
@ -2040,7 +2039,6 @@ find_frozen(PyObject *nameobj, struct frozen_info *info)
|
|||
if (info != NULL) {
|
||||
info->nameobj = nameobj; // borrowed
|
||||
info->data = (const char *)p->code;
|
||||
info->get_code = p->get_code;
|
||||
info->size = p->size;
|
||||
info->is_package = p->is_package;
|
||||
if (p->size < 0) {
|
||||
|
@ -2052,10 +2050,6 @@ find_frozen(PyObject *nameobj, struct frozen_info *info)
|
|||
info->is_alias = resolve_module_alias(name, _PyImport_FrozenAliases,
|
||||
&info->origname);
|
||||
}
|
||||
if (p->code == NULL && p->size == 0 && p->get_code != NULL) {
|
||||
/* It is only deepfrozen. */
|
||||
return FROZEN_OKAY;
|
||||
}
|
||||
if (p->code == NULL) {
|
||||
/* It is frozen but marked as un-importable. */
|
||||
return FROZEN_EXCLUDED;
|
||||
|
@ -2070,11 +2064,6 @@ find_frozen(PyObject *nameobj, struct frozen_info *info)
|
|||
static PyObject *
|
||||
unmarshal_frozen_code(PyInterpreterState *interp, struct frozen_info *info)
|
||||
{
|
||||
if (info->get_code && _Py_IsMainInterpreter(interp)) {
|
||||
PyObject *code = info->get_code();
|
||||
assert(code != NULL);
|
||||
return code;
|
||||
}
|
||||
PyObject *co = PyMarshal_ReadObjectFromString(info->data, info->size);
|
||||
if (co == NULL) {
|
||||
/* Does not contain executable code. */
|
||||
|
@ -3567,7 +3556,7 @@ _imp_get_frozen_object_impl(PyObject *module, PyObject *name,
|
|||
if (info.nameobj == NULL) {
|
||||
info.nameobj = name;
|
||||
}
|
||||
if (info.size == 0 && info.get_code == NULL) {
|
||||
if (info.size == 0) {
|
||||
/* Does not contain executable code. */
|
||||
set_frozen_error(FROZEN_INVALID, name);
|
||||
return NULL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue