From 12ac827e529ef6383a8bf5d1b171f5009b669a43 Mon Sep 17 00:00:00 2001 From: "Charles.Forsyth" Date: Tue, 17 Feb 2009 11:18:45 +0000 Subject: 20090217-1118 --- appl/cmd/limbo/stubs.b | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'appl/cmd') diff --git a/appl/cmd/limbo/stubs.b b/appl/cmd/limbo/stubs.b index cafd6ff7..28b92a13 100644 --- a/appl/cmd/limbo/stubs.b +++ b/appl/cmd/limbo/stubs.b @@ -142,7 +142,7 @@ modcode(globals: ref Decl) print("\nvoid\n%sinit(void)\n{\n", emitcode); else{ print("\nvoid\n%smodinit(void)\n{\n", emitcode); - print("\tbuiltinmod(\"$%s\", %smodtab);\n", emitcode, emitcode); + print("\tbuiltinmod(\"$%s\", %smodtab, %smodlen);\n", emitcode, emitcode, emitcode); } for(id = d.ty.ids; id != nil; id = id.next) if(id.store == Dtype && id.ty.kind == Tadt){ @@ -173,8 +173,10 @@ modcode(globals: ref Decl) print("\nvoid\n%s_%s(void *fp)\n{\n\tF_%s_%s *f = fp;\n", id.dot.sym.name, id.sym.name, id.dot.sym.name, id.sym.name); - if(id.ty.tof != tnone && tattr[id.ty.tof.kind].isptr) - print("\n\tdestroy(*f->ret);\n\t*f->ret = H;\n"); + if(id.ty.tof != tnone && tattr[id.ty.tof.kind].isptr){ + print("\tvoid *r;\n"); + print("\n\tr = *f->ret;\n\t*f->ret = H;\n\tdestroy(r);\n"); + } print("}\n"); } -- cgit v1.2.3