diff --git a/version3.0/nasal_runtime.h b/version3.0/nasal_runtime.h index e713e52..9e45ab1 100644 --- a/version3.0/nasal_runtime.h +++ b/version3.0/nasal_runtime.h @@ -246,6 +246,66 @@ int nasal_runtime::main_progress() int nasal_runtime::block_progress(nasal_ast& node,int local_scope_addr) { int ret_state=rt_exit_without_error; + if(local_scope_addr<0) + { + local_scope_addr=nasal_vm.gc_alloc(); + nasal_vm.gc_get(local_scope_addr).set_type(vm_closure); + nasal_vm.gc_get(local_scope_addr).get_closure().add_scope(); + } + else + nasal_vm.add_reference(local_scope_addr); + int expr_number=node.get_children().size(); + int process_returned_value_addr=-1; + for(int i=0;i> [runtime] block_progress:error occurred when executing sub-progress."<