summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2014-09-30 17:34:29 +0000
committerkr.angelov <kr.angelov@gmail.com>2014-09-30 17:34:29 +0000
commit4e00834c68f85fe23abb9877dd3a372f2a215038 (patch)
tree49157e1c9fdb6e9d04510636028d4e09bf1cda1b /src/runtime/c/pgf
parentf5da57056c4c8b1ddfc51557ef5d8126ce37be7a (diff)
bugfix in pgf_evaluate_expr_thunk
Diffstat (limited to 'src/runtime/c/pgf')
-rw-r--r--src/runtime/c/pgf/evaluator.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/runtime/c/pgf/evaluator.c b/src/runtime/c/pgf/evaluator.c
index 0dba15c3f..e5041adb0 100644
--- a/src/runtime/c/pgf/evaluator.c
+++ b/src/runtime/c/pgf/evaluator.c
@@ -117,15 +117,15 @@ repeat:;
PgfExprThunk* lambda = gu_new(PgfExprThunk, state->pool);
lambda->header.code = state->eval_gates->evaluate_value_lambda;
lambda->env = NULL;
- res = lambda;
+ res = &lambda->header;
if (n_args > 0) {
PgfValuePAP* val = gu_new_flex(state->pool, PgfValuePAP, args, n_args);
val->header.code = state->eval_gates->evaluate_value_pap;
val->fun = &lambda->header;
- size_t i = 0;
- while (i < n_args) {
- val->args[i++] = args[--n_args];
+ val->n_args = n_args*sizeof(PgfClosure*);
+ for (size_t i = 0; i < n_args; i++) {
+ val->args[i] = args[i];
}
res = &val->header;
}