clean up injection of RegisterModuleCleanup utility code
authorStefan Behnel <stefan_ml@behnel.de>
Sat, 25 Aug 2012 19:39:22 +0000 (21:39 +0200)
committerStefan Behnel <stefan_ml@behnel.de>
Sat, 25 Aug 2012 19:39:22 +0000 (21:39 +0200)
Cython/Compiler/ModuleNode.py
Cython/Utility/ModuleSetupCode.c

index a4e924b..6adc37d 100644 (file)
@@ -1913,7 +1913,8 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
 
         if Options.generate_cleanup_code:
             # this should be replaced by the module's tp_clear in Py3
-            env.use_utility_code(import_module_utility_code)
+            code.globalstate.use_utility_code(
+                UtilityCode.load_cached("RegisterModuleCleanup", "ModuleSetupCode.c"))
             code.putln("if (__Pyx_RegisterCleanup()) %s;" % code.error_goto(self.pos))
 
         code.put_goto(code.return_label)
@@ -1974,8 +1975,6 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
     def generate_module_cleanup_func(self, env, code):
         if not Options.generate_cleanup_code:
             return
-        code.globalstate.use_utility_code(
-            UtilityCode.load_cached("RegisterModuleCleanup", "ModuleSetupCode.c"))
         code.putln('static PyObject *%s(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *unused) {' %
                    Naming.cleanup_cname)
         if Options.generate_cleanup_code >= 2:
index eb51acb..c3f4d56 100644 (file)
@@ -578,6 +578,7 @@ static PyObject* ${cleanup_cname}(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED Py
 
 /////////////// RegisterModuleCleanup ///////////////
 //@substitute: naming
+//@requires: ModuleImport
 
 static int __Pyx_RegisterCleanup(void) {
     // Don't use Py_AtExit because that has a 32-call limit and is called