This is an automated email from the ASF dual-hosted git repository. davisp pushed a commit to branch add-chakra-support in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 87f7b1e1347d932c514e63111d76cda75160c1dd Author: Paul J. Davis <[email protected]> AuthorDate: Mon Aug 6 12:50:16 2018 -0500 Fix segfault on serialized resource reuse --- src/couch_chakra/src/couch_chakra.erl | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/couch_chakra/src/couch_chakra.erl b/src/couch_chakra/src/couch_chakra.erl index b1af729..0c02033 100644 --- a/src/couch_chakra/src/couch_chakra.erl +++ b/src/couch_chakra/src/couch_chakra.erl @@ -269,9 +269,17 @@ create_ddoc_context(#st{runtime = Rt}, DDoc) -> load_script(Ctx, ScriptName) -> - {ok, Script} = get_priv_file(ScriptName), - BinScriptName = list_to_binary(ScriptName), - {ok, _} = chakra:eval(Ctx, Script, [{source_url, BinScriptName}]). + Code = case get(ScriptName) of + undefined -> + {ok, Script} = get_priv_file(ScriptName), + {ok, Serialized} = chakra:serialize(Ctx, Script), + put(ScriptName, Serialized), + Serialized; + Else -> + Else + end, + BinScriptName = iolist_to_binary(ScriptName), + {ok, _} = chakra:run(Ctx, Code, [{source_url, BinScriptName}]). get_priv_file(FileName) ->
