diff options
Diffstat (limited to 'community-testing')
21 files changed, 0 insertions, 3903 deletions
diff --git a/community-testing/coin/PKGBUILD b/community-testing/coin/PKGBUILD deleted file mode 100644 index 70289ef96..000000000 --- a/community-testing/coin/PKGBUILD +++ /dev/null @@ -1,54 +0,0 @@ -# Maintainer: Thomas Dziedzic < gostrc at gmail > -# Contributor: mickele -# Contributor: marcus fritzsch <fritschy@googlemail.com> - -pkgname=coin -pkgver=3.1.3 -pkgrel=5 -pkgdesc='Coin3D is a high-level 3D graphics toolkit on top of OpenGL.' -url='http://www.coin3d.org/' -license=('GPL') -arch=('i686' 'x86_64') -depends=('mesa' 'expat') -makedepends=('doxygen') -optdepends=('openal: sound/dynamic linking support' - 'fontconfig: dynamic linking support' - 'zlib: dynamic linking support' - 'freetype2: dynamic linking support' - 'js: dynamic linking support') -options=('!libtool') -source=("http://ftp.coin3d.org/coin/src/all/Coin-${pkgver}.tar.gz") -md5sums=('1538682f8d92cdf03e845c786879fbea') - -build() { - cd Coin-${pkgver} - - ./configure \ - --prefix=/usr \ - --mandir=/usr/share/man \ - --enable-optimization \ - --enable-3ds-import \ - --enable-javascript-api \ - --enable-threadsafe \ - --enable-exceptions \ - --enable-man \ - --with-mesa \ - --disable-debug \ - --enable-shared \ - --disable-maintainer-mode \ - --disable-dependency-tracking \ - --enable-system-expat - - make -} - -package() { - cd Coin-${pkgver} - - make DESTDIR=${pkgdir} install - - # final adjustments - for _FILE in threads deprecated ; do - mv "${pkgdir}/usr/share/man/man3/${_FILE}.3" "${pkgdir}/usr/share/man/man3/coin-${_FILE}.3" - done -} diff --git a/community-testing/couchdb/PKGBUILD b/community-testing/couchdb/PKGBUILD deleted file mode 100644 index 6d4d6d171..000000000 --- a/community-testing/couchdb/PKGBUILD +++ /dev/null @@ -1,46 +0,0 @@ -# $Id: PKGBUILD 51045 2011-07-04 15:16:10Z spupykin $ -# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> -# Contributor: Vitaliy Berdinskikh ur6lad[at]i.ua -# Previous Contributor: Michael Fellinger <m.fellinger@gmail.com> - -pkgname=couchdb -pkgver=1.1.0 -pkgrel=1.svn20110704 -pkgdesc="A document-oriented database that can be queried and indexed in a MapReduce fashion using JSON" -arch=('i686' 'x86_64') -url="http://couchdb.apache.org" -license=('APACHE') -depends=('icu' 'erlang' 'js' 'openssl' 'curl') -makedepends=('gcc') -install=couchdb.install -options=('!libtool') -backup=('etc/couchdb/local.ini' - 'etc/conf.d/couchdb' - 'etc/logrotate.d/couchdb') -#source=("http://www.apache.org/dist/$pkgname/$pkgver/apache-$pkgname-$pkgver.tar.gz" -source=("http://arch.p5n.pp.ru/~sergej/dl/apache-couchdb-$pkgver.svn20110704.tar.gz" - "rc-script.patch") -md5sums=('a961f9047aa34df56ef19d6f6dce083b' - 'e9b5595338efbdc1a5db13284a296612') - -build() { - cd "$srcdir/apache-$pkgname-$pkgver" - - sed -i 's|-ljs|-lmozjs185|' configure - ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var - make - patch etc/init/couchdb <$srcdir/rc-script.patch -} - -package() { - cd "$srcdir/apache-$pkgname-$pkgver" - make DESTDIR="$pkgdir" install - - install -Dm755 etc/default/couchdb $pkgdir/etc/conf.d/couchdb - sed -i 's|\(CONFIGURATION_FILE=/etc/\)default\(/couchdb\)|\1conf.d\2|' $pkgdir/etc/rc.d/couchdb - sed -i 's|\(COUCHDB_OPTIONS=\)|\1"-p /var/run/couchdb/couchdb.pid"|' $pkgdir/etc/conf.d/couchdb - sed -i 's|$COUCHDB -s|$COUCHDB $COUCHDB_OPTIONS -s|' $pkgdir/etc/rc.d/couchdb - sed -i 's|su $COUCHDB_USER -c|su $COUCHDB_USER -s /bin/bash -c|' $pkgdir/etc/rc.d/couchdb - - rm -rf $pkgdir/etc/default/ $pkgdir/var/run -} diff --git a/community-testing/couchdb/couchdb.install b/community-testing/couchdb/couchdb.install deleted file mode 100644 index 5eff459c7..000000000 --- a/community-testing/couchdb/couchdb.install +++ /dev/null @@ -1,22 +0,0 @@ -post_install() { - id couchdb &>/dev/null || \ - useradd -r -c "CouchDB daemon" -g daemon -d /var/lib/couchdb -s /bin/false couchdb - mkdir -p /var/run/couchdb - chown -R couchdb.daemon /etc/couchdb - chown -R couchdb.daemon /var/{lib,log,run}/couchdb -} - -pre_upgrade() { - id couchdb &>/dev/null || \ - useradd -r -c "CouchDB daemon" -g daemon -d /var/lib/couchdb -s /bin/false couchdb -} - -post_upgrade() { - mkdir -p $pkgdir/var/run/couchdb - chown -R couchdb.daemon /etc/couchdb - chown -R couchdb.daemon /var/{lib,log,run}/couchdb -} - -post_remove() { - userdel couchdb &>/dev/null -} diff --git a/community-testing/couchdb/rc-script.patch b/community-testing/couchdb/rc-script.patch deleted file mode 100644 index d38f4dc6c..000000000 --- a/community-testing/couchdb/rc-script.patch +++ /dev/null @@ -1,90 +0,0 @@ ---- couchdb.org 2011-04-01 19:56:32.000000000 +0000 -+++ couchdb 2011-04-01 19:59:17.000000000 +0000 -@@ -1,4 +1,7 @@ --#!/bin/sh -e -+#!/bin/bash -+#general config -+. /etc/rc.conf -+. /etc/rc.d/functions - - # Licensed under the Apache License, Version 2.0 (the "License"); you may not - # use this file except in compliance with the License. You may obtain a copy of -@@ -29,7 +32,7 @@ - NAME=couchdb - SCRIPT_NAME=`basename $0` - COUCHDB=/usr/bin/couchdb --CONFIGURATION_FILE=/etc/default/couchdb -+CONFIGURATION_FILE=/etc/conf.d/couchdb - RUN_DIR=/var/run/couchdb - LSB_LIBRARY=/lib/lsb/init-functions - -@@ -61,8 +63,9 @@ - fi - - start_couchdb () { -- # Start Apache CouchDB as a background process. -+ stat_busy "Starting the CouchDB daemon" - -+ [ -d /var/run/couchdb ] || mkdir -p /var/run/couchdb - command="$COUCHDB -b" - if test -n "$COUCHDB_STDOUT_FILE"; then - command="$command -o $COUCHDB_STDOUT_FILE" -@@ -79,38 +82,38 @@ - mkdir -p "$RUN_DIR" - if test -n "$COUCHDB_USER"; then - chown $COUCHDB_USER "$RUN_DIR" -- if su $COUCHDB_USER -c "$command" > /dev/null; then -- return $SCRIPT_OK -+ if su $COUCHDB_USER -s /bin/bash -c "$command" > /dev/null; then -+ stat_done - else -- return $SCRIPT_ERROR -+ stat_fail - fi - else - if $command > /dev/null; then -- return $SCRIPT_OK -+ stat_done - else -- return $SCRIPT_ERROR -+ stat_fail - fi - fi - } - - stop_couchdb () { -- # Stop the running Apache CouchDB process. -+ stat_busy "Stopping the CouchDB daemon" - - command="$COUCHDB -d" - if test -n "$COUCHDB_OPTIONS"; then - command="$command $COUCHDB_OPTIONS" - fi - if test -n "$COUCHDB_USER"; then -- if su $COUCHDB_USER -c "$command" > /dev/null; then -- return $SCRIPT_OK -+ if su $COUCHDB_USER -s /bin/bash -c "$command" > /dev/null; then -+ stat_done - else -- return $SCRIPT_ERROR -+ stat_fail - fi - else - if $command > /dev/null; then -- return $SCRIPT_OK -+ stat_done - else -- return $SCRIPT_ERROR -+ stat_fail - fi - fi - } -@@ -118,7 +121,7 @@ - display_status () { - # Display the status of the running Apache CouchDB process. - -- $COUCHDB -s -+ $COUCHDB $COUCHDB_OPTIONS -s - } - - parse_script_option_list () { diff --git a/community-testing/elinks/PKGBUILD b/community-testing/elinks/PKGBUILD deleted file mode 100644 index 037b290e9..000000000 --- a/community-testing/elinks/PKGBUILD +++ /dev/null @@ -1,37 +0,0 @@ -# $Id: PKGBUILD 51048 2011-07-04 15:29:28Z spupykin $ -# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> -# Maintainer: Andrea Scarpino <andrea@archlinux.org> -# Contributor: damir <damir@archlinux.org> -# Contributor: Ben <contrasutra@myrealbox.com> - -pkgname=elinks -pkgver=0.13 -_commit="03c698e926d4421ba43d905b6d9fd7388b97352f" -pkgrel=6 -pkgdesc="An advanced and well-established feature-rich text mode web browser." -arch=("i686" "x86_64") -url="http://elinks.or.cz" -license=('GPL') -depends=('bzip2' 'expat>=2.0' 'gpm>=1.20.4' 'openssl' 'lua>=5.1.1' 'libidn' 'js' - 'gc' 'tre' 'smbclient') -source=("http://arch.p5n.pp.ru/~sergej/dl/elinks-$pkgver-${_commit}.tar.gz") -md5sums=('85916038633d0eb4ed98c3f82ac0b405') - -build() { - cd "$srcdir/elinks" - [ -x configure ] || sh autogen.sh - ./configure --prefix=/usr --mandir=/usr/share/man \ - --sysconfdir=/etc \ - --enable-smb --without-x --enable-cgi \ - --enable-leds --enable-256-colors --enable-html-highlight \ - --with-zlib - make -} - -package() { - cd "$srcdir/elinks" - make DESTDIR="$pkgdir" install - rm -f "$pkgdir/usr/share/locale/locale.alias" - install -D -m644 "contrib/debian/$pkgname.desktop" \ - "$pkgdir/usr/share/applications/$pkgname.desktop" -} diff --git a/community-testing/freewrl/PKGBUILD b/community-testing/freewrl/PKGBUILD deleted file mode 100644 index 8d00cdc7f..000000000 --- a/community-testing/freewrl/PKGBUILD +++ /dev/null @@ -1,38 +0,0 @@ -# $Id: PKGBUILD 51056 2011-07-04 16:35:05Z spupykin $ -# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> -# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com> - -pkgname=freewrl -pkgver=1.22.10 -pkgrel=6 -pkgdesc="VRML viewer" -arch=('i686' 'x86_64') -url="http://freewrl.sourceforge.net/" -license=('GPL') -depends=('java-runtime' 'libxaw' 'glew' 'freeglut' 'curl' 'freetype2' 'imlib2' 'sox' - 'unzip' 'imagemagick' 'libxml2' 'ttf-bitstream-vera' 'lesstif' 'js') -makedepends=('java-environment') -options=(!libtool) -source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 - build-fix.patch) -md5sums=('07fd8f193d14799ffb95a59a4887fc88' - '52e4b6aacebcaf18cbec8975e0eb7fd8') - -build() { - . /etc/profile.d/openjdk6.sh - cd $srcdir/$pkgname-$pkgver - patch -p1 <$srcdir/build-fix.patch - export JAVASCRIPT_ENGINE_CFLAGS="-I/usr/include/js -DXP_UNIX -DJS_THREADSAFE $(pkg-config --cflags nspr)" - export JAVASCRIPT_ENGINE_LIBS="$(pkg-config --libs nspr) -lmozjs185" - ./configure \ - --prefix=/usr --with-fontsdir=/usr/share/fonts/TTF --enable-libeai \ - --enable-libcurl --with-expat=/usr --with-target=x11 --disable-plugin \ - --disable-mozilla-js --disable-xulrunner-js --disable-firefox-js \ - --disable-seamonkey-js - make -} - -package() { - cd $srcdir/$pkgname-$pkgver - make DESTDIR=$pkgdir install -} diff --git a/community-testing/freewrl/build-fix.patch b/community-testing/freewrl/build-fix.patch deleted file mode 100644 index c0de71d07..000000000 --- a/community-testing/freewrl/build-fix.patch +++ /dev/null @@ -1,1201 +0,0 @@ -diff -wbBur freewrl-1.22.10/src/lib/non_web3d_formats/ColladaParser.c freewrl-1.22.10.my/src/lib/non_web3d_formats/ColladaParser.c ---- freewrl-1.22.10/src/lib/non_web3d_formats/ColladaParser.c 2010-08-19 06:20:36.000000000 +0400 -+++ freewrl-1.22.10.my/src/lib/non_web3d_formats/ColladaParser.c 2011-07-04 01:19:07.000000000 +0400 -@@ -54,7 +54,7 @@ - #include "ColladaParser.h" - - #if HAVE_EXPAT_H --# include <expat.h> -+# include </usr/include/expat.h> - #endif - - #define PROTOINSTANCE_MAX_LEVELS 10 -diff -wbBur freewrl-1.22.10/src/lib/world_script/fieldGet.c freewrl-1.22.10.my/src/lib/world_script/fieldGet.c ---- freewrl-1.22.10/src/lib/world_script/fieldGet.c 2010-10-13 23:45:26.000000000 +0400 -+++ freewrl-1.22.10.my/src/lib/world_script/fieldGet.c 2011-07-04 20:21:21.000000000 +0400 -@@ -412,7 +412,7 @@ - /* create a new SFFloat object */ - - fp = (float *)fp_in; -- newjsval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)*fp)); -+ newjsval = JS_NewJSVal(cx,(double)*fp); - fp_in = offsetPointer_deref(float *,fp_in,elementlen); - - /* put this object into the MF class */ -@@ -449,7 +449,7 @@ - /* create a new SFTime object */ - - fp = (float *)fp_in; -- newjsval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)*fp)); -+ newjsval = JS_NewJSVal(cx,(double)*fp); - fp_in = offsetPointer_deref(float *,fp_in,elementlen); - - /* put this object into the MF class */ -diff -wbBur freewrl-1.22.10/src/lib/world_script/fieldSet.c freewrl-1.22.10.my/src/lib/world_script/fieldSet.c ---- freewrl-1.22.10/src/lib/world_script/fieldSet.c 2010-09-22 00:00:25.000000000 +0400 -+++ freewrl-1.22.10.my/src/lib/world_script/fieldSet.c 2011-07-04 20:03:53.000000000 +0400 -@@ -748,7 +748,7 @@ - - #ifdef SETFIELDVERBOSE - strval = JS_ValueToString(scriptContext, JSglobal_return_val); -- strp = JS_GetStringBytes(strval); -+ strp = JS_EncodeString(scriptContext, strval); - printf ("start of setField_javascriptEventOut, to %ld:%d = %p, fieldtype %d string %s\n",(long)tn, tptr, memptr, fieldType, strp); - #endif - -@@ -813,7 +813,7 @@ - case FIELDTYPE_SFImage: { - /* the string should be saved as an SFImage */ - strval = JS_ValueToString(scriptContext, JSglobal_return_val); -- strp = JS_GetStringBytes(strval); -+ strp = JS_EncodeString(scriptContext, strval); - - Parser_scanStringValueToMem(tn, tptr, FIELDTYPE_SFImage, strp, FALSE); - break; -@@ -824,7 +824,7 @@ - uintptr_t *newptr; - - strval = JS_ValueToString(scriptContext, JSglobal_return_val); -- strp = JS_GetStringBytes(strval); -+ strp = JS_EncodeString(scriptContext, strval); - - /* copy the string over, delete the old one, if need be */ - /* printf ("fieldSet SFString, tn %d tptr %d offset from struct %d\n", -@@ -844,7 +844,7 @@ - struct X3D_Node *mynode; - - strval = JS_ValueToString(scriptContext, JSglobal_return_val); -- strp = JS_GetStringBytes(strval); -+ strp = JS_EncodeString(scriptContext, strval); - - /* we will have at least one node here, in an ascii string */ - while ((*strp > '\0') && (*strp <= ' ')) strp ++; -@@ -1227,7 +1227,7 @@ - JSString *_tmpStr; - - _tmpStr = JS_ValueToString(cx, mainElement); -- strp = JS_GetStringBytes(_tmpStr); -+ strp = JS_EncodeString(scriptContext, _tmpStr); - printf ("sub element %d is \"%s\" \n",i,strp); - - if (JSVAL_IS_OBJECT(mainElement)) printf ("sub element %d is an OBJECT\n",i); -@@ -1329,7 +1329,7 @@ - JSString *strval; - - strval = JS_ValueToString(cx, mainElement); -- strp = JS_GetStringBytes(strval); -+ strp = JS_EncodeString(cx, strval); - - #ifdef SETFIELDVERBOSE - printf ("getJSMultiNumType, got string %s\n",strp); -@@ -1441,7 +1441,7 @@ - return; - } - strval = JS_ValueToString(cx, _v); -- valStr = JS_GetStringBytes(strval); -+ valStr = JS_EncodeString(cx, strval); - - /* printf ("new string %d is %s\n",i,valStr); */ - -diff -wbBur freewrl-1.22.10/src/lib/world_script/jsUtils.c freewrl-1.22.10.my/src/lib/world_script/jsUtils.c ---- freewrl-1.22.10/src/lib/world_script/jsUtils.c 2010-06-03 23:38:37.000000000 +0400 -+++ freewrl-1.22.10.my/src/lib/world_script/jsUtils.c 2011-07-04 20:21:44.000000000 +0400 -@@ -134,7 +134,7 @@ - nf = OBJECT_TO_JSVAL(me); - - #ifdef JSVRMLCLASSESVERBOSE -- printf ("parentField is %u \"%s\"\n", pf, JS_GetStringBytes(JSVAL_TO_STRING(pf))); -+ printf ("parentField is %u \"%s\"\n", pf, JS_EncodeString(cx, JSVAL_TO_STRING(pf))); - #endif - - if (!setSFNodeField (cx, par, pf, &nf)) { -@@ -197,7 +197,7 @@ - char *_id_c; - - _idStr = JS_ValueToString(cx, *newval); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - - oldS = (struct Uni_String *) *((uintptr_t *)Data); - -@@ -305,12 +305,12 @@ - - case FIELDTYPE_SFFloat: { - memcpy ((void *) &fl, Data, datalen); -- *newval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)fl)); -+ *newval = JS_NewJSVal(cx,(double)fl); - break; - } - case FIELDTYPE_SFTime: { - memcpy ((void *) &dl, Data, datalen); -- *newval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,dl)); -+ *newval = JS_NewJSVal(cx,dl); - break; - } - case FIELDTYPE_SFBool: -@@ -824,7 +824,7 @@ - struct X3D_Node *node; - - _idStr = JS_ValueToString(context, id); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(context, _idStr); - - #ifdef JSVRMLCLASSESVERBOSE - printf ("\ngetSFNodeField called on name %s object %u\n",_id_c, obj); -@@ -912,7 +912,7 @@ - - /* get the id field... */ - -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id)); - - #ifdef JSVRMLCLASSESVERBOSE - printf ("\nsetSFNodeField called on name %s object %u, jsval %u\n",_id_c, obj, *vp); -@@ -1131,10 +1131,10 @@ - char *_id_c = "(no value in string)"; - /* get the id field... */ - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id)); - /* printf ("hmmm...js_SetPropertyCheck called on string \"%s\" object %u, jsval %u\n",_id_c, obj, *vp); */ - } else if (JSVAL_IS_DOUBLE(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id)); - printf ("\n...js_SetPropertyCheck called on double %s object %u, jsval %u\n",_id_c, obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -@@ -1192,7 +1192,7 @@ - /* get the id field... */ - - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id)); - printf ("\n...js_GetPropertyDebug called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -@@ -1211,7 +1211,7 @@ - - /* get the id field... */ - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id)); - printf ("\n...js_SetPropertyDebug called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -@@ -1229,7 +1229,7 @@ - - /* get the id field... */ - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id)); - printf ("\n...js_SetPropertyDebug1 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -@@ -1247,7 +1247,7 @@ - - /* get the id field... */ - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id)); - printf ("...js_SetPropertyDebug2 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -@@ -1265,7 +1265,7 @@ - - /* get the id field... */ - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id)); - printf ("\n...js_SetPropertyDebug3 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -@@ -1283,7 +1283,7 @@ - - /* get the id field... */ - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id)); - printf ("\n...js_SetPropertyDebug4 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -@@ -1301,7 +1301,7 @@ - - /* get the id field... */ - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id)); - printf ("\n...js_SetPropertyDebug5 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -@@ -1319,7 +1319,7 @@ - - /* get the id field... */ - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id)); - printf ("\n...js_SetPropertyDebug6 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -@@ -1337,7 +1337,7 @@ - - /* get the id field... */ - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id)); - printf ("\n...js_SetPropertyDebug7 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -@@ -1355,7 +1355,7 @@ - - /* get the id field... */ - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id)); - printf ("\n...js_SetPropertyDebug8 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -@@ -1373,7 +1373,7 @@ - - /* get the id field... */ - if (JSVAL_IS_STRING(id)) { -- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); -+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id)); - printf ("\n...js_SetPropertyDebug9 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp); - } else if (JSVAL_IS_INT(id)) { - num = JSVAL_TO_INT(id); -diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLBrowser.c freewrl-1.22.10.my/src/lib/world_script/jsVRMLBrowser.c ---- freewrl-1.22.10/src/lib/world_script/jsVRMLBrowser.c 2010-08-02 23:55:57.000000000 +0400 -+++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLBrowser.c 2011-07-04 20:06:25.000000000 +0400 -@@ -336,7 +336,7 @@ - return JS_FALSE; - } - _str = JS_ValueToString(context, argv[0]); -- _costr = JS_GetStringBytes(_str); -+ _costr = JS_EncodeString(context, _str); - - /* sanitize string, for the EAI_RW call (see EAI_RW code) */ - tptr = _costr; -@@ -385,10 +385,10 @@ - return JS_FALSE; - } - _str[0] = JS_ValueToString(context, argv[0]); -- _costr[0] = JS_GetStringBytes(_str[0]); -+ _costr[0] = JS_EncodeString(context, _str[0]); - - _str[1] = JS_ValueToString(context, argv[1]); -- _costr[1] = JS_GetStringBytes(_str[1]); -+ _costr[1] = JS_EncodeString(context, _str[1]); - - /* we use the EAI code for this - so reformat this for the EAI format */ - { -@@ -575,7 +575,7 @@ - /* third parameter should be a string */ - if (JSVAL_IS_STRING(argv[2])) { - _str[1] = JSVAL_TO_STRING(argv[2]); -- fieldStr = JS_GetStringBytes(_str[1]); -+ fieldStr = JS_EncodeString(context, _str[1]); - #ifdef JSVERBOSE - printf ("field string is :%s:\n",fieldStr); - #endif -@@ -590,7 +590,7 @@ - - /* get the URL listing as a string */ - _str[0] = JS_ValueToString(context, argv[0]); -- _costr0 = JS_GetStringBytes(_str[0]); -+ _costr0 = JS_EncodeString(context, _str[0]); - - - #ifdef JSVERBOSE -@@ -690,7 +690,7 @@ - for (count=0; count < argc; count++) { - if (JSVAL_IS_STRING(argv[count])) { - _str = JSVAL_TO_STRING(argv[count]); -- _id_c = JS_GetStringBytes(_str); -+ _id_c = JS_EncodeString(context, _str); - #if defined(AQUA) || defined(_MSC_VER) - BrowserPrintConsoleMessage(_id_c); /* statusbar hud */ - consMsgCount = 0; /* reset the "Maximum" count */ -@@ -850,7 +850,7 @@ - - /* parameter should be a string */ - if (JSVAL_IS_STRING(argv[0])) { -- target = JS_GetStringBytes( JSVAL_TO_STRING(argv[0])); -+ target = JS_EncodeString(context, JSVAL_TO_STRING(argv[0])); - #ifdef JSVERBOSE - printf ("field string is %s\n",target); - #endif -@@ -930,7 +930,7 @@ - - /* parameters should be a string */ - if (JSVAL_IS_STRING(argv[0])) { -- targetDevice = JS_GetStringBytes( JSVAL_TO_STRING(argv[0])); -+ targetDevice = JS_EncodeString(cx, JSVAL_TO_STRING(argv[0])); - #ifdef JSVERBOSE - printf ("field string is %s\n",targetDevice); - #endif -@@ -939,7 +939,7 @@ - return -1; - } - if (JSVAL_IS_STRING(argv[1])) { -- targetController = JS_GetStringBytes( JSVAL_TO_STRING(argv[1])); -+ targetController = JS_EncodeString(cx, JSVAL_TO_STRING(argv[1])); - #ifdef JSVERBOSE - printf ("field string is %s\n",targetController); - #endif -diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.c ---- freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.c 2010-09-22 23:40:48.000000000 +0400 -+++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.c 2011-07-04 20:08:03.000000000 +0400 -@@ -935,7 +935,7 @@ - printf( "JS_NewDouble failed for %f in simplecopyelements.\n",dd); - return JS_FALSE; - } -- val = DOUBLE_TO_JSVAL(dp); -+ val = DOUBLE_TO_JSVAL(*dp); - - } - } -@@ -1108,7 +1108,7 @@ - - printf ("HAVE STRING HERE!\n"); - _str = JS_ValueToString(cx, id); -- asciiStr = JS_GetStringBytes(_str); -+ asciiStr = JS_EncodeString(context, _str); - printf ("we have as a parameter :%s:\n",asciiStr); - #endif - -@@ -1185,7 +1185,7 @@ - if (_tmpStr==NULL) { - _tmp_valStr = "NULL"; - } else { -- _tmp_valStr = JS_GetStringBytes(_tmpStr); -+ _tmp_valStr = JS_EncodeString(cx, _tmpStr); - } - } - -@@ -1281,7 +1281,7 @@ - #endif - - str = JS_ValueToString(cx, id); -- p = JS_GetStringBytes(str); -+ p = JS_EncodeString(cx, str); - #ifdef JSVRMLCLASSESVERBOSE - printf("\tid string %s\n ",p); - #endif -@@ -1368,12 +1368,12 @@ - char * _c; - printf ("doMFSetProperty, for object %u, vp %u\n", obj,*vp); - _str = JS_ValueToString(cx, id); -- _c = JS_GetStringBytes(_str); -+ _c = JS_EncodeString(cx, _str); - printf ("id is %s\n",_c); - - _sstr = JS_ValueToString(cx, *vp); - printf ("looking up value for %d %x object %p\n",*vp,*vp,obj); -- _cc = JS_GetStringBytes(_sstr); -+ _cc = JS_EncodeString(cx, _sstr); - printf("\tdoMFSetProperty:%d: obj = %p, id = %s, vp = %s\n",type, - obj, _c, _cc); - if (JSVAL_IS_OBJECT(*vp)) { printf ("doMFSet, vp is an OBJECT\n"); } -@@ -1397,7 +1397,7 @@ - - if (!JS_ValueToInt32(cx, *vp, &i)) { - _sstr = JS_ValueToString(cx, *vp); -- _cc = JS_GetStringBytes(_sstr); -+ _cc = JS_EncodeString(cx, _sstr); - printf ("can not convert %s to an integer in doMFAddProperty for type %d\n",_cc,type); - return JS_FALSE; - } -@@ -1408,7 +1408,7 @@ - #ifdef JSVRMLCLASSESVERBOSE - printf ("doMFSetProperty - ensure that this is a DOUBLE "); - _sstr = JS_ValueToString(cx, *vp); -- _cc = JS_GetStringBytes(_sstr); -+ _cc = JS_EncodeString(cx, _sstr); - printf ("value is %s \n",_cc); - #endif - -@@ -1420,7 +1420,7 @@ - printf( "JS_NewDouble failed for %f in simplecopyelements.\n",dd); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - - } - } -@@ -1511,7 +1511,7 @@ - nf = OBJECT_TO_JSVAL(me); - - #ifdef JSVRMLCLASSESVERBOSE -- printf ("parentField is %u \"%s\"\n", pf, JS_GetStringBytes(JSVAL_TO_STRING(pf))); -+ printf ("parentField is %u \"%s\"\n", pf, JS_EncodeString(cx, JSVAL_TO_STRING(pf))); - #endif - - if (!setSFNodeField (cx, par, pf, &nf)) { -@@ -1535,7 +1535,7 @@ - unsigned int i, j = 0; - - _str = JS_ValueToString(cx, *vp); -- _buff = JS_GetStringBytes(_str); -+ _buff = JS_EncodeString(cx, _str); - _buff_len = strlen(_buff) + 1; - - #ifdef JSVRMLCLASSESVERBOSE -@@ -1719,14 +1719,14 @@ - size_t len = 0; - - _idStr = JS_ValueToString(context, id); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(context, _idStr); - - /* "register" this ECMA value for routing changed flag stuff */ - setInECMATable(context, _id_c); - - if (JSVAL_IS_STRING(*vp)) { - _vpStr = JS_ValueToString(context, *vp); -- _vp_c = JS_GetStringBytes(_vpStr); -+ _vp_c = JS_EncodeString(context, _vpStr); - - len = strlen(_vp_c); - -@@ -1752,7 +1752,7 @@ - } else { - #ifdef JSVRMLCLASSESVERBOSE - _vpStr = JS_ValueToString(context, *vp); -- _vp_c = JS_GetStringBytes(_vpStr); -+ _vp_c = JS_EncodeString(cx, _vpStr); - printf("setECMANative: obj = %p, id = \"%s\", vp = %s\n", - obj, _id_c, _vp_c); - #endif -@@ -1770,9 +1770,9 @@ - JSString *_idStr, *_vpStr; - char *_id_c, *_vp_c; - _idStr = JS_ValueToString(cx, id); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - _vpStr = JS_ValueToString(cx, *vp); -- _vp_c = JS_GetStringBytes(_vpStr); -+ _vp_c = JS_EncodeString(cx, _vpStr); - printf("getAssignProperty: obj = %p, id = \"%s\", vp = %s\n", - obj, _id_c, _vp_c); - printf ("what is vp? \n"); -@@ -1803,7 +1803,7 @@ - - if (JSVAL_IS_STRING(id)) { - _str = JSVAL_TO_STRING(id); -- _id_c = JS_GetStringBytes(_str); -+ _id_c = JS_EncodeString(cx, _str); - if (!JS_ConvertValue(cx, *vp, JSTYPE_OBJECT, &newVal)) { - printf( "JS_ConvertValue failed in setAssignProperty.\n"); - return JS_FALSE; -@@ -1834,9 +1834,9 @@ - if (JSVAL_IS_DOUBLE(id)) printf ("id is an DOUBLE\n"); - if (JSVAL_IS_INT(id)) printf ("id is an INT\n"); - -- printf ("id is %s\n",JS_GetStringBytes(JS_ValueToString(cx,id))); -- printf ("initVal is %s\n",JS_GetStringBytes(JS_ValueToString(cx,initVal))); -- printf ("newVal is %s\n",JS_GetStringBytes(JS_ValueToString(cx,newVal))); -+ printf ("id is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,id))); -+ printf ("initVal is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,initVal))); -+ printf ("newVal is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,newVal))); - - #endif - -@@ -1859,7 +1859,7 @@ - } else { - #ifdef JSVRMLCLASSESVERBOSE - _str = JS_ValueToString(cx, id); -- _id_c = JS_GetStringBytes(_str); -+ _id_c = JS_EncodeString(cx, _str); - printf("setAssignProperty: obj = %p, id = \"%s\"\n", - obj, _id_c); - #endif -diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.h freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.h ---- freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.h 2010-10-13 23:45:26.000000000 +0400 -+++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.h 2011-07-04 20:24:53.000000000 +0400 -@@ -30,6 +30,21 @@ - #ifndef __FREEWRL_JS_VRML_CLASSES_H__ - #define __FREEWRL_JS_VRML_CLASSES_H__ - -+static inline jsval JS_NewJSVal(JSContext *cx, jsdouble d) -+{ -+ jsval ret; -+ JS_NewNumberValue(cx, d, &ret); -+ return ret; -+} -+ -+static inline jsdouble * JS_NewDouble(JSContext *cx, jsdouble d) -+{ -+ static jsdouble ret; -+ jsval rv; -+ JS_NewNumberValue(cx, d, &rv); -+ ret = JSVAL_TO_DOUBLE(rv); -+ return &ret; -+} - - #ifndef UNUSED - #define UNUSED(v) ((void) v) -@@ -80,14 +95,14 @@ - - - #define SET_JS_TICKTIME_FALSE(possibleRetVal) { jsval zimbo; \ -- zimbo = DOUBLE_TO_JSVAL(JS_NewDouble(cx, TickTime)); \ -+ zimbo = JS_NewJSVal(cx, TickTime); \ - if (!JS_DefineProperty(cx,obj, "__eventInTickTime", zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \ - printf( "JS_DefineProperty failed for \"__eventInTickTime\" at %s:%d.\n",__FILE__,__LINE__); \ - return possibleRetVal; \ - }} - - #define SET_JS_TICKTIME() { jsval zimbo; \ -- zimbo = DOUBLE_TO_JSVAL(JS_NewDouble(cx, TickTime)); \ -+ zimbo = JS_NewJSVal(cx, TickTime); \ - if (!JS_DefineProperty(cx,obj, "__eventInTickTime", zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \ - printf( "JS_DefineProperty failed for \"__eventInTickTime\" at %s:%d.\n",__FILE__,__LINE__); \ - return FALSE; \ -diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRML_MFClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRML_MFClasses.c ---- freewrl-1.22.10/src/lib/world_script/jsVRML_MFClasses.c 2010-09-22 23:40:48.000000000 +0400 -+++ freewrl-1.22.10.my/src/lib/world_script/jsVRML_MFClasses.c 2011-07-04 20:08:44.000000000 +0400 -@@ -596,7 +596,7 @@ - return; - } - -- val = DOUBLE_TO_JSVAL(dp); -+ val = DOUBLE_TO_JSVAL(*dp); - - if (!JS_SetElement(cx, obj, (jsint) i, &val)) { - printf( "JS_DefineElement failed for arg %u in VrmlMatrixSetTransform.\n", i); -@@ -1212,7 +1212,7 @@ - /* - if (JSVAL_IS_STRING(id)==TRUE) { - printf(" is a common string :%s:\n", -- JS_GetStringBytes(JS_ValueToString(cx, id))); -+ JS_EncodeString(cx, JS_ValueToString(cx, id))); - } - if (JSVAL_IS_OBJECT(id)==TRUE) { - printf (" parameter is an object\n"); -@@ -1231,7 +1231,7 @@ - _index = JSVAL_TO_INT(id); - - if (_index >= _length) { -- *vp = DOUBLE_TO_JSVAL(&zerojsdouble); -+ *vp = DOUBLE_TO_JSVAL(zerojsdouble); - if (!JS_DefineElement(cx, obj, (jsint) _index, *vp, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_CHECK, JSPROP_ENUMERATE)) { - printf( "JS_DefineElement failed in VrmlMatrixGetProperty.\n"); - return JS_FALSE; -@@ -1331,7 +1331,7 @@ - printf("MFStringAddProperty: vp = %p\n", obj); - if (JSVAL_IS_STRING(*vp)==TRUE) { - printf(" is a common string :%s:\n", -- JS_GetStringBytes(JS_ValueToString(cx, *vp))); -+ JS_EncodeString(cx, JS_ValueToString(cx, *vp))); - } - if (JSVAL_IS_OBJECT(*vp)==TRUE) { - printf (" parameter is an object\n"); -@@ -1345,7 +1345,7 @@ - printf("MFStringAddProperty: id = %p\n", obj); - if (JSVAL_IS_STRING(id)==TRUE) { - printf(" is a common string :%s:\n", -- JS_GetStringBytes(JS_ValueToString(cx, id))); -+ JS_EncodeString(cx, JS_ValueToString(cx, id))); - } - if (JSVAL_IS_OBJECT(id)==TRUE) { - printf (" parameter is an object\n"); -@@ -1494,7 +1494,7 @@ - if (JSVAL_IS_STRING(argv[i])==TRUE) { - printf (" Common String, is"); - _str = JS_ValueToString(cx, argv[i]); -- printf (JS_GetStringBytes(_str)); -+ printf (JS_EncodeString(cx, _str)); - printf (".."); - - } -diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRML_SFClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRML_SFClasses.c ---- freewrl-1.22.10/src/lib/world_script/jsVRML_SFClasses.c 2010-09-25 00:22:05.000000000 +0400 -+++ freewrl-1.22.10.my/src/lib/world_script/jsVRML_SFClasses.c 2011-07-04 20:09:01.000000000 +0400 -@@ -161,7 +161,7 @@ - printf( "JS_NewDouble failed for %f in SFColorGetHSV.\n", xp[i]); - return JS_FALSE; - } -- _v = DOUBLE_TO_JSVAL(dp); -+ _v = DOUBLE_TO_JSVAL(*dp); - JS_SetElement(cx, result, (jsint)i, &_v); - } - -@@ -336,7 +336,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 1: - d = (ptr->v).c[1]; -@@ -346,7 +346,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 2: - d = (ptr->v).c[2]; -@@ -356,7 +356,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - } - } -@@ -387,13 +387,13 @@ - if (JSVAL_IS_INT(id)) { - switch (JSVAL_TO_INT(id)) { - case 0: -- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(_val); -+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(_val); - break; - case 1: -- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(_val); -+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(_val); - break; - case 2: -- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(_val); -+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(_val); - break; - - } -@@ -422,18 +422,18 @@ - *rval = OBJECT_TO_JSVAL(_arrayObj); - - /* construct new double before conversion? */ -- _v = DOUBLE_TO_JSVAL(&hue); -+ _v = DOUBLE_TO_JSVAL(hue); - if (!JS_SetElement(cx, _arrayObj, 0, &_v)) { - printf( "JS_SetElement failed for hue in SFColorRGBAGetHSV.\n"); - return JS_FALSE; - } -- _v = DOUBLE_TO_JSVAL(&saturation); -+ _v = DOUBLE_TO_JSVAL(saturation); - if (!JS_SetElement(cx, _arrayObj, 1, &_v)) { - printf( "JS_SetElement failed for saturation in SFColorRGBAGetHSV.\n"); - return JS_FALSE; - } - -- _v = DOUBLE_TO_JSVAL(&value); -+ _v = DOUBLE_TO_JSVAL(value); - if (!JS_SetElement(cx, _arrayObj, 2, &_v)) { - printf( "JS_SetElement failed for value in SFColorRGBAGetHSV.\n"); - return JS_FALSE; -@@ -601,7 +601,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 1: - d = (ptr->v).c[1]; -@@ -611,7 +611,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 2: - d = (ptr->v).c[2]; -@@ -621,7 +621,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 3: - d = (ptr->v).c[3]; -@@ -631,7 +631,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - } - } -@@ -662,16 +662,16 @@ - if (JSVAL_IS_INT(id)) { - switch (JSVAL_TO_INT(id)) { - case 0: -- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(_val); -+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(_val); - break; - case 1: -- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(_val); -+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(_val); - break; - case 2: -- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(_val); -+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(_val); - break; - case 3: -- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(_val); -+ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(_val); - break; - - } -@@ -983,7 +983,7 @@ - } else if (argc == 1) { - /* is this a string, or a number indicating a node? */ - myStr = JS_ValueToString(cx, argv[0]); -- cString = JS_GetStringBytes(myStr); -+ cString = JS_EncodeString(cx, myStr); - #ifdef JSVRMLCLASSESVERBOSE - printf ("SFNodeConstr, argc =1l string %s\n",cString); - #endif -@@ -1067,13 +1067,13 @@ - char *_id_c; - - _idStr = JS_ValueToString(cx, argv[0]); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - /* printf ("first string :%s:\n",_id_c); */ - - cString = STRDUP(_id_c); - - _idStr = JS_ValueToString(cx, argv[1]); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - /* printf ("second string :%s:\n",_id_c); */ - - if (sscanf (_id_c,"%p",&newHandle) != 1) { -@@ -1190,7 +1190,7 @@ - jsval rval; - - _idStr = JS_ValueToString(cx, id); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - - #ifdef JSVRMLCLASSESVERBOSE - printf ("start of SFNodeGetProperty... id is %s\n",_id_c); -@@ -1264,10 +1264,10 @@ - - - _idStr = JS_ValueToString(cx, id); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - - _valStr = JS_ValueToString(cx, *vp); -- _val_c = JS_GetStringBytes(_valStr); -+ _val_c = JS_EncodeString(cx, _valStr); - - #ifdef JSVRMLCLASSESVERBOSE - printf("SFNodeSetProperty: obj = %p, id = %s, vp = %s\n", -@@ -1904,7 +1904,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 1: - d = (ptr->v).c[1]; -@@ -1914,7 +1914,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 2: - d = (ptr->v).c[2]; -@@ -1924,7 +1924,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 3: - d = (ptr->v).c[3]; -@@ -1934,7 +1934,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - } - } -@@ -1969,16 +1969,16 @@ - if (JSVAL_IS_INT(id)) { - switch (JSVAL_TO_INT(id)) { - case 0: -- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 1: -- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 2: -- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 3: -- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv); - break; - } - } -@@ -2051,7 +2051,7 @@ - * it get created in javascript? */ - if (param_isString) { - _str = JS_ValueToString(cx, *argv); -- charString = JS_GetStringBytes(_str); -+ charString = JS_EncodeString(cx, _str); - - if (sscanf(charString, "%lf %lf", - &(pars[0]), &(pars[1])) != 2) { -@@ -2143,7 +2143,7 @@ - printf( "JS_NewDouble failed for %f in SFVec2f.\n",d); - return JS_FALSE; - } -- *rval = DOUBLE_TO_JSVAL(dp); -+ *rval = DOUBLE_TO_JSVAL(*dp); - } - - #ifdef JSVRMLCLASSESVERBOSE -@@ -2332,7 +2332,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 1: - d = (ptr->v).c[1]; -@@ -2342,7 +2342,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - } - } -@@ -2373,13 +2373,13 @@ - if (JSVAL_IS_INT(id)) { - switch (JSVAL_TO_INT(id)) { - case 0: -- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 1: -- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 2: -- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv); - break; - } - } -@@ -2458,7 +2458,7 @@ - * it get created in javascript? */ - if (param_isString) { - _str = JS_ValueToString(cx, *argv); -- charString = JS_GetStringBytes(_str); -+ charString = JS_EncodeString(cx, _str); - - if (sscanf(charString, "%lf %lf %lf", - &(pars[0]), &(pars[1]), &(pars[2])) != 3) { -@@ -2580,7 +2580,7 @@ - printf( "JS_NewDouble failed for %f in SFVec3f.\n",d); - return JS_FALSE; - } -- *rval = DOUBLE_TO_JSVAL(dp); -+ *rval = DOUBLE_TO_JSVAL(*dp); - } - #ifdef JSVRMLCLASSESVERBOSE - if (retSFVec3f){ -@@ -2792,9 +2792,9 @@ - char *_id_c; - - _idStr = JS_ValueToString(cx, id); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - _idStr = JS_ValueToString(cx, *vp); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - - #endif - -@@ -2813,7 +2813,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 1: - d = (ptr->v).c[1]; -@@ -2823,7 +2823,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 2: - d = (ptr->v).c[2]; -@@ -2833,7 +2833,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - } - } else { -@@ -2869,13 +2869,13 @@ - if (JSVAL_IS_INT(id)) { - switch (JSVAL_TO_INT(id)) { - case 0: -- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 1: -- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 2: -- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv); - break; - } - } -@@ -2949,7 +2949,7 @@ - * it get created in javascript? */ - if (param_isString) { - _str = JS_ValueToString(cx, *argv); -- charString = JS_GetStringBytes(_str); -+ charString = JS_EncodeString(cx, _str); - - if (sscanf(charString, "%lf %lf %lf", - &(pars[0]), &(pars[1]), &(pars[2])) != 3) { -@@ -3071,7 +3071,7 @@ - printf( "JS_NewDouble failed for %f in SFVec3d.\n",d); - return JS_FALSE; - } -- *rval = DOUBLE_TO_JSVAL(dp); -+ *rval = DOUBLE_TO_JSVAL(*dp); - } - #ifdef JSVRMLCLASSESVERBOSE - if (retSFVec3d){ -@@ -3282,9 +3282,9 @@ - char *_id_c; - - _idStr = JS_ValueToString(cx, id); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - _idStr = JS_ValueToString(cx, *vp); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - - #endif - -@@ -3303,7 +3303,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 1: - d = (ptr->v).c[1]; -@@ -3313,7 +3313,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 2: - d = (ptr->v).c[2]; -@@ -3323,7 +3323,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - } - } else { -@@ -3359,13 +3359,13 @@ - if (JSVAL_IS_INT(id)) { - switch (JSVAL_TO_INT(id)) { - case 0: -- (ptr->v).c[0] = *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[0] = JSVAL_TO_DOUBLE(myv); - break; - case 1: -- (ptr->v).c[1] = *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[1] = JSVAL_TO_DOUBLE(myv); - break; - case 2: -- (ptr->v).c[2] = *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[2] = JSVAL_TO_DOUBLE(myv); - break; - } - } -@@ -3513,9 +3513,9 @@ - char *_id_c; - - _idStr = JS_ValueToString(cx, id); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - _idStr = JS_ValueToString(cx, *vp); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - - #endif - -@@ -3534,7 +3534,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 1: - d = (ptr->v).c[1]; -@@ -3544,7 +3544,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 2: - d = (ptr->v).c[2]; -@@ -3554,7 +3554,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 3: - d = (ptr->v).c[3]; -@@ -3564,7 +3564,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - } - } else { -@@ -3600,16 +3600,16 @@ - if (JSVAL_IS_INT(id)) { - switch (JSVAL_TO_INT(id)) { - case 0: -- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 1: -- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 2: -- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 3: -- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv); - break; - } - } -@@ -3758,9 +3758,9 @@ - char *_id_c; - - _idStr = JS_ValueToString(cx, id); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - _idStr = JS_ValueToString(cx, *vp); -- _id_c = JS_GetStringBytes(_idStr); -+ _id_c = JS_EncodeString(cx, _idStr); - - #endif - -@@ -3779,7 +3779,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 1: - d = (ptr->v).c[1]; -@@ -3789,7 +3789,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 2: - d = (ptr->v).c[2]; -@@ -3799,7 +3799,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - case 3: - d = (ptr->v).c[3]; -@@ -3809,7 +3809,7 @@ - d); - return JS_FALSE; - } -- *vp = DOUBLE_TO_JSVAL(dp); -+ *vp = DOUBLE_TO_JSVAL(*dp); - break; - } - } else { -@@ -3845,16 +3845,16 @@ - if (JSVAL_IS_INT(id)) { - switch (JSVAL_TO_INT(id)) { - case 0: -- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 1: -- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 2: -- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv); - break; - case 3: -- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv); -+ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv); - break; - } - } -diff -wbBur freewrl-1.22.10/src/lib/x3d_parser/X3DParser.c freewrl-1.22.10.my/src/lib/x3d_parser/X3DParser.c ---- freewrl-1.22.10/src/lib/x3d_parser/X3DParser.c 2010-09-22 20:54:59.000000000 +0400 -+++ freewrl-1.22.10.my/src/lib/x3d_parser/X3DParser.c 2011-07-04 01:19:07.000000000 +0400 -@@ -54,7 +54,7 @@ - #include "X3DProtoScript.h" - - #if HAVE_EXPAT_H --# include <expat.h> -+# include </usr/include/expat.h> - #endif - //#define X3DPARSERVERBOSE 1 - diff --git a/community-testing/gpac/PKGBUILD b/community-testing/gpac/PKGBUILD deleted file mode 100644 index 69717e2bc..000000000 --- a/community-testing/gpac/PKGBUILD +++ /dev/null @@ -1,44 +0,0 @@ -# Maintainer: Brad Fanella <bradfanella@archlinux.us -# Contributor: Allan McRae <allan@archlinux.org> -# Contributor: niQo -# Contributor: Daniel J Griffiths <ghost1227@archlinux.us> - -pkgname=gpac -pkgver=0.4.5 -pkgrel=7 -pkgdesc="A multimedia framework based on the MPEG-4 Systems standard" -arch=('i686' 'x86_64') -url="http://gpac.sourceforge.net" -depends=('libxml2' 'wxgtk' 'alsa-lib' 'sdl' 'js' 'libmad' \ - 'faad2' 'xvidcore' 'ffmpeg' 'freeglut') -license=('LGPL') -options=('!makeflags') # Multiple build jobs aren't handled correctly -source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz - libpng14-infopp-null.patch) -md5sums=('755e8c438a48ebdb13525dd491f5b0d1' - '14d6483c9eb84434aea68596f243e0ca') - -build() { - cd ${srcdir}/${pkgname} - chmod +x configure - sed -i 's|--warn-common||' configure - sed -i 's#osmozilla##g' applications/Makefile - sed -i 's#"$(prefix)#"$(DESTDIR)$(prefix)#' applications/osmo4_wx/Makefile - sed -i 's#ldconfig || true##g' Makefile - - #FS#14506 - sed -i 's#lib64#lib#g' configure - patch -Np1 -i ${srcdir}/libpng14-infopp-null.patch - - # Was getting "symbol lookup error: /usr/lib/gpac/gm_x11_out.so: undefined - # symbol: XvQueryExtension" with our LDFLAGS :\ - unset LDFLAGS - - ./configure --prefix=/usr --mandir=/usr/share/man --use-js=no - make -} - -package() { - cd ${srcdir}/${pkgname} - make DESTDIR=${pkgdir} install install-lib -} diff --git a/community-testing/gpac/libpng14-infopp-null.patch b/community-testing/gpac/libpng14-infopp-null.patch deleted file mode 100644 index b02456557..000000000 --- a/community-testing/gpac/libpng14-infopp-null.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -upr gpac.orig/src/media_tools/img.c gpac/src/media_tools/img.c ---- gpac.orig/src/media_tools/img.c 2010-01-24 19:03:28.000000000 +0200 -+++ gpac/src/media_tools/img.c 2010-01-24 19:04:07.000000000 +0200 -@@ -551,7 +551,7 @@ GF_Err gf_img_png_enc(char *data, u32 wi - /* Allocate/initialize the image information data. REQUIRED */ - info_ptr = png_create_info_struct(png_ptr); - if (info_ptr == NULL) { -- png_destroy_write_struct(&png_ptr, png_infopp_NULL); -+ png_destroy_write_struct(&png_ptr, NULL); - return GF_IO_ERR; - } - diff --git a/community-testing/mediatomb/PKGBUILD b/community-testing/mediatomb/PKGBUILD deleted file mode 100644 index c8850e23c..000000000 --- a/community-testing/mediatomb/PKGBUILD +++ /dev/null @@ -1,49 +0,0 @@ -# $Id: PKGBUILD 51077 2011-07-05 06:51:52Z jconder $ -# Contributor: William Rea <sillywilly@gmail.com> -# Contributor: Nikhil Bysani <nikron@gmail.com> -# Contributor: Mika Hynnä <igheax@gmail.com> -# Maintainer: Jonathan Conder <jonno.conder@gmail.com> - -pkgname=mediatomb -pkgver=0.12.1 -pkgrel=5 -pkgdesc="Free UPnP/DLNA media server" -arch=('i686' 'x86_64') -url="http://mediatomb.cc/" -license=('GPL') -depends=('curl' 'ffmpegthumbnailer' 'js' 'libexif' 'libmp4v2' 'sqlite3' 'taglib') -backup=('etc/conf.d/mediatomb') -install=mediatomb.install -source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz" - 'mediatomb.rc' - 'mediatomb.conf' - 'gcc46.patch' - 'tonewjs.patch') -md5sums=('e927dd5dc52d3cfcebd8ca1af6f0d3c2' - 'aa1191ec508d8bd4b3b9a5fe48efc079' - 'bec297e4178332a26b42bbde873b94cd' - '0ae34c0d73b76e3d215887834c3c08cf' - 'd9e02a9956eecf5ff645bddf6dac0331') - -build() { - cd "$srcdir/$pkgname-$pkgver" - patch -Np1 -i $srcdir/gcc46.patch - patch -Np1 -i $srcdir/tonewjs.patch - - ./configure --prefix=/usr \ - --disable-mysql \ - --enable-libmagic \ - --enable-libjs \ - --enable-ffmpeg - make -} - -package() { - cd "$srcdir/$pkgname-$pkgver" - - make DESTDIR="$pkgdir/" install - - install -D -m0755 "$srcdir/mediatomb.rc" "$pkgdir/etc/rc.d/mediatomb" - install -D -m0755 "$srcdir/mediatomb.conf" "$pkgdir/etc/conf.d/mediatomb" - install -d "$pkgdir/var/lib/mediatomb" -} diff --git a/community-testing/mediatomb/gcc46.patch b/community-testing/mediatomb/gcc46.patch deleted file mode 100644 index 0f4fe490f..000000000 --- a/community-testing/mediatomb/gcc46.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/src/zmm/object.h -+++ b/src/zmm/object.h -@@ -33,6 +33,7 @@ - #define __ZMM_OBJECT_H__ - - #include <new> // for size_t -+#include <cstddef> - #include "atomic.h" - - namespace zmm diff --git a/community-testing/mediatomb/mediatomb.conf b/community-testing/mediatomb/mediatomb.conf deleted file mode 100644 index 798018d2a..000000000 --- a/community-testing/mediatomb/mediatomb.conf +++ /dev/null @@ -1,23 +0,0 @@ -# -# Parameters to be passed to mediatomb -# - -# Port to listen on -MT_PORT='50500' - -# User and group to run as -MT_USER='nobody' -MT_GROUP='nobody' - -# Location of the PID file -MT_PIDFILE='/var/run/mediatomb.pid' - -# Location of the log file -MT_LOGFILE='/var/log/mediatomb.log' - -# Location of the config file/database -MT_HOME='/var/lib/mediatomb' -MT_CFGDIR='.mediatomb' - -# User defined command line options -MT_OPTIONS='' diff --git a/community-testing/mediatomb/mediatomb.install b/community-testing/mediatomb/mediatomb.install deleted file mode 100644 index 56f6ef92c..000000000 --- a/community-testing/mediatomb/mediatomb.install +++ /dev/null @@ -1,9 +0,0 @@ -post_install() { - echo 'Warning: the MediaTomb web interface exposes your filesystem to the network' - echo 'For maximum security, set <ui enabled="no"> in your MediaTomb config file' -} - -post_upgrade() { - # TODO: disable next update - post_install -} diff --git a/community-testing/mediatomb/mediatomb.rc b/community-testing/mediatomb/mediatomb.rc deleted file mode 100644 index 7b93012cd..000000000 --- a/community-testing/mediatomb/mediatomb.rc +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -. /etc/rc.conf -. /etc/rc.d/functions -. /etc/conf.d/mediatomb - -MT_OPTIONS="-p $MT_PORT -u $MT_USER -g $MT_GROUP -P $MT_PIDFILE \ - -l $MT_LOGFILE -m $MT_HOME -f $MT_CFGDIR $MT_OPTIONS" - -case "$1" in - start) - stat_busy "Starting Mediatomb UPnP Media Server" - - chown "$MT_USER:$MT_GROUP" "$MT_HOME" - - if ! pidof -o %PPID /usr/bin/mediatomb &> /dev/null; then - rm -f "$MT_PIDFILE" - fi - - PID="$(cat "$MT_PIDFILE" 2> /dev/null)" - - if [ -z "$PID" ] && /usr/bin/mediatomb -d $MT_OPTIONS; then - add_daemon mediatomb - stat_done - else - stat_fail - fi - ;; - - stop) - stat_busy "Stopping Mediatomb UPnP Media Server" - - PID="$(cat "$MT_PIDFILE" 2> /dev/null)" - - if [ -n "$PID" ] && kill "$PID" &> /dev/null; then - rm -f "$MT_PIDFILE" - rm_daemon mediatomb - stat_done - else - stat_fail - fi - ;; - - restart) - "$0" stop - sleep 1 - "$0" start - ;; - - *) - echo "usage: $0 {start|stop|restart}" - ;; -esac -exit 0 diff --git a/community-testing/mediatomb/tonewjs.patch b/community-testing/mediatomb/tonewjs.patch deleted file mode 100644 index 115968530..000000000 --- a/community-testing/mediatomb/tonewjs.patch +++ /dev/null @@ -1,564 +0,0 @@ -diff -up mediatomb-0.12.1-back/build/Makefile.in.tonewjs mediatomb-0.12.1-back/build/Makefile.in ---- mediatomb-0.12.1-back/build/Makefile.in.tonewjs 2010-04-08 00:40:15.000000000 +0200 -+++ mediatomb-0.12.1-back/build/Makefile.in 2011-04-19 17:17:01.343509944 +0200 -@@ -257,7 +257,7 @@ CURL_LIBS = @CURL_LIBS@ - CXX = @CXX@ - CXXCPP = @CXXCPP@ - CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ -+CXXFLAGS = -fpermissive @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DB_AUTOCREATE_OPTION_ENABLED = @DB_AUTOCREATE_OPTION_ENABLED@ - DB_AUTOCREATE_OPTION_REQUESTED = @DB_AUTOCREATE_OPTION_REQUESTED@ -diff -up mediatomb-0.12.1-back/src/scripting/import_script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/import_script.cc ---- mediatomb-0.12.1-back/src/scripting/import_script.cc.tonewjs 2011-04-18 13:10:48.000000000 +0200 -+++ mediatomb-0.12.1-back/src/scripting/import_script.cc 2011-04-18 13:29:36.000000000 +0200 -@@ -53,8 +53,8 @@ ImportScript::ImportScript(Ref<Runtime> - try - { - load(scriptPath); -- root = JS_NewScriptObject(cx, script); -- JS_AddNamedRoot(cx, &root, "ImportScript"); -+ root = JS_NewObject(cx, NULL, script, NULL); -+ JS_AddNamedObjectRoot(cx, &root, "ImportScript"); - } - catch (Exception ex) - { -@@ -117,7 +117,7 @@ ImportScript::~ImportScript() - #endif - - if (root) -- JS_RemoveRoot(cx, &root); -+ JS_RemoveObjectRoot(cx, &root); - - #ifdef JS_THREADSAFE - JS_EndRequest(cx); -diff -up mediatomb-0.12.1-back/src/scripting/js_functions.cc.tonewjs mediatomb-0.12.1-back/src/scripting/js_functions.cc ---- mediatomb-0.12.1-back/src/scripting/js_functions.cc.tonewjs 2011-04-18 13:29:55.000000000 +0200 -+++ mediatomb-0.12.1-back/src/scripting/js_functions.cc 2011-04-19 16:48:04.009229611 +0200 -@@ -49,7 +49,7 @@ using namespace zmm; - extern "C" { - - JSBool --js_print(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) -+js_print(JSContext *cx, uintN argc, jsval *argv) - { - uintN i; - JSString *str; -@@ -60,19 +60,21 @@ js_print(JSContext *cx, JSObject *obj, u - if (!str) - return JS_TRUE; - argv[i] = STRING_TO_JSVAL(str); -- log_js("%s\n", JS_GetStringBytes(str)); -+ char * log_str = JS_EncodeString(cx, str); -+ log_js("%s\n", log_str); -+ JS_free(cx, log_str); - } - return JS_TRUE; - } - - JSBool --js_copyObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) -+js_copyObject(JSContext *cx, uintN argc, jsval *argv) - { - jsval arg; - JSObject *js_cds_obj; - JSObject *js_cds_clone_obj; - -- Script *self = (Script *)JS_GetPrivate(cx, obj); -+ Script *self = (Script *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv)); - - try - { -@@ -91,7 +93,7 @@ js_copyObject(JSContext *cx, JSObject *o - - self->cdsObject2jsObject(cds_obj, js_cds_clone_obj); - -- *rval = OBJECT_TO_JSVAL(js_cds_clone_obj); -+ JS_SET_RVAL(cx, argv, OBJECT_TO_JSVAL(js_cds_clone_obj)); - - return JS_TRUE; - -@@ -110,7 +112,7 @@ js_copyObject(JSContext *cx, JSObject *o - } - - JSBool --js_addCdsObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) -+js_addCdsObject(JSContext *cx, uintN argc, jsval *argv) - { - try - { -@@ -126,7 +128,7 @@ js_addCdsObject(JSContext *cx, JSObject - Ref<StringConverter> p2i; - Ref<StringConverter> i2i; - -- Script *self = (Script *)JS_GetPrivate(cx, obj); -+ Script *self = (Script *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv)); - - if (self == NULL) - { -@@ -156,20 +158,20 @@ js_addCdsObject(JSContext *cx, JSObject - if (!str) - path = _("/"); - else -- path = JS_GetStringBytes(str); -+ path = JS_EncodeString(cx, str); - - JSString *cont = JS_ValueToString(cx, argv[2]); - if (cont) - { -- containerclass = JS_GetStringBytes(cont); -+ containerclass = JS_EncodeString(cx, cont); - if (!string_ok(containerclass) || containerclass == "undefined") - containerclass = nil; - } - - if (self->whoami() == S_PLAYLIST) -- js_orig_obj = self->getObjectProperty(obj, _("playlist")); -+ js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("playlist")); - else if (self->whoami() == S_IMPORT) -- js_orig_obj = self->getObjectProperty(obj, _("orig")); -+ js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("orig")); - - if (js_orig_obj == NULL) - { -@@ -285,8 +287,7 @@ js_addCdsObject(JSContext *cx, JSObject - JSString *str2 = JS_NewStringCopyN(cx, tmp.c_str(), tmp.length()); - if (!str2) - return JS_TRUE; -- *rval = STRING_TO_JSVAL(str2); -- -+ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(str2)); - return JS_TRUE; - } - catch (ServerShutdownException se) -@@ -302,7 +303,7 @@ js_addCdsObject(JSContext *cx, JSObject - return JS_TRUE; - } - --static JSBool convert_charset_generic(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval, charset_convert_t chr) -+static JSBool convert_charset_generic(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, charset_convert_t chr) - { - try - { -@@ -321,7 +322,7 @@ static JSBool convert_charset_generic(JS - { - str = JS_ValueToString(cx, argv[0]); - if (str) -- result = JS_GetStringBytes(str); -+ result = JS_EncodeString(cx, str); - } - - if (result != nil) -@@ -330,7 +331,7 @@ static JSBool convert_charset_generic(JS - JSString *str2 = JS_NewStringCopyN(cx, result.c_str(), result.length()); - if (!str2) - return JS_TRUE; -- *rval = STRING_TO_JSVAL(str2); -+ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(str2)); - } - } - catch (ServerShutdownException se) -@@ -347,24 +348,23 @@ static JSBool convert_charset_generic(JS - } - - --JSBool js_f2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) -+JSBool js_f2i(JSContext *cx, uintN argc, jsval *argv) - { -- return convert_charset_generic(cx, obj, argc, argv, rval, F2I); -+ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, F2I); - } - --JSBool js_m2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) -+JSBool js_m2i(JSContext *cx, uintN argc, jsval *argv) - { -- return convert_charset_generic(cx, obj, argc, argv, rval, M2I); --} -+ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, M2I); } - --JSBool js_p2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) -+JSBool js_p2i(JSContext *cx, uintN argc, jsval *argv) - { -- return convert_charset_generic(cx, obj, argc, argv, rval, P2I); -+ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, P2I); - } - --JSBool js_j2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) -+JSBool js_j2i(JSContext *cx, uintN argc, jsval *argv) - { -- return convert_charset_generic(cx, obj, argc, argv, rval, J2I); -+ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, J2I); - } - - } // extern "C" -diff -up mediatomb-0.12.1-back/src/scripting/js_functions.h.tonewjs mediatomb-0.12.1-back/src/scripting/js_functions.h ---- mediatomb-0.12.1-back/src/scripting/js_functions.h.tonewjs 2010-03-25 15:58:05.000000000 +0100 -+++ mediatomb-0.12.1-back/src/scripting/js_functions.h 2011-04-18 13:59:29.000000000 +0200 -@@ -40,18 +40,18 @@ - extern "C" { - - /// \brief Log output. --JSBool js_print(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval); -+JSBool js_print(JSContext *cx, uintN argc, jsval *argv); - - /// \brief Adds an object to the database. --JSBool js_addCdsObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval); -+JSBool js_addCdsObject(JSContext *cx, uintN argc, jsval *argv); - - /// \brief Makes a copy of an CDS object. --JSBool js_copyObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval); -+JSBool js_copyObject(JSContext *cx, uintN argc, jsval *argv); - --JSBool js_f2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval); --JSBool js_m2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval); --JSBool js_p2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval); --JSBool js_j2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval); -+JSBool js_f2i(JSContext *cx, uintN argc, jsval *argv); -+JSBool js_m2i(JSContext *cx, uintN argc, jsval *argv); -+JSBool js_p2i(JSContext *cx, uintN argc, jsval *argv); -+JSBool js_j2i(JSContext *cx, uintN argc, jsval *argv); - - } // extern "C" - -diff -up mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc ---- mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc.tonewjs 2011-04-18 13:34:14.000000000 +0200 -+++ mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc 2011-04-18 13:51:59.000000000 +0200 -@@ -46,9 +46,9 @@ using namespace zmm; - extern "C" { - - static JSBool --js_readln(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) -+js_readln(JSContext *cx, uintN argc, jsval *argv) - { -- PlaylistParserScript *self = (PlaylistParserScript *)JS_GetPrivate(cx, obj); -+ PlaylistParserScript *self = (PlaylistParserScript *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv)); - - String line; - -@@ -69,7 +69,7 @@ js_readln(JSContext *cx, JSObject *obj, - - JSString *jsline = JS_NewStringCopyZ(cx, line.c_str()); - -- *rval = STRING_TO_JSVAL(jsline); -+ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(jsline)); - - return JS_TRUE; - } -@@ -93,8 +93,8 @@ PlaylistParserScript::PlaylistParserScri - - String scriptPath = ConfigManager::getInstance()->getOption(CFG_IMPORT_SCRIPTING_PLAYLIST_SCRIPT); - load(scriptPath); -- root = JS_NewScriptObject(cx, script); -- JS_AddNamedRoot(cx, &root, "PlaylistScript"); -+ root = JS_NewObject(cx, NULL, script, NULL); -+ JS_AddNamedObjectRoot(cx, &root, "PlaylistScript"); - } - catch (Exception ex) - { -@@ -245,7 +245,7 @@ PlaylistParserScript::~PlaylistParserScr - #endif - - if (root) -- JS_RemoveRoot(cx, &root); -+ JS_RemoveObjectRoot(cx, &root); - - #ifdef JS_THREADSAFE - JS_EndRequest(cx); -diff -up mediatomb-0.12.1-back/src/scripting/script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/script.cc ---- mediatomb-0.12.1-back/src/scripting/script.cc.tonewjs 2011-04-18 13:53:07.000000000 +0200 -+++ mediatomb-0.12.1-back/src/scripting/script.cc 2011-04-19 18:26:34.460338804 +0200 -@@ -87,7 +87,7 @@ String Script::getProperty(JSObject *obj - str = JS_ValueToString(cx, val); - if (! str) - return nil; -- return JS_GetStringBytes(str); -+ return JS_EncodeString(cx, str); - } - - int Script::getBoolProperty(JSObject *obj, String name) -@@ -427,14 +427,14 @@ static JSFunctionSpec js_global_function - try - { - common_script = _load(common_scr_path); -- common_root = JS_NewScriptObject(cx, common_script); -- JS_AddNamedRoot(cx, &common_root, "common-script"); -+ common_root = JS_NewObject(cx, NULL, common_script, NULL); -+ JS_AddNamedObjectRoot(cx, &common_root, "common-script"); - _execute(common_script); - } - catch (Exception e) - { - if (common_root) -- JS_RemoveRoot(cx, &common_root); -+ JS_RemoveObjectRoot(cx, &common_root); - - log_js("Unable to load %s: %s\n", common_scr_path.c_str(), - e.getMessage().c_str()); -@@ -460,7 +460,7 @@ Script::~Script() - JS_BeginRequest(cx); - #endif - if (common_root) -- JS_RemoveRoot(cx, &common_root); -+ JS_RemoveObjectRoot(cx, &common_root); - - /* - * scripts are unrooted and will be cleaned up by GC -@@ -504,11 +504,11 @@ void Script::initGlobalObject() - static JSClass global_class = - { - "global", /* name */ -- JSCLASS_HAS_PRIVATE, /* flags */ -+ JSCLASS_HAS_PRIVATE | JSCLASS_GLOBAL_FLAGS,/* flags */ - JS_PropertyStub, /* add property */ - JS_PropertyStub, /* del property */ - JS_PropertyStub, /* get property */ -- JS_PropertyStub, /* set property */ -+ JS_StrictPropertyStub, /* set property */ - JS_EnumerateStandardClasses, /* enumerate */ - JS_ResolveStub, /* resolve */ - JS_ConvertStub, /* convert */ -@@ -517,7 +517,7 @@ void Script::initGlobalObject() - }; - - /* create the global object here */ -- glob = JS_NewObject(cx, &global_class, NULL, NULL); -+ glob = JS_NewCompartmentAndGlobalObject(cx, &global_class, NULL); - if (! glob) - throw _Exception(_("Scripting: could not initialize glboal class")); - -@@ -539,12 +539,12 @@ void Script::defineFunctions(JSFunctionS - throw _Exception(_("Scripting: JS_DefineFunctions failed")); - } - --JSScript *Script::_load(zmm::String scriptPath) -+JSObject *Script::_load(zmm::String scriptPath) - { - if (glob == NULL) - initGlobalObject(); - -- JSScript *scr; -+ JSObject *scr; - - String scriptText = read_text_file(scriptPath); - -@@ -571,14 +571,11 @@ JSScript *Script::_load(zmm::String scri - - void Script::load(zmm::String scriptPath) - { -- if (script) -- JS_DestroyScript(cx, script); -- - script = _load((scriptPath)); - } - - --void Script::_execute(JSScript *scr) -+void Script::_execute(JSObject *scr) - { - jsval ret_val; - -@@ -662,7 +659,7 @@ Ref<CdsObject> Script::jsObject2cdsObjec - JSObject *js_meta = getObjectProperty(js, _("meta")); - if (js_meta) - { -- JS_AddNamedRoot(cx, &js_meta, "meta"); -+ JS_AddNamedObjectRoot(cx, &js_meta, "meta"); - /// \todo: only metadata enumerated in MT_KEYS is taken - for (int i = 0; i < M_MAX; i++) - { -@@ -687,7 +684,7 @@ Ref<CdsObject> Script::jsObject2cdsObjec - } - } - } -- JS_RemoveRoot(cx, &js_meta); -+ JS_RemoveObjectRoot(cx, &js_meta); - } - - // stuff that has not been exported to js -diff -up mediatomb-0.12.1-back/src/scripting/script.h.tonewjs mediatomb-0.12.1-back/src/scripting/script.h ---- mediatomb-0.12.1-back/src/scripting/script.h.tonewjs 2011-04-18 12:56:14.000000000 +0200 -+++ mediatomb-0.12.1-back/src/scripting/script.h 2011-04-18 12:56:51.000000000 +0200 -@@ -66,8 +66,8 @@ public: - JSRuntime *rt; - JSContext *cx; - JSObject *glob; -- JSScript *script; -- JSScript *common_script; -+ JSObject *script; -+ JSObject *common_script; - - public: - Script(zmm::Ref<Runtime> runtime); -@@ -115,8 +115,8 @@ private: - JSObject *common_root; - - void initGlobalObject(); -- JSScript *_load(zmm::String scriptPath); -- void _execute(JSScript *scr); -+ JSObject *_load(zmm::String scriptPath); -+ void _execute(JSObject *scr); - zmm::Ref<StringConverter> _p2i; - zmm::Ref<StringConverter> _j2i; - zmm::Ref<StringConverter> _f2i; ---- mediatomb-0.12.1/configure.tonewjs 2011-07-04 20:20:00.290227110 +1200 -+++ mediatomb-0.12.1/configure 2011-07-04 20:20:28.186894644 +1200 -@@ -23784,14 +23784,14 @@ if test "x$ac_cv_lib_smjs_JS_NewObject" - - else - -- LDFLAGS="-L$JS_SEARCH_LIBS $LDFLAGS_SAVE -lmozjs $ADD_PTHREAD_CFLAGS" -- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5 --$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; } --if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then -+ LDFLAGS="-L$JS_SEARCH_LIBS $LDFLAGS_SAVE -lmozjs185 $ADD_PTHREAD_CFLAGS" -+ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5 -+$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; } -+if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lmozjs $LIBS" -+LIBS="-lmozjs185 $LIBS" - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF -@@ -23835,12 +23835,12 @@ $as_echo "$ac_try_echo") >&5 - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_mozjs_JS_NewObject=yes -+ ac_cv_lib_mozjs185_JS_NewObject=yes - else - $as_echo "$as_me: failed program was:" >&5 - sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_lib_mozjs_JS_NewObject=no -+ ac_cv_lib_mozjs185_JS_NewObject=no - fi - - rm -rf conftest.dSYM -@@ -23848,12 +23848,12 @@ rm -f core conftest.err conftest.$ac_obj - conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_check_lib_save_LIBS - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5 --$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; } --if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5 -+$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; } -+if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then - -- JS_LIBS="-L$JS_SEARCH_LIBS -lmozjs" -- MOZLIB=mozjs -+ JS_LIBS="-L$JS_SEARCH_LIBS -lmozjs185" -+ MOZLIB=mozjs185 - - else - -@@ -24020,13 +24020,13 @@ if test "x$ac_cv_lib_smjs_JS_NewObject" - else - - unset ac_cv_lib_smjs_JS_NewObject -- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5 --$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; } --if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then -+ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5 -+$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; } -+if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lmozjs $LIBS" -+LIBS="-lmozjs185 $LIBS" - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF -@@ -24070,12 +24070,12 @@ $as_echo "$ac_try_echo") >&5 - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_mozjs_JS_NewObject=yes -+ ac_cv_lib_mozjs185_JS_NewObject=yes - else - $as_echo "$as_me: failed program was:" >&5 - sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_lib_mozjs_JS_NewObject=no -+ ac_cv_lib_mozjs185_JS_NewObject=no - fi - - rm -rf conftest.dSYM -@@ -24083,12 +24083,12 @@ rm -f core conftest.err conftest.$ac_obj - conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_check_lib_save_LIBS - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5 --$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; } --if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5 -+$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; } -+if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then - -- MOZLIB=mozjs -- JS_LIBS="-lmozjs" -+ MOZLIB=mozjs185 -+ JS_LIBS="-lmozjs185" - - else - -@@ -24239,15 +24239,15 @@ if test "x$ac_cv_lib_smjs_JS_NewObject" - - else - -- LDFLAGS="-L$SEARCH_DIR_LIBS $LDFLAGS_SAVE -lmozjs" -- unset ac_cv_lib_mozjs_JS_NewObject -- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5 --$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; } --if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then -+ LDFLAGS="-L$SEARCH_DIR_LIBS $LDFLAGS_SAVE -lmozjs185" -+ unset ac_cv_lib_mozjs185_JS_NewObject -+ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5 -+$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; } -+if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lmozjs $LIBS" -+LIBS="-lmozjs185 $LIBS" - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF -@@ -24291,12 +24291,12 @@ $as_echo "$ac_try_echo") >&5 - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_mozjs_JS_NewObject=yes -+ ac_cv_lib_mozjs185_JS_NewObject=yes - else - $as_echo "$as_me: failed program was:" >&5 - sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_lib_mozjs_JS_NewObject=no -+ ac_cv_lib_mozjs185_JS_NewObject=no - fi - - rm -rf conftest.dSYM -@@ -24304,12 +24304,12 @@ rm -f core conftest.err conftest.$ac_obj - conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_check_lib_save_LIBS - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5 --$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; } --if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5 -+$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; } -+if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then - -- JS_LIBS="-L$SEARCH_DIR_LIBS -lmozjs" -- MOZLIB=mozjs -+ JS_LIBS="-L$SEARCH_DIR_LIBS -lmozjs185" -+ MOZLIB=mozjs185 - - else - diff --git a/community-testing/mongodb/PKGBUILD b/community-testing/mongodb/PKGBUILD deleted file mode 100644 index 04fa547a9..000000000 --- a/community-testing/mongodb/PKGBUILD +++ /dev/null @@ -1,60 +0,0 @@ -# Maintainer: Thomas Dziedzic < gostrc at gmail > -# Contributor: Mathias Stearn <mathias@10gen.com> -# Contributor: Alec Thomas - -pkgname=mongodb -pkgver=1.8.2 -pkgrel=5 -pkgdesc='A high-performance, open source, schema-free document-oriented database.' -arch=('i686' 'x86_64') -url='http://www.mongodb.org' -license=('AGPL3') -depends=('boost-libs' 'js' 'pcre') -makedepends=('scons' 'boost') -optdepends=('libpcap: needed for mongosniff') -backup=('etc/mongodb.conf') -install="mongodb.install" -source=("http://downloads.mongodb.org/src/mongodb-src-r${pkgver}.tar.gz" - 'mongodb.rc' - 'mongodb.conf' - 'mongodb-1.8.0-spidermonkey-1.8.5-support.patch' - 'add-js185-support-to-SConstruct.diff') -md5sums=('951fb1a75d90fc822cf4528585a970cf' - '85eaa28e349fdc6250f883624e624cca' - '4839fe1d638187ca3226e8267b947318' - '2e6409732fba887c9cfe81257b5260ad' - 'ca7e62be31389d951bfd8848b1675c1b') - -build() { - export SCONSFLAGS="$MAKEFLAGS" - - cd mongodb-src-r${pkgver} - - # js185 support https://jira.mongodb.org/browse/SERVER-2887 - patch -Np1 -i ${srcdir}/mongodb-1.8.0-spidermonkey-1.8.5-support.patch - patch -Np0 -i ${srcdir}/add-js185-support-to-SConstruct.diff - - scons \ - all \ - --full -} - -package() { - cd mongodb-src-r${pkgver} - - scons \ - install \ - --full \ - --prefix=${pkgdir}/usr - - install -D -m755 ${srcdir}/mongodb.rc \ - ${pkgdir}/etc/rc.d/mongodb - install -D -m644 ${srcdir}/mongodb.conf \ - ${pkgdir}/etc/mongodb.conf - install -d -m700 ${pkgdir}/var/lib/mongodb - install -d -m755 ${pkgdir}/var/log/mongodb - - if [ -d ${pkgdir}/usr/lib64 ]; then - mv ${pkgdir}/usr/lib64 ${pkgdir}/usr/lib - fi -} diff --git a/community-testing/mongodb/add-js185-support-to-SConstruct.diff b/community-testing/mongodb/add-js185-support-to-SConstruct.diff deleted file mode 100644 index c621d00cb..000000000 --- a/community-testing/mongodb/add-js185-support-to-SConstruct.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- SConstruct.original 2011-07-05 14:23:46.334748007 +0000 -+++ SConstruct 2011-07-05 14:26:15.729533840 +0000 -@@ -208,6 +208,9 @@ - justClientLib = (COMMAND_LINE_TARGETS == ['mongoclient']) - - env = Environment( MSVS_ARCH=msarch , tools = ["default", "gch"], toolpath = '.' ) -+ -+env.ParseConfig('pkg-config --cflags --libs mozjs185') -+ - if has_option( "cxx" ): - env["CC"] = get_option( "cxx" ) - env["CXX"] = get_option( "cxx" ) diff --git a/community-testing/mongodb/mongodb-1.8.0-spidermonkey-1.8.5-support.patch b/community-testing/mongodb/mongodb-1.8.0-spidermonkey-1.8.5-support.patch deleted file mode 100644 index 46160450f..000000000 --- a/community-testing/mongodb/mongodb-1.8.0-spidermonkey-1.8.5-support.patch +++ /dev/null @@ -1,1502 +0,0 @@ ---- mongodb-src-r1.8.0/SConstruct.mozjs185~ 2011-03-16 16:33:30.000000000 +0100 -+++ mongodb-src-r1.8.0/SConstruct 2011-04-01 22:16:43.411100876 +0200 -@@ -671,7 +671,6 @@ if nix: - env.Append( CPPFLAGS="-fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch" ) - # env.Append( " -Wconversion" ) TODO: this doesn't really work yet - if linux: -- env.Append( CPPFLAGS=" -Werror " ) - env.Append( CPPFLAGS=" -fno-builtin-memcmp " ) # glibc's memcmp is faster than gcc's - env.Append( CXXFLAGS=" -Wnon-virtual-dtor " ) - env.Append( LINKFLAGS=" -fPIC -pthread -rdynamic" ) -@@ -893,11 +892,11 @@ def doConfigure( myenv , needPcre=True , - if usesm: - - # see http://www.mongodb.org/pages/viewpageattachments.action?pageId=12157032 -- J = [ "mozjs" , "js", "js_static" ] -+ J = [ "mozjs185" , "js", "js_static" ] - if windows: - if msarch == "amd64": - if release: -- J = [ "js64r", "js", "mozjs" , "js_static" ] -+ J = [ "js64r", "js", "mozjs185" , "js_static" ] - else: - J = "js64d" - print( "looking for js64d.lib for spidermonkey. (available at mongodb.org prebuilt)" ); -@@ -905,14 +904,12 @@ def doConfigure( myenv , needPcre=True , - if not force32: - print( "Assuming a 32 bit build is desired" ) - if release: -- J = [ "js32r", "js", "mozjs" , "js_static" ] -+ J = [ "js32r", "js", "mozjs185" , "js_static" ] - else: -- J = [ "js32d", "js", "mozjs" , "js_static" ] -+ J = [ "js32d", "js", "mozjs185" , "js_static" ] - - myCheckLib( J , True ) - mozHeader = "js" -- if bigLibString(myenv).find( "mozjs" ) >= 0: -- mozHeader = "mozjs" - - if not conf.CheckHeader( mozHeader + "/jsapi.h" ): - if conf.CheckHeader( "jsapi.h" ): -@@ -921,6 +918,13 @@ def doConfigure( myenv , needPcre=True , - print( "no spider monkey headers!" ) - Exit(1) - -+ if conf.CheckFunc( 'JS_NewCompartmentAndGlobalObject' ): -+ myenv.Append( CPPDEFINES=[ "HAVE_COMPARTMENTS" ] ) -+ if conf.CheckFunc( 'JS_GetStringCharsAndLength' ): -+ myenv.Append( CPPDEFINES=[ "HAVE_JS_GET_STRING_CHARS_AND_LENGTH" ] ) -+ if conf.CheckFunc( 'JS_NewRegExpObjectNoStatics' ): -+ myenv.Append( CPPDEFINES=[ "JS_NEW_REG_EXP_OBJECT_NO_STATISTICS" ] ) -+ - if usev8: - if debugBuild: - myCheckLib( [ "v8_g" , "v8" ] , True ) ---- mongodb-src-r1.8.0/scripting/engine_spidermonkey.cpp.mozjs185~ 2011-03-16 16:33:30.000000000 +0100 -+++ mongodb-src-r1.8.0/scripting/engine_spidermonkey.cpp 2011-04-01 22:42:19.780233492 +0200 -@@ -192,8 +192,13 @@ namespace mongo { - } - - string toString( JSString * so ) { -+#ifdef HAVE_JS_GET_STRING_CHARS_AND_LENGTH -+ size_t srclen; -+ const jschar * s = JS_GetStringCharsAndLength( _context , so , &srclen ); -+#else - jschar * s = JS_GetStringChars( so ); - size_t srclen = JS_GetStringLength( so ); -+#endif - if( srclen == 0 ) - return ""; - -@@ -360,7 +365,7 @@ namespace mongo { - - case JSTYPE_OBJECT: { - JSObject * o = JSVAL_TO_OBJECT( val ); -- if ( ! o || o == JSVAL_NULL ) { -+ if ( ! o || o == (JSObject *)JSVAL_NULL ){ - b.appendNull( name ); - } - else if ( ! appendSpecialDBObject( this , b , name , val , o ) ) { -@@ -419,16 +424,15 @@ namespace mongo { - return true; - } - -- void addRoot( JSFunction * f , const char * name ); -+ void addRoot( JSFunction * f ); - - JSFunction * compileFunction( const char * code, JSObject * assoc = 0 ) { -- const char * gcName = "unknown"; -- JSFunction * f = _compileFunction( code , assoc , gcName ); -- //addRoot( f , gcName ); -+ JSFunction * f = _compileFunction( code , assoc ); -+ //addRoot( f ); - return f; - } - -- JSFunction * _compileFunction( const char * raw , JSObject * assoc , const char *& gcName ) { -+ JSFunction * _compileFunction( const char * raw , JSObject * assoc ) { - if ( ! assoc ) - assoc = JS_GetGlobalObject( _context ); - -@@ -447,7 +451,6 @@ namespace mongo { - if ( isSimpleStatement( s ) ) { - s = "return " + s; - } -- gcName = "cf anon"; - fname << "anon"; - return JS_CompileFunction( _context , assoc , fname.str().c_str() , 0 , 0 , s.c_str() , s.size() , "nofile_a" , 0 ); - } -@@ -488,7 +491,6 @@ namespace mongo { - log() << "compile failed for: " << raw << endl; - return 0; - } -- gcName = "cf normal"; - return func; - } - -@@ -630,7 +632,11 @@ namespace mongo { - flags++; - } - -+#ifdef JS_NEW_REG_EXP_OBJECT_NO_STATISTICS -+ JSObject * r = JS_NewRegExpObjectNoStatics( _context , (char*)e.regex() , strlen( e.regex() ) , flagNumber); -+#else - JSObject * r = JS_NewRegExpObject( _context , (char*)e.regex() , strlen( e.regex() ) , flagNumber ); -+#endif - assert( r ); - return OBJECT_TO_JSVAL( r ); - } -@@ -791,7 +797,7 @@ namespace mongo { - - BSONFieldIterator * it = (BSONFieldIterator*)JSVAL_TO_PRIVATE( *statep ); - if ( ! it ) { -- *statep = 0; -+ *statep = JSVAL_NULL; - return JS_TRUE; - } - -@@ -803,7 +809,7 @@ namespace mongo { - } - else { - delete it; -- *statep = 0; -+ *statep = JSVAL_NULL; - } - return JS_TRUE; - } -@@ -818,7 +824,7 @@ namespace mongo { - return JS_FALSE; - } - -- JSBool noaccess( JSContext *cx, JSObject *obj, jsval idval, jsval *vp) { -+ JSBool noaccess( JSContext *cx, JSObject *obj, jsid id, jsval *vp){ - BSONHolder * holder = GETHOLDER( cx , obj ); - if ( ! holder ) { - // in init code still -@@ -830,24 +836,37 @@ namespace mongo { - return JS_FALSE; - } - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) -+ JSBool strict_noaccess( JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp){ -+ return noaccess( cx , obj , id , vp ); -+ } -+ -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp, JSResolveOp) - JSClass bson_ro_class = { - "bson_ro_object" , JSCLASS_HAS_PRIVATE | JSCLASS_NEW_RESOLVE | JSCLASS_NEW_ENUMERATE , -- noaccess, noaccess, JS_PropertyStub, noaccess, -- (JSEnumerateOp)bson_enumerate, (JSResolveOp)(&resolveBSONField) , JS_ConvertStub, bson_finalize , -+ noaccess, noaccess, JS_PropertyStub, strict_noaccess, -+ (JSEnumerateOp)bson_enumerate, (JSResolveOp)resolveBSONField , JS_ConvertStub, bson_finalize , - JSCLASS_NO_OPTIONAL_MEMBERS - }; - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool bson_cons( JSContext* cx, uintN argc, jsval* vp ){ -+#else - JSBool bson_cons( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - cerr << "bson_cons : shouldn't be here!" << endl; - JS_ReportError( cx , "can't construct bson object" ); - return JS_FALSE; - } - - JSFunctionSpec bson_functions[] = { -- { 0 } -+ JS_FS_END - }; - -- JSBool bson_add_prop( JSContext *cx, JSObject *obj, jsval idval, jsval *vp) { -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSPropertyOp) -+ JSBool bson_add_prop( JSContext *cx, JSObject *obj, jsid id, jsval *vp){ -+ jsval idval; -+ JS_IdToValue( cx , id , &idval ); - BSONHolder * holder = GETHOLDER( cx , obj ); - if ( ! holder ) { - // static init -@@ -864,8 +883,10 @@ namespace mongo { - return JS_TRUE; - } - -- -- JSBool mark_modified( JSContext *cx, JSObject *obj, jsval idval, jsval *vp) { -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSPropertyOp) -+ JSBool mark_modified( JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp){ -+ jsval idval; -+ JS_IdToValue( cx , id , &idval ); - Convertor c(cx); - BSONHolder * holder = GETHOLDER( cx , obj ); - if ( !holder ) // needed when we're messing with DBRef.prototype -@@ -877,7 +898,10 @@ namespace mongo { - return JS_TRUE; - } - -- JSBool mark_modified_remove( JSContext *cx, JSObject *obj, jsval idval, jsval *vp) { -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSPropertyOp) -+ JSBool mark_modified_remove( JSContext *cx, JSObject *obj, jsid id, jsval *vp){ -+ jsval idval; -+ JS_IdToValue( cx , id , &idval ); - Convertor c(cx); - BSONHolder * holder = GETHOLDER( cx , obj ); - if ( holder->_inResolve ) -@@ -887,23 +911,26 @@ namespace mongo { - return JS_TRUE; - } - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp, JSResolveOp) - JSClass bson_class = { - "bson_object" , JSCLASS_HAS_PRIVATE | JSCLASS_NEW_RESOLVE | JSCLASS_NEW_ENUMERATE , - bson_add_prop, mark_modified_remove, JS_PropertyStub, mark_modified, -- (JSEnumerateOp)bson_enumerate, (JSResolveOp)(&resolveBSONField) , JS_ConvertStub, bson_finalize , -+ (JSEnumerateOp)bson_enumerate, (JSResolveOp)resolveBSONField , JS_ConvertStub, bson_finalize , - JSCLASS_NO_OPTIONAL_MEMBERS - }; - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) - static JSClass global_class = { - "global", JSCLASS_GLOBAL_FLAGS, -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - - // --- global helpers --- - -- JSBool native_print( JSContext * cx , JSObject * obj , uintN argc, jsval *argv, jsval *rval ) { -+ JSBool native_print( JSContext * cx , uintN argc , jsval *vp ){ -+ jsval *argv = JS_ARGV( cx , vp); - stringstream ss; - Convertor c( cx ); - for ( uintN i=0; i<argc; i++ ) { -@@ -913,10 +940,13 @@ namespace mongo { - } - ss << "\n"; - Logstream::logLockless( ss.str() ); -+ JS_SET_RVAL( cx , vp , JSVAL_VOID ); - return JS_TRUE; - } - -- JSBool native_helper( JSContext *cx , JSObject *obj , uintN argc, jsval *argv , jsval *rval ) { -+ JSBool native_helper( JSContext *cx , uintN argc, jsval *vp){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_THIS_OBJECT( cx , vp ); - Convertor c(cx); - - NativeFunction func = (NativeFunction)((long long)c.getNumber( obj , "x" ) ); -@@ -942,35 +972,37 @@ namespace mongo { - } - - if ( out.isEmpty() ) { -- *rval = JSVAL_VOID; -+ JS_SET_RVAL( cx , vp , JSVAL_VOID ); - } - else { -- *rval = c.toval( out.firstElement() ); -+ JS_SET_RVAL( cx , vp , c.toval( out.firstElement() ) ); - } - - return JS_TRUE; - } - -- JSBool native_load( JSContext *cx , JSObject *obj , uintN argc, jsval *argv , jsval *rval ); -+ JSBool native_load( JSContext *cx , uintN argc, jsval *vp ); - -- JSBool native_gc( JSContext *cx , JSObject *obj , uintN argc, jsval *argv , jsval *rval ) { -+ JSBool native_gc( JSContext *cx , uintN argc, jsval *vp ){ - JS_GC( cx ); -+ JS_SET_RVAL( cx , vp , JSVAL_VOID ); - return JS_TRUE; - } - - JSFunctionSpec globalHelpers[] = { -- { "print" , &native_print , 0 , 0 , 0 } , -- { "nativeHelper" , &native_helper , 1 , 0 , 0 } , -- { "load" , &native_load , 1 , 0 , 0 } , -- { "gc" , &native_gc , 1 , 0 , 0 } , -- { 0 , 0 , 0 , 0 , 0 } -+ JS_FS( "print" , &native_print , 0 , JSFUN_FAST_NATIVE ) , -+ JS_FS( "nativeHelper" , &native_helper , 1 , JSFUN_FAST_NATIVE ) , -+ JS_FS( "load" , &native_load , 1 , JSFUN_FAST_NATIVE ) , -+ JS_FS( "gc" , &native_gc , 1 , JSFUN_FAST_NATIVE ) , -+ JS_FS_END - }; - - // ----END global helpers ---- - - // Object helpers - -- JSBool bson_get_size(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool bson_get_size(JSContext *cx, uintN argc, jsval *vp){ -+ jsval *argv = JS_ARGV( cx , vp ); - if ( argc != 1 || !JSVAL_IS_OBJECT( argv[ 0 ] ) ) { - JS_ReportError( cx , "bsonsize requires one valid object" ); - return JS_FALSE; -@@ -979,7 +1011,7 @@ namespace mongo { - Convertor c(cx); - - if ( argv[0] == JSVAL_VOID || argv[0] == JSVAL_NULL ) { -- *rval = c.toval( 0.0 ); -+ JS_SET_RVAL( cx , vp , c.toval( 0.0 ) ); - return JS_TRUE; - } - -@@ -999,18 +1031,21 @@ namespace mongo { - size = temp.objsize(); - } - -- *rval = c.toval( size ); -+ JS_SET_RVAL( cx , vp , c.toval( size ) ); - return JS_TRUE; - } - - JSFunctionSpec objectHelpers[] = { -- { "bsonsize" , &bson_get_size , 1 , 0 , 0 } , -- { 0 , 0 , 0 , 0 , 0 } -+ JS_FS( "bsonsize" , &bson_get_size , 1 , JSFUN_FAST_NATIVE ) , -+ JS_FS_END - }; - - // end Object helpers - -- JSBool resolveBSONField( JSContext *cx, JSObject *obj, jsval id, uintN flags, JSObject **objp ) { -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSResolveOp) -+ JSBool resolveBSONField( JSContext *cx, JSObject *obj, jsid id, uintN flags, JSObject **objp ){ -+ jsval idval; -+ JS_IdToValue( cx , id , &idval ); - assert( JS_EnterLocalRootScope( cx ) ); - Convertor c( cx ); - -@@ -1023,7 +1058,7 @@ namespace mongo { - } - holder->check(); - -- string s = c.toString( id ); -+ string s = c.toString( idval ); - - BSONElement e = holder->_obj[ s.c_str() ]; - -@@ -1139,9 +1174,15 @@ namespace mongo { - //JS_SetVersion( _context , JSVERSION_LATEST); TODO - JS_SetErrorReporter( _context , errorReporter ); - -+#ifdef HAVE_COMPARTMENTS -+ _global = JS_NewCompartmentAndGlobalObject( _context , &global_class , NULL); -+ massert( 13442 , "JS_NewCompartmentAndGlobalObject failed for global" , _global ); -+ _call = JS_EnterCrossCompartmentCall( _context , _global); -+#else - _global = JS_NewObject( _context , &global_class, NULL, NULL); - massert( 10432 , "JS_NewObject failed for global" , _global ); - JS_SetGlobalObject( _context , _global ); -+#endif - massert( 10433 , "js init failed" , JS_InitStandardClasses( _context , _global ) ); - - JS_SetOptions( _context , JS_GetOptions( _context ) | JSOPTION_VAROBJFIX ); -@@ -1159,13 +1200,14 @@ namespace mongo { - smlock; - uassert( 10223 , "deleted SMScope twice?" , _convertor ); - -- for ( list<void*>::iterator i=_roots.begin(); i != _roots.end(); i++ ) { -- JS_RemoveRoot( _context , *i ); -+ for ( list<JSObject*>::iterator i=_roots.begin(); i != _roots.end(); i++ ){ -+ JSObject * obj = (JSObject *)*i; -+ JS_RemoveObjectRoot( _context , &obj ); - } - _roots.clear(); - - if ( _this ) { -- JS_RemoveRoot( _context , &_this ); -+ JS_RemoveObjectRoot( _context , &_this ); - _this = 0; - } - -@@ -1174,6 +1216,13 @@ namespace mongo { - _convertor = 0; - } - -+#ifdef HAVE_COMPARTMENTS -+ if ( _call ) { -+ JS_LeaveCrossCompartmentCall( _call ); -+ _call = 0; -+ } -+#endif -+ - if ( _context ) { - // This is expected to reclaim _global as well. - JS_DestroyContext( _context ); -@@ -1187,16 +1236,16 @@ namespace mongo { - assert( _convertor ); - return; - if ( _this ) { -- JS_RemoveRoot( _context , &_this ); -+ JS_RemoveObjectRoot( _context , &_this ); - _this = 0; - } - currentScope.reset( this ); - _error = ""; - } - -- void addRoot( void * root , const char * name ) { -- JS_AddNamedRoot( _context , root , name ); -- _roots.push_back( root ); -+ void addRoot( JSObject * obj ){ -+ JS_AddObjectRoot( _context , &obj ); -+ _roots.push_back( obj ); - } - - void init( const BSONObj * data ) { -@@ -1336,13 +1385,13 @@ namespace mongo { - void setThis( const BSONObj * obj ) { - smlock; - if ( _this ) { -- JS_RemoveRoot( _context , &_this ); -+ JS_RemoveObjectRoot( _context , &_this ); - _this = 0; - } - - if ( obj ) { - _this = _convertor->toJSObject( obj ); -- JS_AddNamedRoot( _context , &_this , "scope this" ); -+ JS_AddObjectRoot( _context , &_this ); - } - } - -@@ -1402,7 +1451,7 @@ namespace mongo { - spec->start = boost::posix_time::microsec_clock::local_time(); - spec->count = 0; - JS_SetContextPrivate( _context, (void*)spec ); --#if defined(SM181) && !defined(XULRUNNER190) -+#if JS_VERSION >= 181 && !defined(XULRUNNER190) - JS_SetOperationCallback( _context, _interrupt ); - #else - JS_SetBranchCallback( _context, interrupt ); -@@ -1412,7 +1461,7 @@ namespace mongo { - - void uninstallInterrupt( int timeoutMs ) { - if ( timeoutMs != 0 || ScriptEngine::haveCheckInterruptCallback() ) { --#if defined(SM181) && !defined(XULRUNNER190) -+#if JS_VERSION >= 181 && !defined(XULRUNNER190) - JS_SetOperationCallback( _context , 0 ); - #else - JS_SetBranchCallback( _context, 0 ); -@@ -1548,9 +1597,12 @@ namespace mongo { - - JSObject * _global; - JSObject * _this; -+#ifdef HAVE_COMPARTMENTS -+ JSCrossCompartmentCall * _call; -+#endif - - string _error; -- list<void*> _roots; -+ list<JSObject*> _roots; - - bool _externalSetup; - bool _localConnect; -@@ -1579,7 +1631,8 @@ namespace mongo { - } - } - -- JSBool native_load( JSContext *cx , JSObject *obj , uintN argc, jsval *argv , jsval *rval ) { -+ JSBool native_load( JSContext *cx , uintN argc, jsval *vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); - Convertor c(cx); - - Scope * s = currentScope.get(); -@@ -1594,6 +1647,7 @@ namespace mongo { - } - } - -+ JS_SET_RVAL( cx , vp , JSVAL_VOID ); - return JS_TRUE; - } - -@@ -1633,7 +1687,7 @@ namespace mongo { - return new SMScope(); - } - -- void Convertor::addRoot( JSFunction * f , const char * name ) { -+ void Convertor::addRoot( JSFunction * f ){ - if ( ! f ) - return; - -@@ -1642,7 +1696,7 @@ namespace mongo { - - JSObject * o = JS_GetFunctionObject( f ); - assert( o ); -- scope->addRoot( &o , name ); -+ scope->addRoot( o ); - } - - } ---- mongodb-src-r1.8.0/scripting/engine_spidermonkey.h.mozjs185~ 2011-03-16 16:33:30.000000000 +0100 -+++ mongodb-src-r1.8.0/scripting/engine_spidermonkey.h 2011-04-01 21:29:15.697678508 +0200 -@@ -21,6 +21,9 @@ - - // START inc hacking - -+#undef malloc -+#undef realloc -+ - #if defined( MOZJS ) - - #define MOZILLA_1_8_BRANCH -@@ -55,6 +58,9 @@ - - #endif - -+#define malloc MONGO_malloc -+#define realloc MONGO_realloc -+ - // END inc hacking - - // -- SM 1.6 hacks --- -@@ -81,6 +87,10 @@ JSBool JS_CStringsAreUTF8() { - #define SM181 - #endif - -+#ifndef JSFUN_FAST_NATIVE -+#define JSFUN_FAST_NATIVE 0 -+#endif -+ - namespace mongo { - - class SMScope; -@@ -104,7 +114,7 @@ namespace mongo { - extern boost::thread_specific_ptr<SMScope> currentScope; - - // bson -- JSBool resolveBSONField( JSContext *cx, JSObject *obj, jsval id, uintN flags, JSObject **objp ); -+ JSBool resolveBSONField( JSContext *cx, JSObject *obj, jsid id, uintN flags, JSObject **objp ); - - - // mongo ---- mongodb-src-r1.8.0/scripting/sm_db.cpp.mozjs185~ 2011-03-16 16:33:30.000000000 +0100 -+++ mongodb-src-r1.8.0/scripting/sm_db.cpp 2011-04-01 22:51:59.701652521 +0200 -@@ -79,13 +79,25 @@ namespace mongo { - return holder->get(); - } - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool internal_cursor_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool internal_cursor_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - uassert( 10236 , "no args to internal_cursor_constructor" , argc == 0 ); - assert( JS_SetPrivate( cx , obj , 0 ) ); // just for safety -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif - return JS_TRUE; - } - -- void internal_cursor_finalize( JSContext * cx , JSObject * obj ) { -+ void internal_cursor_finalize( JSContext * cx, JSObject * obj ){ - CursorHolder * holder = (CursorHolder*)JS_GetPrivate( cx , obj ); - if ( holder ) { - delete holder; -@@ -93,10 +105,11 @@ namespace mongo { - } - } - -- JSBool internal_cursor_hasNext(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool internal_cursor_hasNext(JSContext *cx , uintN argc , jsval *vp) { -+ JSObject* obj = JS_THIS_OBJECT( cx , vp ); - DBClientCursor *cursor = getCursor( cx, obj ); - try { -- *rval = cursor->more() ? JSVAL_TRUE : JSVAL_FALSE; -+ JS_SET_RVAL( cx , vp , cursor->more() ? JSVAL_TRUE : JSVAL_FALSE ); - } - catch ( std::exception& e ) { - JS_ReportError( cx , e.what() ); -@@ -105,14 +118,16 @@ namespace mongo { - return JS_TRUE; - } - -- JSBool internal_cursor_objsLeftInBatch(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool internal_cursor_objsLeftInBatch(JSContext *cx, uintN argc, jsval *vp) { -+ JSObject* obj = JS_THIS_OBJECT( cx , vp ); - DBClientCursor *cursor = getCursor( cx, obj ); - Convertor c(cx); -- *rval = c.toval((double) cursor->objsLeftInBatch() ); -+ JS_SET_RVAL( cx , vp , c.toval((double) cursor->objsLeftInBatch()) ); - return JS_TRUE; - } - -- JSBool internal_cursor_next(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool internal_cursor_next(JSContext *cx, uintN argc, jsval *vp) { -+ JSObject* obj = JS_THIS_OBJECT( cx , vp ); - DBClientCursor *cursor = getCursor( cx, obj ); - - BSONObj n; -@@ -131,20 +146,21 @@ namespace mongo { - } - - Convertor c(cx); -- *rval = c.toval( &n ); -+ JS_SET_RVAL( cx , vp , c.toval( &n ) ); - return JS_TRUE; - } - - JSFunctionSpec internal_cursor_functions[] = { -- { "hasNext" , internal_cursor_hasNext , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { "objsLeftInBatch" , internal_cursor_objsLeftInBatch , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { "next" , internal_cursor_next , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { 0 } -+ JS_FS( "hasNext" , internal_cursor_hasNext , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS( "objsLeftInBatch" , internal_cursor_objsLeftInBatch , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS( "next" , internal_cursor_next , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS_END - }; - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) - JSClass internal_cursor_class = { - "InternalCursor" , JSCLASS_HAS_PRIVATE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, internal_cursor_finalize, - JSCLASS_NO_OPTIONAL_MEMBERS - }; -@@ -157,7 +173,16 @@ namespace mongo { - throw -1; - } - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool mongo_local_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool mongo_local_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - Convertor c( cx ); - - shared_ptr< DBClientWithCommands > client( createDirectClient() ); -@@ -166,10 +191,23 @@ namespace mongo { - jsval host = c.toval( "EMBEDDED" ); - assert( JS_SetProperty( cx , obj , "host" , &host ) ); - -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif - return JS_TRUE; - } - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool mongo_external_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool mongo_external_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - Convertor c( cx ); - - smuassert( cx , "0 or 1 args to Mongo" , argc <= 1 ); -@@ -197,6 +235,9 @@ namespace mongo { - assert( JS_SetPrivate( cx , obj , (void*)( new shared_ptr< DBClientWithCommands >( conn ) ) ) ); - jsval host_val = c.toval( host.c_str() ); - assert( JS_SetProperty( cx , obj , "host" , &host_val ) ); -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif - return JS_TRUE; - - } -@@ -215,14 +256,18 @@ namespace mongo { - } - } - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) - JSClass mongo_class = { - "Mongo" , JSCLASS_HAS_PRIVATE | JSCLASS_NEW_RESOLVE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, mongo_finalize, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - -- JSBool mongo_find(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool mongo_find(JSContext *cx, uintN argc, jsval *vp) { -+ JSObject* obj = JS_THIS_OBJECT( cx , vp ); -+ jsval* argv = JS_ARGV( cx , vp ); -+ - smuassert( cx , "mongo_find needs 7 args" , argc == 7 ); - shared_ptr< DBClientWithCommands > * connHolder = (shared_ptr< DBClientWithCommands >*)JS_GetPrivate( cx , obj ); - smuassert( cx , "no connection!" , connHolder && connHolder->get() ); -@@ -252,7 +297,8 @@ namespace mongo { - JSObject * mycursor = JS_NewObject( cx , &internal_cursor_class , 0 , 0 ); - CHECKNEWOBJECT( mycursor, cx, "internal_cursor_class" ); - assert( JS_SetPrivate( cx , mycursor , new CursorHolder( cursor, *connHolder ) ) ); -- *rval = OBJECT_TO_JSVAL( mycursor ); -+ -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( mycursor )); - return JS_TRUE; - } - catch ( ... ) { -@@ -261,7 +307,10 @@ namespace mongo { - } - } - -- JSBool mongo_update(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool mongo_update(JSContext *cx, uintN argc, jsval *vp) { -+ JSObject* obj = JS_THIS_OBJECT( cx , vp ); -+ jsval* argv = JS_ARGV( cx , vp ); -+ - smuassert( cx , "mongo_find needs at elast 3 args" , argc >= 3 ); - smuassert( cx , "2nd param to update has to be an object" , JSVAL_IS_OBJECT( argv[1] ) ); - smuassert( cx , "3rd param to update has to be an object" , JSVAL_IS_OBJECT( argv[2] ) ); -@@ -282,6 +331,7 @@ namespace mongo { - - try { - conn->update( ns , c.toObject( argv[1] ) , c.toObject( argv[2] ) , upsert , multi ); -+ JS_SET_RVAL( cx , vp , JSVAL_VOID ); - return JS_TRUE; - } - catch ( ... ) { -@@ -290,7 +340,10 @@ namespace mongo { - } - } - -- JSBool mongo_insert(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool mongo_insert(JSContext *cx, uintN argc, jsval *vp) { -+ JSObject* obj = JS_THIS_OBJECT( cx , vp ); -+ jsval* argv = JS_ARGV( cx , vp ); -+ - smuassert( cx , "mongo_insert needs 2 args" , argc == 2 ); - smuassert( cx , "2nd param to insert has to be an object" , JSVAL_IS_OBJECT( argv[1] ) ); - -@@ -310,6 +363,7 @@ namespace mongo { - // TODO: add _id - - conn->insert( ns , o ); -+ JS_SET_RVAL( cx, vp, JSVAL_VOID ); - return JS_TRUE; - } - catch ( std::exception& e ) { -@@ -325,7 +379,10 @@ namespace mongo { - } - } - -- JSBool mongo_remove(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool mongo_remove(JSContext *cx, uintN argc, jsval *vp) { -+ JSObject* obj = JS_THIS_OBJECT( cx , vp ); -+ jsval* argv = JS_ARGV( cx , vp ); -+ - smuassert( cx , "mongo_remove needs 2 or 3 arguments" , argc == 2 || argc == 3 ); - smuassert( cx , "2nd param to insert has to be an object" , JSVAL_IS_OBJECT( argv[1] ) ); - -@@ -346,6 +403,7 @@ namespace mongo { - - try { - conn->remove( ns , o , justOne ); -+ JS_SET_RVAL( cx , vp , JSVAL_VOID ); - return JS_TRUE; - } - catch ( std::exception& e ) { -@@ -361,16 +419,26 @@ namespace mongo { - } - - JSFunctionSpec mongo_functions[] = { -- { "find" , mongo_find , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { "update" , mongo_update , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { "insert" , mongo_insert , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { "remove" , mongo_remove , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { 0 } -+ JS_FS( "find" , mongo_find , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS( "update" , mongo_update , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS( "insert" , mongo_insert , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS( "remove" , mongo_remove , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS_END - }; - - // ------------- db_collection ------------- - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool db_collection_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool db_collection_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - smuassert( cx , "db_collection_constructor wrong args" , argc == 4 ); - assert( JS_SetProperty( cx , obj , "_mongo" , &(argv[0]) ) ); - assert( JS_SetProperty( cx , obj , "_db" , &(argv[1]) ) ); -@@ -382,16 +450,22 @@ namespace mongo { - JS_ReportError( cx , "can't use sharded collection from db.eval" ); - return JS_FALSE; - } -- -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif - return JS_TRUE; - } - -- JSBool db_collection_resolve( JSContext *cx, JSObject *obj, jsval id, uintN flags, JSObject **objp ) { -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSResolveOp) -+ JSBool db_collection_resolve( JSContext *cx, JSObject *obj, jsid id, uintN flags, JSObject **objp ){ -+ jsval idval; -+ JS_IdToValue( cx , id , &idval ); -+ - if ( flags & JSRESOLVE_ASSIGNING ) - return JS_TRUE; - - Convertor c( cx ); -- string collname = c.toString( id ); -+ string collname = c.toString( idval ); - - if ( isSpecialName( collname ) ) - return JS_TRUE; -@@ -419,10 +493,11 @@ namespace mongo { - return JS_TRUE; - } - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp, JSResolveOp) - JSClass db_collection_class = { - "DBCollection" , JSCLASS_HAS_PRIVATE | JSCLASS_NEW_RESOLVE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -- JS_EnumerateStub, (JSResolveOp)(&db_collection_resolve) , JS_ConvertStub, JS_FinalizeStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, -+ JS_EnumerateStub, (JSResolveOp)db_collection_resolve , JS_ConvertStub, JS_FinalizeStub, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - -@@ -454,15 +529,32 @@ namespace mongo { - // -------------- DB --------------- - - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool db_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool db_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - smuassert( cx, "wrong number of arguments to DB" , argc == 2 ); - assert( JS_SetProperty( cx , obj , "_mongo" , &(argv[0]) ) ); - assert( JS_SetProperty( cx , obj , "_name" , &(argv[1]) ) ); - -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif -+ - return JS_TRUE; - } - -- JSBool db_resolve( JSContext *cx, JSObject *obj, jsval id, uintN flags, JSObject **objp ) { -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSResolveOp) -+ JSBool db_resolve( JSContext *cx, JSObject *obj, jsid id, uintN flags, JSObject **objp ){ -+ jsval idval; -+ JS_IdToValue( cx , id , &idval ); - if ( flags & JSRESOLVE_ASSIGNING ) - return JS_TRUE; - -@@ -471,7 +563,7 @@ namespace mongo { - if ( obj == c.getGlobalPrototype( "DB" ) ) - return JS_TRUE; - -- string collname = c.toString( id ); -+ string collname = c.toString( idval ); - - if ( isSpecialName( collname ) ) - return JS_TRUE; -@@ -489,17 +581,28 @@ namespace mongo { - return JS_TRUE; - } - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp, JSResolveOp) - JSClass db_class = { - "DB" , JSCLASS_HAS_PRIVATE | JSCLASS_NEW_RESOLVE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -- JS_EnumerateStub, (JSResolveOp)(&db_resolve) , JS_ConvertStub, JS_FinalizeStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, -+ JS_EnumerateStub, (JSResolveOp)db_resolve , JS_ConvertStub, JS_FinalizeStub, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - - - // -------------- object id ------------- - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool object_id_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool object_id_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - Convertor c( cx ); - - OID oid; -@@ -524,35 +627,48 @@ namespace mongo { - if ( ! JS_InstanceOf( cx , obj , &object_id_class , 0 ) ) { - obj = JS_NewObject( cx , &object_id_class , 0 , 0 ); - CHECKNEWOBJECT( obj, cx, "object_id_constructor" ); -- *rval = OBJECT_TO_JSVAL( obj ); - } - - jsval v = c.toval( oid.str().c_str() ); - assert( JS_SetProperty( cx , obj , "str" , &v ) ); - -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); - return JS_TRUE; - } - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) - JSClass object_id_class = { - "ObjectId" , JSCLASS_HAS_PRIVATE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - -- JSBool object_id_tostring(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool object_id_tostring(JSContext *cx, uintN argc, jsval *vp){ -+ JSObject *obj = JS_THIS_OBJECT( cx , vp ); - Convertor c(cx); -- return (JSBool) (*rval = c.getProperty( obj , "str" )); -+ JS_SET_RVAL( cx , vp , c.getProperty( obj , "str" )); -+ return JS_TRUE; - } - - JSFunctionSpec object_id_functions[] = { -- { "toString" , object_id_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { 0 } -+ JS_FS( "toString" , object_id_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS_END - }; - - // dbpointer - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool dbpointer_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool dbpointer_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - Convertor c( cx ); - - if ( argc == 2 ) { -@@ -564,6 +680,9 @@ namespace mongo { - - assert( JS_SetProperty( cx , obj , "ns" , &(argv[0]) ) ); - assert( JS_SetProperty( cx , obj , "id" , &(argv[1]) ) ); -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif - return JS_TRUE; - } - else { -@@ -572,19 +691,30 @@ namespace mongo { - } - } - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) - JSClass dbpointer_class = { - "DBPointer" , JSCLASS_HAS_PRIVATE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - - JSFunctionSpec dbpointer_functions[] = { -- { 0 } -+ JS_FS_END - }; - - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool dbref_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool dbref_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - Convertor c( cx ); - - if ( argc == 2 ) { -@@ -594,6 +724,9 @@ namespace mongo { - assert( JS_SetProperty( cx, o , "$id" , &argv[ 1 ] ) ); - BSONObj bo = c.toObject( o ); - assert( JS_SetPrivate( cx , obj , (void*)(new BSONHolder( bo.getOwned() ) ) ) ); -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif - return JS_TRUE; - } - else { -@@ -607,7 +740,17 @@ namespace mongo { - - // UUID ************************** - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool uuid_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool uuid_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - Convertor c( cx ); - - if( argc == 0 ) { -@@ -635,6 +778,9 @@ namespace mongo { - c.setProperty( obj, "len", c.toval( (double)16 ) ); - c.setProperty( obj, "type", c.toval( (double)3 ) ); - -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif - return JS_TRUE; - } - else { -@@ -643,7 +789,8 @@ namespace mongo { - } - } - -- JSBool uuid_tostring(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool uuid_tostring(JSContext *cx, uintN argc, jsval *vp){ -+ JSObject *obj = JS_THIS_OBJECT( cx , vp ); - Convertor c(cx); - void *holder = JS_GetPrivate( cx, obj ); - assert( holder ); -@@ -652,7 +799,8 @@ namespace mongo { - ss << "UUID(\"" << toHex(data, 16); - ss << "\")"; - string ret = ss.str(); -- return *rval = c.toval( ret.c_str() ); -+ JS_SET_RVAL( cx , vp , c.toval( ret.c_str() ) ); -+ return JS_TRUE; - } - - void uuid_finalize( JSContext * cx , JSObject * obj ) { -@@ -664,21 +812,32 @@ namespace mongo { - } - } - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) - JSClass uuid_class = { - "UUID" , JSCLASS_HAS_PRIVATE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, uuid_finalize, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - - JSFunctionSpec uuid_functions[] = { -- { "toString" , uuid_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { 0 } -+ JS_FS( "toString" , uuid_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS_END - }; - - // BinData ************************** - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool bindata_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool bindata_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - Convertor c( cx ); - - if ( argc == 2 ) { -@@ -702,6 +861,9 @@ namespace mongo { - c.setProperty( obj, "len", c.toval( (double)decoded.length() ) ); - c.setProperty( obj, "type", c.toval( (double)type ) ); - -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif - return JS_TRUE; - } - else { -@@ -710,7 +872,8 @@ namespace mongo { - } - } - -- JSBool bindata_tostring(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool bindata_tostring(JSContext *cx, uintN argc, jsval *vp){ -+ JSObject *obj = JS_THIS_OBJECT( cx , vp ); - Convertor c(cx); - int type = (int)c.getNumber( obj , "type" ); - int len = (int)c.getNumber( obj, "len" ); -@@ -722,10 +885,12 @@ namespace mongo { - base64::encode( ss, (const char *)data, len ); - ss << "\")"; - string ret = ss.str(); -- return *rval = c.toval( ret.c_str() ); -+ JS_SET_RVAL( cx , vp , c.toval( ret.c_str() ) ); -+ return JS_TRUE; - } - -- JSBool bindataBase64(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool bindataBase64(JSContext *cx, uintN argc, jsval *vp){ -+ JSObject *obj = JS_THIS_OBJECT( cx , vp ); - Convertor c(cx); - int len = (int)c.getNumber( obj, "len" ); - void *holder = JS_GetPrivate( cx, obj ); -@@ -734,10 +899,12 @@ namespace mongo { - stringstream ss; - base64::encode( ss, (const char *)data, len ); - string ret = ss.str(); -- return *rval = c.toval( ret.c_str() ); -+ JS_SET_RVAL( cx , vp , c.toval( ret.c_str() ) ); -+ return JS_TRUE; - } - -- JSBool bindataAsHex(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool bindataAsHex(JSContext *cx, uintN argc, jsval *vp){ -+ JSObject *obj = JS_THIS_OBJECT( cx , vp ); - Convertor c(cx); - int len = (int)c.getNumber( obj, "len" ); - void *holder = JS_GetPrivate( cx, obj ); -@@ -750,19 +917,24 @@ namespace mongo { - ss << v; - } - string ret = ss.str(); -- return *rval = c.toval( ret.c_str() ); -+ JS_SET_RVAL( cx , vp , c.toval( ret.c_str() ) ); -+ return JS_TRUE; - } - -- JSBool bindataLength(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool bindataLength(JSContext *cx, uintN argc, jsval *vp){ -+ JSObject *obj = JS_THIS_OBJECT( cx , vp ); - Convertor c(cx); - int len = (int)c.getNumber( obj, "len" ); -- return *rval = c.toval((double) len); -+ JS_SET_RVAL( cx , vp , c.toval((double) len) ); -+ return JS_TRUE; - } - -- JSBool bindataSubtype(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool bindataSubtype(JSContext *cx, uintN argc, jsval *vp){ -+ JSObject *obj = JS_THIS_OBJECT( cx , vp ); - Convertor c(cx); - int t = (int)c.getNumber( obj, "type" ); -- return *rval = c.toval((double) t); -+ JS_SET_RVAL( cx , vp , c.toval((double) t) ); -+ return JS_TRUE; - } - - void bindata_finalize( JSContext * cx , JSObject * obj ) { -@@ -774,20 +946,21 @@ namespace mongo { - } - } - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) - JSClass bindata_class = { - "BinData" , JSCLASS_HAS_PRIVATE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, bindata_finalize, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - - JSFunctionSpec bindata_functions[] = { -- { "toString" , bindata_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { "hex", bindataAsHex, 0, JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { "base64", bindataBase64, 0, JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { "length", bindataLength, 0, JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { "subtype", bindataSubtype, 0, JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { 0 } -+ JS_FS( "toString" , bindata_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS( "hex", bindataAsHex, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS( "base64", bindataBase64, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS( "length", bindataLength, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS( "subtype", bindataSubtype, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS_END - }; - - // Map -@@ -796,7 +969,16 @@ namespace mongo { - return s == "put" || s == "get" || s == "_get" || s == "values" || s == "_data" || s == "constructor" ; - } - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool map_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool map_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - if ( argc > 0 ) { - JS_ReportError( cx , "Map takes no arguments" ); - return JS_FALSE; -@@ -808,10 +990,16 @@ namespace mongo { - jsval a = OBJECT_TO_JSVAL( array ); - JS_SetProperty( cx , obj , "_data" , &a ); - -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif - return JS_TRUE; - } - -- JSBool map_prop( JSContext *cx, JSObject *obj, jsval idval, jsval *vp ) { -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSPropertyOp) -+ JSBool map_prop( JSContext *cx, JSObject *obj, jsid id, jsval *vp ){ -+ jsval idval; -+ JS_IdToValue( cx , id , &idval ); - Convertor c(cx); - if ( specialMapString( c.toString( idval ) ) ) - return JS_TRUE; -@@ -821,34 +1009,49 @@ namespace mongo { - return JS_FALSE; - } - -+ JSBool strict_map_prop( JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp ){ -+ return map_prop( cx , obj , id , vp ); -+ } -+ -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) - JSClass map_class = { - "Map" , JSCLASS_HAS_PRIVATE , -- map_prop, JS_PropertyStub, map_prop, map_prop, -+ map_prop, JS_PropertyStub, map_prop, strict_map_prop, - JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - - JSFunctionSpec map_functions[] = { -- { 0 } -+ JS_FS_END - }; - - - // ----- - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) - JSClass timestamp_class = { - "Timestamp" , JSCLASS_HAS_PRIVATE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool timestamp_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool timestamp_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - smuassert( cx , "Timestamp needs 0 or 2 args" , argc == 0 || argc == 2 ); - - if ( ! JS_InstanceOf( cx , obj , ×tamp_class , 0 ) ) { - obj = JS_NewObject( cx , ×tamp_class , 0 , 0 ); - CHECKNEWOBJECT( obj, cx, "timestamp_constructor" ); -- *rval = OBJECT_TO_JSVAL( obj ); - } - - Convertor c( cx ); -@@ -864,21 +1067,30 @@ namespace mongo { - return JS_TRUE; - } - -- -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) - JSClass numberlong_class = { - "NumberLong" , JSCLASS_HAS_PRIVATE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool numberlong_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool numberlong_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - smuassert( cx , "NumberLong needs 0 or 1 args" , argc == 0 || argc == 1 ); - - if ( ! JS_InstanceOf( cx , obj , &numberlong_class , 0 ) ) { - obj = JS_NewObject( cx , &numberlong_class , 0 , 0 ); - CHECKNEWOBJECT( obj, cx, "numberlong_constructor" ); -- *rval = OBJECT_TO_JSVAL( obj ); - } - - Convertor c( cx ); -@@ -903,19 +1115,25 @@ namespace mongo { - c.makeLongObj( n, obj ); - } - -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif - return JS_TRUE; - } - -- JSBool numberlong_valueof(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool numberlong_valueof(JSContext *cx, uintN argc, jsval *vp){ -+ JSObject *obj = JS_THIS_OBJECT( cx , vp ); - Convertor c(cx); -- return *rval = c.toval( double( c.toNumberLongUnsafe( obj ) ) ); -+ JS_SET_RVAL( cx , vp , c.toval( double( c.toNumberLongUnsafe( obj ) ) ) ); -+ return JS_TRUE; - } - -- JSBool numberlong_tonumber(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -- return numberlong_valueof( cx, obj, argc, argv, rval ); -+ JSBool numberlong_tonumber(JSContext *cx, uintN argc, jsval *vp){ -+ return numberlong_valueof( cx, argc, vp ); - } - -- JSBool numberlong_tostring(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { -+ JSBool numberlong_tostring(JSContext *cx, uintN argc, jsval *vp){ -+ JSObject *obj = JS_THIS_OBJECT( cx , vp ); - Convertor c(cx); - stringstream ss; - long long val = c.toNumberLongUnsafe( obj ); -@@ -927,33 +1145,45 @@ namespace mongo { - ss << "NumberLong(" << val << ")"; - - string ret = ss.str(); -- return *rval = c.toval( ret.c_str() ); -+ JS_SET_RVAL( cx , vp , c.toval( ret.c_str() ) ); -+ return JS_TRUE; - } - - JSFunctionSpec numberlong_functions[] = { -- { "valueOf" , numberlong_valueof , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { "toNumber" , numberlong_tonumber , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { "toString" , numberlong_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } , -- { 0 } -+ JS_FS( "valueOf" , numberlong_valueof , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS( "toNumber" , numberlong_tonumber , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS( "toString" , numberlong_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) , -+ JS_FS_END - }; - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp) - JSClass minkey_class = { - "MinKey" , JSCLASS_HAS_PRIVATE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - - JSClass maxkey_class = { - "MaxKey" , JSCLASS_HAS_PRIVATE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - - // dbquery - -+#ifdef JSFUN_CONSTRUCTOR -+ JSBool dbquery_constructor( JSContext* cx, uintN argc, jsval* vp ){ -+ jsval *argv = JS_ARGV( cx , vp ); -+ JSObject *obj = JS_NewObjectForConstructor( cx , vp ); -+ if( ! obj ) { -+ JS_ReportError( cx , "Failed to create 'this' object" ); -+ return JS_FALSE; -+ } -+#else - JSBool dbquery_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) { -+#endif - smuassert( cx , "DDQuery needs at least 4 args" , argc >= 4 ); - - Convertor c(cx); -@@ -1001,28 +1231,35 @@ namespace mongo { - c.setProperty( obj , "_numReturned" , JSVAL_ZERO ); - c.setProperty( obj , "_special" , JSVAL_FALSE ); - -+#ifdef JSFUN_CONSTRUCTOR -+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) ); -+#endif - return JS_TRUE; - } - -- JSBool dbquery_resolve( JSContext *cx, JSObject *obj, jsval id, uintN flags, JSObject **objp ) { -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSResolveOp) -+ JSBool dbquery_resolve( JSContext *cx, JSObject *obj, jsid id, uintN flags, JSObject **objp ){ -+ jsval idval; -+ JS_IdToValue( cx , id , &idval ); - if ( flags & JSRESOLVE_ASSIGNING ) - return JS_TRUE; - -- if ( ! JSVAL_IS_NUMBER( id ) ) -+ if ( ! JSVAL_IS_NUMBER( idval ) ) - return JS_TRUE; - - jsval val = JSVAL_VOID; -- assert( JS_CallFunctionName( cx , obj , "arrayAccess" , 1 , &id , &val ) ); -+ assert( JS_CallFunctionName( cx , obj , "arrayAccess" , 1 , &idval , &val ) ); - Convertor c(cx); -- c.setProperty( obj , c.toString( id ).c_str() , val ); -+ c.setProperty( obj , c.toString( idval ).c_str() , val ); - *objp = obj; - return JS_TRUE; - } - -+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp, JSResolveOp) - JSClass dbquery_class = { - "DBQuery" , JSCLASS_NEW_RESOLVE , -- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, -- JS_EnumerateStub, (JSResolveOp)(&dbquery_resolve) , JS_ConvertStub, JS_FinalizeStub, -+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, -+ JS_EnumerateStub, (JSResolveOp)dbquery_resolve , JS_ConvertStub, JS_FinalizeStub, - JSCLASS_NO_OPTIONAL_MEMBERS - }; - -@@ -1102,7 +1339,7 @@ namespace mongo { - return true; - } - --#if defined( SM16 ) || defined( MOZJS ) -+#if defined( SM16 ) || JS_VERSION >= 181 - #warning dates do not work in your version of spider monkey - { - jsdouble d = js_DateGetMsecSinceEpoch( c->_context , o ); -@@ -1150,7 +1387,7 @@ namespace mongo { - } - - bool isDate( JSContext * cx , JSObject * o ) { --#if defined( SM16 ) || defined( MOZJS ) || defined( XULRUNNER ) -+#if defined( SM16 ) || JS_VERSION >= 181 || defined( XULRUNNER ) - return js_DateGetMsecSinceEpoch( cx , o ) != 0; - #else - return JS_InstanceOf( cx , o, &js_DateClass, 0 ); diff --git a/community-testing/mongodb/mongodb.conf b/community-testing/mongodb/mongodb.conf deleted file mode 100644 index c5272b7f2..000000000 --- a/community-testing/mongodb/mongodb.conf +++ /dev/null @@ -1,8 +0,0 @@ -# See http://www.mongodb.org/display/DOCS/File+Based+Configuration for format details -# Run mongod --help to see a list of options - -bind_ip = 127.0.0.1 -quiet = true -dbpath = /var/lib/mongodb -logpath = /var/log/mongodb/mongod.log -logappend = true diff --git a/community-testing/mongodb/mongodb.install b/community-testing/mongodb/mongodb.install deleted file mode 100755 index 8808eea0d..000000000 --- a/community-testing/mongodb/mongodb.install +++ /dev/null @@ -1,29 +0,0 @@ -# vim: syntax=sh - -post_install() { - useradd -r -g daemon -d /var/lib/mongodb -s /bin/bash mongodb - chown -R mongodb:daemon /var/lib/mongodb - chown -R mongodb:daemon /var/log/mongodb - - if [ "$(arch)" != "x86_64" ] - then - echo '==> Warning: the 32 bit version of MongoDB is limited to about 2GB of data.' - echo '==> See http://blog.mongodb.org/post/137788967/32-bit-limitations' - fi -} - -post_upgrade() { - chown -R mongodb:daemon /var/lib/mongodb - chown -R mongodb:daemon /var/log/mongodb - - # have to fix my fudge up in 1.8.2-2 and 1.8.2-3 - # added july 5th, 2011 - usermod -s /bin/bash mongodb >& /dev/null - echo 'The dbpath has changed from /var/state/mongodb to /var/lib/mongodb' - echo 'Make sure you move your data files to the new dbpath before you start/restart mongodb' - echo 'The logpath has changed from /var/log/mongod to /var/log/mongodb/mongod.log' -} - -pre_remove() { - userdel mongodb -} diff --git a/community-testing/mongodb/mongodb.rc b/community-testing/mongodb/mongodb.rc deleted file mode 100755 index 517258f63..000000000 --- a/community-testing/mongodb/mongodb.rc +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# vim: syntax=sh - -. /etc/rc.conf -. /etc/rc.d/functions - -PID=`pidof /usr/bin/mongod` -case "$1" in - start) - stat_busy "Starting mongodb" - [ -z "$PID" ] && /bin/su mongodb -c "/usr/bin/mongod --config /etc/mongodb.conf --fork" > /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - add_daemon mongodb - stat_done - fi - ;; - stop) - stat_busy "Stopping mongodb" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon mongodb - while [ ! -z "$(pidof /usr/bin/mongod)" ]; do - sleep 1; - done - stat_done - fi - ;; - restart) - $0 stop - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" -esac -exit 0 |