Set the stack size for sub contexts
authorPaul J. Davis <paul.joseph.davis@gmail.com>
Thu, 1 Dec 2011 16:00:06 +0000 (10:00 -0600)
committerPaul J. Davis <paul.joseph.davis@gmail.com>
Mon, 12 Dec 2011 19:53:00 +0000 (13:53 -0600)
I was forgetting to pass the args through to evalcx so that it could use
the stack size specified on the command line.

couchjs/c_src/sm170.c
couchjs/c_src/sm180.c
couchjs/c_src/sm185.c

index 016c91e..61f764d 100644 (file)
@@ -122,12 +122,14 @@ evalcx(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
     size_t srclen;
     JSBool ret = JS_FALSE;
 
+    couch_args* args = (couch_args*) JS_GetContextPrivate(cx);
+
     sandbox = NULL;
     if(!JS_ConvertArguments(cx, argc, argv, "S / o", &str, &sandbox)) {
         return JS_FALSE;
     }
 
-    subcx = JS_NewContext(JS_GetRuntime(cx), 8L * 1024L);
+    subcx = JS_NewContext(JS_GetRuntime(cx), args->stack_size);
     if(!subcx) {
         JS_ReportOutOfMemory(cx);
         return JS_FALSE;
@@ -306,6 +308,7 @@ main(int argc, const char* argv[])
     if(cx == NULL)
         return 1;
 
+    JS_SetContextPrivate(cx, args);
     JS_SetErrorReporter(cx, couch_error);
     JS_ToggleOptions(cx, JSOPTION_XML);
 
index 7dc2a97..6c33345 100644 (file)
@@ -127,12 +127,14 @@ evalcx(JSContext *cx, uintN argc, jsval* vp)
     jsval rval;
     JSBool ret = JS_FALSE;
 
+    couch_args* args = (couch_args*) JS_GetContextPrivate(cx);
+
     sandbox = NULL;
     if(!JS_ConvertArguments(cx, argc, argv, "S / o", &str, &sandbox)) {
         return JS_FALSE;
     }
 
-    subcx = JS_NewContext(JS_GetRuntime(cx), 8L * 1024L);
+    subcx = JS_NewContext(JS_GetRuntime(cx), args->stack_size);
     if(!subcx) {
         JS_ReportOutOfMemory(cx);
         return JS_FALSE;
@@ -315,6 +317,7 @@ main(int argc, const char* argv[])
     if(cx == NULL)
         return 1;
 
+    JS_SetContextPrivate(cx, args);
     JS_SetErrorReporter(cx, couch_error);
     JS_ToggleOptions(cx, JSOPTION_XML);
 
index a725846..ecca4c8 100644 (file)
@@ -147,12 +147,14 @@ evalcx(JSContext *cx, uintN argc, jsval* vp)
     jsval rval;
     JSBool ret = JS_FALSE;
 
+    couch_args* args = (couch_args*) JS_GetContextPrivate(cx);
+
     sandbox = NULL;
     if(!JS_ConvertArguments(cx, argc, argv, "S / o", &str, &sandbox)) {
         return JS_FALSE;
     }
 
-    subcx = JS_NewContext(JS_GetRuntime(cx), 8L * 1024L);
+    subcx = JS_NewContext(JS_GetRuntime(cx), args->stack_size);
     if(!subcx) {
         JS_ReportOutOfMemory(cx);
         return JS_FALSE;
@@ -327,6 +329,7 @@ main(int argc, const char* argv[])
     if(cx == NULL)
         return 1;
 
+    JS_SetContextPrivate(cx, args);
     JS_SetErrorReporter(cx, couch_error);
     JS_ToggleOptions(cx, JSOPTION_XML);