From 8398c7437ed1bd87c31ea3d2d7c772a2bb3d1115 Mon Sep 17 00:00:00 2001 From: Dag Sverre Seljebotn Date: Tue, 12 May 2009 09:49:54 +0200 Subject: [PATCH] Fixes for previous commit --- Cython/Compiler/Buffer.py | 2 +- Cython/Compiler/Code.py | 12 ++++++------ Cython/Compiler/ModuleNode.py | 3 ++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Cython/Compiler/Buffer.py b/Cython/Compiler/Buffer.py index 1fd04d62..e19fb3fb 100644 --- a/Cython/Compiler/Buffer.py +++ b/Cython/Compiler/Buffer.py @@ -618,7 +618,7 @@ def get_type_information_cname(code, dtype, maxdepth=None): # Must pre-call all used types in order not to recurse utility code # writing. assert len(fields) > 0 - types = [get_type_information_cname(proto, f.type, maxdepth - 1) + types = [get_type_information_cname(code, f.type, maxdepth - 1) for f in fields] typecode.putln("static __Pyx_StructField %s[] = {" % structinfo_name, safe=True) for f, typeinfo in zip(fields, types): diff --git a/Cython/Compiler/Code.py b/Cython/Compiler/Code.py index 50255b5c..48fbbd01 100644 --- a/Cython/Compiler/Code.py +++ b/Cython/Compiler/Code.py @@ -253,13 +253,13 @@ class GlobalState(object): assert writer.globalstate is None writer.globalstate = self - for part in self.code_layout: - self.parts[part] = writer.insertion_point()#new_writer() + self.rootwriter = writer - self.init_writers(writer) - + def initialize_main_c_code(self): + rootwriter = self.rootwriter + for part in self.code_layout: + self.parts[part] = rootwriter.insertion_point() - def init_writers(self, rootwriter): self.decls_writer = rootwriter.new_writer() self.pystring_table = rootwriter.new_writer() self.init_cached_builtins_writer = rootwriter.new_writer() @@ -297,7 +297,7 @@ class GlobalState(object): (Naming.filetable_cname, Naming.filenames_cname)) code.putln("}") - def finalize_writers(self): + def finalize_main_c_code(self): self.close_global_decls() # diff --git a/Cython/Compiler/ModuleNode.py b/Cython/Compiler/ModuleNode.py index 499190e4..af52468d 100644 --- a/Cython/Compiler/ModuleNode.py +++ b/Cython/Compiler/ModuleNode.py @@ -253,6 +253,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): emit_linenums = options.emit_linenums rootwriter = Code.CCodeWriter(emit_linenums=emit_linenums) globalstate = Code.GlobalState(rootwriter, emit_linenums) + globalstate.initialize_main_c_code() h_code = globalstate['h_code'] self.generate_module_preamble(env, modules, h_code) @@ -294,7 +295,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): for codetup, name in env.utility_code_list: globalstate.use_utility_code(codetup, name) - globalstate.finalize_writers() + globalstate.finalize_main_c_code() f = open_new_file(result.c_file) rootwriter.copyto(f) -- 2.26.2