[Python-checkins] bpo-45379: clarify FROZEN_EXCLUDED and FROZEN_INVALID documentation (GH-29189)

ambv webhook-mailer at python.org
Fri Oct 29 16:55:23 EDT 2021


https://github.com/python/cpython/commit/c2d0ba722a7b3839685af968cf0c304a24cdf525
commit: c2d0ba722a7b3839685af968cf0c304a24cdf525
branch: main
author: Filipe Laíns <lains at riseup.net>
committer: ambv <lukasz at langa.pl>
date: 2021-10-29T22:55:14+02:00
summary:

bpo-45379: clarify FROZEN_EXCLUDED and FROZEN_INVALID documentation (GH-29189)

Signed-off-by: Filipe Laíns <lains at riseup.net>
Co-authored-by: Łukasz Langa <lukasz at langa.pl>

files:
M Python/import.c

diff --git a/Python/import.c b/Python/import.c
index 48ea9129163c8..cdcb903c88207 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -1171,8 +1171,10 @@ typedef enum {
     FROZEN_BAD_NAME,    // The given module name wasn't valid.
     FROZEN_NOT_FOUND,   // It wasn't in PyImport_FrozenModules.
     FROZEN_DISABLED,    // -X frozen_modules=off (and not essential)
-    FROZEN_EXCLUDED,    // The PyImport_FrozenModules entry has NULL "code".
-    FROZEN_INVALID,     // The PyImport_FrozenModules entry is bogus.
+    FROZEN_EXCLUDED,    /* The PyImport_FrozenModules entry has NULL "code"
+                           (module is present but marked as unimportable, stops search). */
+    FROZEN_INVALID,     /* The PyImport_FrozenModules entry is bogus
+                           (eg. does not contain executable code). */
 } frozen_status;
 
 static inline void
@@ -1305,6 +1307,7 @@ find_frozen(PyObject *nameobj, struct frozen_info *info)
         return FROZEN_EXCLUDED;
     }
     if (p->code[0] == '\0' || p->size == 0) {
+        /* Does not contain executable code. */
         return FROZEN_INVALID;
     }
     return FROZEN_OKAY;
@@ -1315,6 +1318,7 @@ unmarshal_frozen_code(struct frozen_info *info)
 {
     PyObject *co = PyMarshal_ReadObjectFromString(info->data, info->size);
     if (co == NULL) {
+        /* Does not contain executable code. */
         set_frozen_error(FROZEN_INVALID, info->nameobj);
         return NULL;
     }
@@ -2214,6 +2218,7 @@ _imp_get_frozen_object_impl(PyObject *module, PyObject *name,
         info.nameobj = name;
     }
     if (info.size == 0) {
+        /* Does not contain executable code. */
         set_frozen_error(FROZEN_INVALID, name);
         return NULL;
     }



More information about the Python-checkins mailing list