Update couch_spidermonkey.erl
diff --git a/src/couch/priv/couch_spidermonkey/couch_spidermonkey.cpp b/src/couch/priv/couch_spidermonkey/couch_spidermonkey.cpp
index 783f553..98b28f3 100644
--- a/src/couch/priv/couch_spidermonkey/couch_spidermonkey.cpp
+++ b/src/couch/priv/couch_spidermonkey/couch_spidermonkey.cpp
@@ -12,7 +12,7 @@
* the License.
*/
-#include <string.h>
+#include <string>
#include <jsapi.h>
#include "erl_nif.h"
@@ -27,10 +27,16 @@
// JS_GetImplementationVersion()
// returns "JavaScript-CMAJOR.MINOR.PATCH"
const string FULLVERSION = JS_GetImplementationVersion();
- int full_len = FULLVERSION.length();
- //trim off "JavaScript-C"
- string result = FULLVERSION.substr(js_len, full_len-js_len);
+ string result;
+ size_t foundJSString = FULLVERSION.find(JAVASCRIPT);
+ if (foundJSString != string::npos) {
+ //trim off "JavaScript-C",
+ result = FULLVERSION.substr(js_len);
+ } else {
+ //something changed in JS_GetImplementationVersion(), return original
+ result = FULLVERSION;
+ }
return enif_make_string(env, result.c_str(), ERL_NIF_LATIN1);
}
diff --git a/src/couch/rebar.config.script b/src/couch/rebar.config.script
index aa4117a..7716144 100644
--- a/src/couch/rebar.config.script
+++ b/src/couch/rebar.config.script
@@ -190,7 +190,7 @@
end.
SpiderEnv = case SMVsn of
- "91" ->
+ _ ->
[
{"CXXFLAGS", JS_CFLAGS},
{"LDFLAGS", JS_LDFLAGS}
diff --git a/src/couch/src/couch_spidermonkey.erl b/src/couch/src/couch_spidermonkey.erl
index ad42bb0..472fb8a 100644
--- a/src/couch/src/couch_spidermonkey.erl
+++ b/src/couch/src/couch_spidermonkey.erl
@@ -19,8 +19,8 @@
-on_load(init/0).
init() ->
- Dir = code:priv_dir(couch),
- ok = erlang:load_nif(filename:join(Dir, ?MODULE), 0).
+ Dir = code:priv_dir(couch),
+ ok = erlang:load_nif(filename:join(Dir, ?MODULE), 0).
get_spidermonkey_version() ->
- exit(nif_library_not_loaded).
\ No newline at end of file
+ exit(nif_library_not_loaded).