Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 92697db

Browse filesBrowse files
Update the comment about extensions.
1 parent 052c040 commit 92697db
Copy full SHA for 92697db

File tree

Expand file treeCollapse file tree

1 file changed

+30
-28
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+30
-28
lines changed

‎Python/import.c

Copy file name to clipboardExpand all lines: Python/import.c
+30-28Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -645,33 +645,33 @@ _PyImport_ClearModulesByIndex(PyInterpreterState *interp)
645645
K. PyModule_CreateInitialized() -> PyModule_SetDocString()
646646
L. PyModule_CreateInitialized(): set mod->md_def
647647
M. <module init func>: initialize the module, etc.
648-
N. _PyImport_RunModInitFunc(): set def->m_base.m_init
649-
O. import_run_extension()
648+
N. import_run_extension()
650649
-> _PyImport_CheckSubinterpIncompatibleExtensionAllowed()
651-
P. import_run_extension(): set __file__
652-
Q. import_run_extension() -> update_global_state_for_extension()
653-
R. update_global_state_for_extension():
650+
O. import_run_extension(): set __file__
651+
P. import_run_extension() -> update_global_state_for_extension()
652+
Q. update_global_state_for_extension():
654653
copy __dict__ into def->m_base.m_copy
655-
S. update_global_state_for_extension():
654+
R. update_global_state_for_extension():
656655
add it to _PyRuntime.imports.extensions
657-
T. import_run_extension() -> finish_singlephase_extension()
658-
U. finish_singlephase_extension():
656+
S. import_run_extension() -> finish_singlephase_extension()
657+
T. finish_singlephase_extension():
659658
add it to interp->imports.modules_by_index
660-
V. finish_singlephase_extension(): add it to sys.modules
659+
U. finish_singlephase_extension(): add it to sys.modules
661660
662661
Step (Q) is skipped for core modules (sys/builtins).
663662
664663
(6). subsequent times (found in _PyRuntime.imports.extensions):
665664
A. _imp_create_dynamic_impl() -> import_find_extension()
666-
B. import_find_extension()
667-
-> _PyImport_CheckSubinterpIncompatibleExtensionAllowed()
668-
C. import_find_extension() -> import_add_module()
669-
D. if name in sys.modules: use that module
670-
E. else:
671-
1. import_add_module() -> PyModule_NewObject()
672-
2. import_add_module(): set it on sys.modules
673-
F. import_find_extension(): copy the "m_copy" dict into __dict__
674-
G. import_find_extension(): add to modules_by_index
665+
B. import_find_extension() -> reload_singlephase_extension()
666+
C. reload_singlephase_extension()
667+
-> _PyImport_CheckSubinterpIncompatibleExtensionAllowed()
668+
D. reload_singlephase_extension() -> import_add_module()
669+
E. if name in sys.modules: use that module
670+
F. else:
671+
1. import_add_module() -> PyModule_NewObject()
672+
2. import_add_module(): set it on sys.modules
673+
G. reload_singlephase_extension(): copy the "m_copy" dict into __dict__
674+
H. reload_singlephase_extension(): add to modules_by_index
675675
676676
(10). (every time):
677677
A. noop
@@ -681,21 +681,23 @@ _PyImport_ClearModulesByIndex(PyInterpreterState *interp)
681681
682682
(6). not main interpreter and never loaded there - every time (not found in _PyRuntime.imports.extensions):
683683
A-P. (same as for m_size == -1)
684-
Q-S. (skipped)
685-
T-V. (same as for m_size == -1)
684+
Q. _PyImport_RunModInitFunc(): set def->m_base.m_init
685+
R. (skipped)
686+
S-U. (same as for m_size == -1)
686687
687688
(6). main interpreter - first time (not found in _PyRuntime.imports.extensions):
688-
A-R. (same as for m_size == -1)
689-
S. (skipped)
690-
T-V. (same as for m_size == -1)
689+
A-P. (same as for m_size == -1)
690+
Q. _PyImport_RunModInitFunc(): set def->m_base.m_init
691+
R-U. (same as for m_size == -1)
691692
692693
(6). subsequent times (found in _PyRuntime.imports.extensions):
693694
A. _imp_create_dynamic_impl() -> import_find_extension()
694-
B. import_find_extension()
695-
-> _PyImport_CheckSubinterpIncompatibleExtensionAllowed()
696-
C. import_find_extension(): call def->m_base.m_init (see above)
697-
D. import_find_extension(): add the module to sys.modules
698-
E. import_find_extension(): add to modules_by_index
695+
B. import_find_extension() -> reload_singlephase_extension()
696+
C. reload_singlephase_extension()
697+
-> _PyImport_CheckSubinterpIncompatibleExtensionAllowed()
698+
D. reload_singlephase_extension(): call def->m_base.m_init (see above)
699+
E. reload_singlephase_extension(): add the module to sys.modules
700+
F. reload_singlephase_extension(): add to modules_by_index
699701
700702
(10). every time:
701703
A. noop

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.