resolve TODOs

This commit is contained in:
Yuichi Nishiwaki 2014-01-27 21:18:03 +09:00
parent 52927ac452
commit a2d9d2f93a
1 changed files with 11 additions and 7 deletions

View File

@ -700,7 +700,8 @@ new_resolver_state(pic_state *pic)
static void
destroy_resolver_state(resolver_state *state)
{
/* TODO */
pop_resolver_scope(state);
pic_free(state->pic, state);
}
static void
@ -748,8 +749,15 @@ push_resolver_scope(resolver_state *state, pic_value args, pic_value decls)
static void
pop_resolver_scope(resolver_state *state)
{
/* FIXME */
state->scope = state->scope->up;
resolver_scope *scope;
scope = state->scope;
xh_destory(scope->cvs);
xh_destory(scope->lvs);
scope = scope->up;
pic_free(state->pic, state->scope);
state->scope = scope;
}
static bool
@ -1050,10 +1058,6 @@ codegen(codegen_state *state, pic_value obj)
codegen_context *cxt = state->cxt;
pic_sym sym;
printf("generating... ");
pic_debug(pic, obj);
puts("");
sym = pic_sym(pic_car(pic, obj));
if (sym == state->sGREF) {
cxt->code[cxt->clen].insn = OP_GREF;