From 246177bd16b94ad3c202cae710bfefea521a44c2 Mon Sep 17 00:00:00 2001 From: Evax Software Date: Wed, 23 Mar 2011 21:03:31 +0100 Subject: [PATCH] Use handle_scope.Close() with values from the caches --- c_src/erlv8_term.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/c_src/erlv8_term.cc b/c_src/erlv8_term.cc index 177419f..01f8c5f 100644 --- a/c_src/erlv8_term.cc +++ b/c_src/erlv8_term.cc @@ -94,7 +94,7 @@ v8::Handle externalize_term(map map, cmp_erl_nif_term>::iterator iter = cache.find(term); if (iter != cache.end()) { - return iter->second; // it was cached before + return handle_scope.Close(iter->second); // it was cached before } else { v8::Handle external = term_to_external(term); v8::Handle obj = external_template->NewInstance(); @@ -240,7 +240,7 @@ v8::Handle term_to_js(v8::Handle ctx, ErlNifEnv *env, ER map, cmp_erl_nif_term>::iterator iter = vm->fun_map.find(term); if (iter != vm->fun_map.end()) { - return iter->second->GetFunction(); // it was cached before + return handle_scope.Close(iter->second->GetFunction()); // it was cached before } else { v8::Handle external = term_to_external(term); v8::Persistent t = v8::Persistent::New(v8::FunctionTemplate::New(WrapFun,external));