You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Jan Lehnardt <ja...@apache.org> on 2009/08/04 19:19:01 UTC

Re: svn commit: r800873 - in /couchdb/trunk: configure.ac src/couchdb/couch_js.c

On 4 Aug 2009, at 18:51, davisp@apache.org wrote:

> 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

Thanks Paul. Confirmed this is fixed and works for Spidermonkey 1.7  
and 1.8.1.

Cheers
Jan
--


>
>
> 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
>
>


Re: svn commit: r800873 - in /couchdb/trunk: configure.ac src/couchdb/couch_js.c

Posted by Jason Davies <ja...@jasondavies.com>.
On 4 Aug 2009, at 18:19, Jan Lehnardt wrote:

> On 4 Aug 2009, at 18:51, davisp@apache.org wrote:
>
>> 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
>
> Thanks Paul. Confirmed this is fixed and works for Spidermonkey 1.7  
> and 1.8.1.

Unfortunately still fails to compile for me on Debian using libmozjs  
1.9.0.12-0lenny1 (Spidermonkey 1.8.0).

Error trace: http://friendpaste.com/rrmRqyrrbe6MnNQQKouaM

--
Jason Davies

www.jasondavies.com

>
>>
>>
>> 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
>>
>>
>