forked from GitHub/gf-core
the indirection should be done in the evaluate_expr_thunk gate instead of in the pgf_evaluate_expr_thunk function. this ensures lazyness
This commit is contained in:
@@ -72,10 +72,6 @@ repeat:;
|
||||
val->args[i] = args[n_args-i-1];
|
||||
}
|
||||
|
||||
PgfIndirection* indir = (PgfIndirection*) thunk;
|
||||
indir->header.code = state->eval_gates->evaluate_indirection;
|
||||
indir->val = &val->header;
|
||||
|
||||
res = &val->header;
|
||||
break;
|
||||
}
|
||||
@@ -165,10 +161,6 @@ repeat:;
|
||||
|
||||
lambda->expr = expr;
|
||||
}
|
||||
|
||||
PgfIndirection* indir = (PgfIndirection*) thunk;
|
||||
indir->header.code = state->eval_gates->evaluate_indirection;
|
||||
indir->val = res;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -190,10 +182,6 @@ repeat:;
|
||||
|
||||
res = tmp_env->closure;
|
||||
|
||||
PgfIndirection* indir = (PgfIndirection*) thunk;
|
||||
indir->header.code = state->eval_gates->evaluate_indirection;
|
||||
indir->val = res;
|
||||
|
||||
if (n_args > 0) {
|
||||
PgfValuePAP* val = gu_new_flex(state->pool, PgfValuePAP, args, n_args);
|
||||
val->header.code = state->eval_gates->evaluate_value_pap;
|
||||
|
||||
Reference in New Issue
Block a user