Commit 8398c743 authored by Dag Sverre Seljebotn's avatar Dag Sverre Seljebotn

Fixes for previous commit

parent 4072b4dd
...@@ -618,7 +618,7 @@ def get_type_information_cname(code, dtype, maxdepth=None): ...@@ -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 # Must pre-call all used types in order not to recurse utility code
# writing. # writing.
assert len(fields) > 0 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] for f in fields]
typecode.putln("static __Pyx_StructField %s[] = {" % structinfo_name, safe=True) typecode.putln("static __Pyx_StructField %s[] = {" % structinfo_name, safe=True)
for f, typeinfo in zip(fields, types): for f, typeinfo in zip(fields, types):
......
...@@ -253,13 +253,13 @@ class GlobalState(object): ...@@ -253,13 +253,13 @@ class GlobalState(object):
assert writer.globalstate is None assert writer.globalstate is None
writer.globalstate = self writer.globalstate = self
for part in self.code_layout: self.rootwriter = writer
self.parts[part] = writer.insertion_point()#new_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.decls_writer = rootwriter.new_writer()
self.pystring_table = rootwriter.new_writer() self.pystring_table = rootwriter.new_writer()
self.init_cached_builtins_writer = rootwriter.new_writer() self.init_cached_builtins_writer = rootwriter.new_writer()
...@@ -297,7 +297,7 @@ class GlobalState(object): ...@@ -297,7 +297,7 @@ class GlobalState(object):
(Naming.filetable_cname, Naming.filenames_cname)) (Naming.filetable_cname, Naming.filenames_cname))
code.putln("}") code.putln("}")
def finalize_writers(self): def finalize_main_c_code(self):
self.close_global_decls() self.close_global_decls()
# #
......
...@@ -253,6 +253,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -253,6 +253,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
emit_linenums = options.emit_linenums emit_linenums = options.emit_linenums
rootwriter = Code.CCodeWriter(emit_linenums=emit_linenums) rootwriter = Code.CCodeWriter(emit_linenums=emit_linenums)
globalstate = Code.GlobalState(rootwriter, emit_linenums) globalstate = Code.GlobalState(rootwriter, emit_linenums)
globalstate.initialize_main_c_code()
h_code = globalstate['h_code'] h_code = globalstate['h_code']
self.generate_module_preamble(env, modules, h_code) self.generate_module_preamble(env, modules, h_code)
...@@ -294,7 +295,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -294,7 +295,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
for codetup, name in env.utility_code_list: for codetup, name in env.utility_code_list:
globalstate.use_utility_code(codetup, name) globalstate.use_utility_code(codetup, name)
globalstate.finalize_writers() globalstate.finalize_main_c_code()
f = open_new_file(result.c_file) f = open_new_file(result.c_file)
rootwriter.copyto(f) rootwriter.copyto(f)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment