couchdb-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dav...@apache.org
Subject svn commit: r800873 - in /couchdb/trunk: configure.ac src/couchdb/couch_js.c
Date Tue, 04 Aug 2009 16:51:42 GMT
Author: davisp
Date: Tue Aug  4 16:51:41 2009
New Revision: 800873

URL: http://svn.apache.org/viewvc?rev=800873&view=rev
Log:
Proper fix because JS_VERSION cannot distinguish between 1.8.0 and 1.8.1


Modified:
    couchdb/trunk/configure.ac
    couchdb/trunk/src/couchdb/couch_js.c

Modified: couchdb/trunk/configure.ac
URL: http://svn.apache.org/viewvc/couchdb/trunk/configure.ac?rev=800873&r1=800872&r2=800873&view=diff
==============================================================================
--- couchdb/trunk/configure.ac (original)
+++ couchdb/trunk/configure.ac Tue Aug  4 16:51:41 2009
@@ -103,6 +103,16 @@
 Are the Mozilla SpiderMonkey headers installed?])
         ])])
 
+AC_LANG_PUSH(C)
+AC_LINK_IFELSE(
+    [AC_LANG_PROGRAM(
+        [[]],
+        [[JS_SetOperationCallback(0, 0);]]
+    )],
+    AC_DEFINE([USE_JS_SETOPCB], [], [Use new JS_SetOperationCallback])
+)
+AC_LANG_POP(C)
+
 AC_CHECK_ICU([3])
 
 ICU_LOCAL_CFLAGS=`$ICU_CONFIG --cppflags-searchpath`

Modified: couchdb/trunk/src/couchdb/couch_js.c
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_js.c?rev=800873&r1=800872&r2=800873&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_js.c (original)
+++ couchdb/trunk/src/couchdb/couch_js.c Tue Aug  4 16:51:41 2009
@@ -19,6 +19,7 @@
 #include "curlhelper.h"
 #include <jsapi.h>
 #include <curl/curl.h>
+#include "config.h"
 
 #ifndef CURLOPT_COPYPOSTFIELDS
    #define CURLOPT_COPYPOSTFIELDS 10165
@@ -214,7 +215,7 @@
         return JS_FALSE;
     }
 
-#if JS_VERSION > 170
+#ifdef USE_JS_SETOPCB
     JS_SetContextThread(sub_context);
     JS_BeginRequest(sub_context);
 #endif
@@ -240,7 +241,7 @@
     }
 
 out:
-#if JS_VERSION > 170
+#ifdef USE_JS_SETOPCB
     JS_EndRequest(sub_context);
     JS_ClearContextThread(sub_context);
 #endif
@@ -405,9 +406,10 @@
 
 static uint32 gBranchCount = 0;
 
-#if JS_VERSION <= 170
+#ifdef USE_JS_SETOPCB
 static JSBool
-BranchCallback(JSContext *context, JSScript *script) {
+OperationCallback(JSContext *context)
+{
     if ((++gBranchCount & 0x3fff) == 1) {
         JS_MaybeGC(context);
     }
@@ -415,8 +417,7 @@
 }
 #else
 static JSBool
-OperationCallback(JSContext *context)
-{
+BranchCallback(JSContext *context, JSScript *script) {
     if ((++gBranchCount & 0x3fff) == 1) {
         JS_MaybeGC(context);
     }
@@ -1234,13 +1235,13 @@
         return 1;
     /* FIXME: https://bugzilla.mozilla.org/show_bug.cgi?id=477187 */
     JS_SetErrorReporter(context, PrintError);
-#if JS_VERSION <= 170
-    JS_SetBranchCallback(context, BranchCallback);
-    JS_ToggleOptions(context, JSOPTION_NATIVE_BRANCH_CALLBACK);
-#else
+#ifdef USE_JS_SETOPCB
     JS_SetContextThread(context);
     JS_BeginRequest(context);
     JS_SetOperationCallback(context, OperationCallback);
+#else
+    JS_SetBranchCallback(context, BranchCallback);
+    JS_ToggleOptions(context, JSOPTION_NATIVE_BRANCH_CALLBACK);
 #endif
     JS_ToggleOptions(context, JSOPTION_XML);
 
@@ -1272,7 +1273,7 @@
 
     ExecuteScript(context, global, argv[1]);
 
-#if JS_VERSION > 170
+#ifdef USE_JS_SETOPCB
     JS_EndRequest(context);
     JS_ClearContextThread(context);
 #endif



Mime
View raw message