Closures over variables

This commit is contained in:
Stephen Dolan committed 2012-08-21 18:24:38 +01:00
1 parent c128c2029e
commit 79d81f4bee
6 files changed
+20 -9

No files matched your search

+6 -2
View File
@@ -204,15 +204,19 @@ json_t* jq_next() {
}
case LOADV: {
uint16_t level = *pc++;
uint16_t v = *pc++;
json_t** var = frame_local_var(frame_current(&frame_stk), v);
frame_ptr fp = frame_get_level(&frame_stk, frame_current(&frame_stk), level);
json_t** var = frame_local_var(fp, v);
stack_push(stackval_replace(stack_pop(), *var));
break;
}
case STOREV: {
uint16_t level = *pc++;
uint16_t v = *pc++;
json_t** var = frame_local_var(frame_current(&frame_stk), v);
frame_ptr fp = frame_get_level(&frame_stk, frame_current(&frame_stk), level);
json_t** var = frame_local_var(fp, v);
stackval val = stack_pop();
printf("V%d = ", v);
json_dumpf(val.value, stdout, JSON_ENCODE_ANY);