[freewrl] remove JS_NewNumberValue calls

Tom Callaway spot at fedoraproject.org
Sat Feb 2 00:34:34 UTC 2013


commit 36288af28aea07d7f5e52fdd2ad7a2388108734c
Author: Tom Callaway <spot at fedoraproject.org>
Date:   Sat Feb 2 01:37:11 2013 +0100

    remove JS_NewNumberValue calls

 freewrl-1.22.13-no-JS_NewNumberValue.patch |  516 ++++++++++++++++++++++++++++
 freewrl-1.22.13-wrappers-removed-api.patch |   21 +-
 freewrl.spec                               |    4 +-
 3 files changed, 520 insertions(+), 21 deletions(-)
---
diff --git a/freewrl-1.22.13-no-JS_NewNumberValue.patch b/freewrl-1.22.13-no-JS_NewNumberValue.patch
new file mode 100644
index 0000000..7549617
--- /dev/null
+++ b/freewrl-1.22.13-no-JS_NewNumberValue.patch
@@ -0,0 +1,516 @@
+diff -upa freewrl-1.22.13/src/lib/world_script/fieldGet.c.jsnnv freewrl-1.22.13/src/lib/world_script/fieldGet.c
+--- freewrl-1.22.13/src/lib/world_script/fieldGet.c.jsnnv	2013-02-02 01:21:25.647653428 +0100
++++ freewrl-1.22.13/src/lib/world_script/fieldGet.c	2013-02-02 01:22:42.570658486 +0100
+@@ -453,7 +453,7 @@ int set_one_MFElementType(int tonode, in
+ 				/* create a new SFFloat object */
+ 				
+ 				fp = (float *)fp_in; 
+-				JS_NewNumberValue(cx,(double)*fp,&newjsval);
++				newjsval = JS_NumberValue((double)*fp);
+ 				fp_in = offsetPointer_deref(float *,fp_in,elementlen);
+ 
+ 				/* put this object into the MF class */
+@@ -492,7 +492,7 @@ int set_one_MFElementType(int tonode, in
+ 				/* create a new SFTime object */
+ 				
+ 				dp = (double *)dp_in; 
+-				JS_NewNumberValue(cx,(double)*dp,&newjsval);
++				newjsval = JS_NumberValue((double)*dp);
+ 				dp_in = offsetPointer_deref(double *,dp_in,elementlen);
+ 
+ 				/* put this object into the MF class */
+diff -upa freewrl-1.22.13/src/lib/world_script/jsUtils.c.jsnnv freewrl-1.22.13/src/lib/world_script/jsUtils.c
+--- freewrl-1.22.13/src/lib/world_script/jsUtils.c.jsnnv	2013-02-02 01:20:01.409647889 +0100
++++ freewrl-1.22.13/src/lib/world_script/jsUtils.c	2013-02-02 01:28:38.935681919 +0100
+@@ -380,13 +380,13 @@ void X3D_ECMA_TO_JS(JSContext *cx, void
+ 
+ 		case FIELDTYPE_SFFloat:	{
+ 			memcpy ((void *) &fl, Data, datalen);
+-			JS_NewNumberValue(cx,(double)fl,newval);
++			*newval = JS_NumberValue((double)fl);
+ 			break;
+ 		}
+ 		case FIELDTYPE_SFDouble:
+ 		case FIELDTYPE_SFTime:	{
+ 			memcpy ((void *) &dl, Data, datalen);
+-			JS_NewNumberValue(cx,dl,newval);
++			*newval = JS_NumberValue(dl);
+ 			break;
+ 		}
+ 		case FIELDTYPE_SFBool:
+@@ -1062,7 +1062,7 @@ static JSBool getSFNodeField (JSContext
+ 				printf("getSFNodeField %d : fVal=%d\n",__LINE__,fVal);
+ 				#endif
+ 
+-				JS_NewNumberValue(context,(double)fVal,vp);
++				*vp = JS_NumberValue((double)fVal);
+ 				return JS_TRUE;
+ 			} else {
+ 				#if TRACK_FIFO_MSG
+diff -upa freewrl-1.22.13/src/lib/world_script/jsVRMLClasses.c.jsnnv freewrl-1.22.13/src/lib/world_script/jsVRMLClasses.c
+--- freewrl-1.22.13/src/lib/world_script/jsVRMLClasses.c.jsnnv	2013-02-02 01:24:56.092667266 +0100
++++ freewrl-1.22.13/src/lib/world_script/jsVRMLClasses.c	2013-02-02 01:30:12.700688085 +0100
+@@ -950,10 +950,7 @@ JSBool _simplecopyElements (JSContext *c
+ 				ii = JSVAL_TO_INT(val);
+ 				dd = (double) ii;
+ 				/* printf ("integer is %d doulbe %lf\n",ii,dd); */
+-		                if (JS_NewNumberValue(cx,dd,&val) == JS_FALSE) {
+-                		        printf( "JS_NewNumberValue failed for %f in simplecopyelements.\n",dd);
+-                        		return JS_FALSE;
+-                		}
++				val = JS_NumberValue(dd);
+ 			}
+ 		}
+ 
+@@ -1554,10 +1551,7 @@ doMFSetProperty(JSContext *cx, JSObject
+ 			ii = JSVAL_TO_INT(*vp);
+ 			dd = (double) ii;
+ 			/* printf ("integer is %d doulbe %lf\n",ii,dd); */
+-	                if (JS_NewNumberValue(cx,dd,vp) == JS_FALSE) {
+-               		        printf( "JS_NewNumberValue failed for %f in simplecopyelements.\n",dd);
+-                       		return JS_FALSE;
+-               		}
++			*vp = JS_NumberValue(dd);
+ 		}
+ 	}
+ 
+diff -upa freewrl-1.22.13/src/lib/world_script/jsVRMLClasses.h.jsnnv freewrl-1.22.13/src/lib/world_script/jsVRMLClasses.h
+--- freewrl-1.22.13/src/lib/world_script/jsVRMLClasses.h.jsnnv	2013-02-02 01:06:58.194596388 +0100
++++ freewrl-1.22.13/src/lib/world_script/jsVRMLClasses.h	2013-02-02 01:08:57.553604237 +0100
+@@ -84,14 +84,14 @@ of garbage collection
+ 
+ 
+ #define SET_JS_TICKTIME_RV(possibleRetVal) { jsval zimbo; \
+-        JS_NewNumberValue(cx, TickTime(), &zimbo);  \
++        zimbo = JS_NumberValue(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; \
+-        JS_NewNumberValue(cx, TickTime(), &zimbo);  \
++        zimbo = JS_NumberValue(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; \
+diff -upa freewrl-1.22.13/src/lib/world_script/jsVRML_MFClasses.c.jsnnv freewrl-1.22.13/src/lib/world_script/jsVRML_MFClasses.c
+--- freewrl-1.22.13/src/lib/world_script/jsVRML_MFClasses.c.jsnnv	2013-02-02 01:23:54.426663211 +0100
++++ freewrl-1.22.13/src/lib/world_script/jsVRML_MFClasses.c	2013-02-02 01:30:51.210690617 +0100
+@@ -923,10 +923,7 @@ static void _setmatrix (JSContext *cx, J
+ 	int i;
+ 	for (i=0; i<16; i++) {
+ 
+-		if (JS_NewNumberValue(cx, matrix[i],&val) == JS_FALSE) {
+-			printf ("problem creating id matrix\n");
+-			return;
+-		}
++		val = JS_NumberValue(matrix[i]);
+ 
+ 		if (!JS_SetElement(cx, obj, (uint32_t) i, &val)) {
+ 			printf( "JS_DefineElement failed for arg %u in VrmlMatrixSetTransform.\n", i);
+@@ -1681,7 +1678,7 @@ VrmlMatrixGetProperty(JSContext *cx, JSO
+ 		_index = JSVAL_TO_INT(id);
+ 
+ 		if (_index >= _length) {
+-			JS_NewNumberValue(cx,0.0,vp);
++			*vp = JS_NumberValue(0.0);
+ 			if (!JS_DefineElement(cx, obj, (uint32_t) _index, *vp, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_CHECK, JSPROP_ENUMERATE)) {
+ 				printf( "JS_DefineElement failed in VrmlMatrixGetProperty.\n");
+ 				return JS_FALSE;
+diff -upa freewrl-1.22.13/src/lib/world_script/jsVRML_SFClasses.c.jsnnv freewrl-1.22.13/src/lib/world_script/jsVRML_SFClasses.c
+--- freewrl-1.22.13/src/lib/world_script/jsVRML_SFClasses.c.jsnnv	2013-02-02 01:09:05.924604787 +0100
++++ freewrl-1.22.13/src/lib/world_script/jsVRML_SFClasses.c	2013-02-02 01:33:48.050702245 +0100
+@@ -161,11 +161,8 @@ SFColorGetHSV(JSContext *cx, uint32_t ar
+ 
+ 	result = JS_NewArrayObject(cx, 3, NULL); 
+         ADD_ROOT(cx, result); 
+-        for(i=0; i<3; i++) { 
+-		if (JS_NewNumberValue(cx, xp[i],&_v) == JS_FALSE) {
+-			printf( "JS_NewDouble failed for %f in SFColorGetHSV.\n", xp[i]);
+-			return JS_FALSE;
+-		}
++        for(i=0; i<3; i++) {
++		_v = JS_NumberValue(xp[i]);
+         	JS_SetElement(cx, result, (uint32_t)i, &_v); 
+         } 
+ 
+@@ -386,30 +383,15 @@ SFColorGetProperty(JSContext *cx, JSObje
+ 		switch (JSVAL_TO_INT(id)) {
+ 		case 0:
+ 			d = (ptr->v).c[0];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFColorGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 1:
+ 			d = (ptr->v).c[1];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFColorGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 2:
+ 			d = (ptr->v).c[2];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFColorGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		}
+ 	}
+@@ -503,17 +485,17 @@ SFColorRGBAGetHSV(JSContext *cx, uint32_
+ 	}
+ 
+ 	/* construct new double before conversion? */
+-	JS_NewNumberValue(cx,hue,&_v); /* was: 	_v = DOUBLE_TO_JSVAL(&hue); */
++	_v = JS_NumberValue(hue); /* was: 	_v = DOUBLE_TO_JSVAL(&hue); */
+ 	if (!JS_SetElement(cx, _arrayObj, 0, &_v)) {
+ 		printf( "JS_SetElement failed for hue in SFColorRGBAGetHSV.\n");
+ 		return JS_FALSE;
+ 	}
+-	JS_NewNumberValue(cx,saturation,&_v); /* was: _v = DOUBLE_TO_JSVAL(&saturation); */
++	_v = JS_NumberValue(saturation); /* was: _v = DOUBLE_TO_JSVAL(&saturation); */
+ 	if (!JS_SetElement(cx, _arrayObj, 1, &_v)) {
+ 		printf( "JS_SetElement failed for saturation in SFColorRGBAGetHSV.\n");
+ 		return JS_FALSE;
+ 	}
+-	JS_NewNumberValue(cx,value,&_v); /* was: _v = DOUBLE_TO_JSVAL(&value); */
++	_v = JS_NumberValue(value); /* was: _v = DOUBLE_TO_JSVAL(&value); */
+ 	if (!JS_SetElement(cx, _arrayObj, 2, &_v)) {
+ 		printf( "JS_SetElement failed for value in SFColorRGBAGetHSV.\n");
+ 		return JS_FALSE;
+@@ -733,39 +715,19 @@ SFColorRGBAGetProperty(JSContext *cx, JS
+ 		switch (JSVAL_TO_INT(id)) {
+ 		case 0:
+ 			d = (ptr->v).c[0];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFColorRGBAGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 1:
+ 			d = (ptr->v).c[1];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFColorRGBAGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 2:
+ 			d = (ptr->v).c[2];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFColorRGBAGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 3:
+ 			d = (ptr->v).c[3];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFColorRGBAGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		}
+ 	}
+@@ -1107,9 +1069,7 @@ SFNodeToString(JSContext *cx, uint32_t a
+ 		/* printf ("double is %lf\n",nv); */
+ 
+ 		/* printf ("nv %lf, handle %lu and %p\n",nv,ptr->handle,ptr->handle); */
+-		if (!JS_NewNumberValue(cx, nv, rval)) {
+-			ConsoleMessage ("Conversion issue in SFNodeToString");
+-		}
++		*rval = JS_NumberValue(nv);
+ 	}
+ 	
+ 
+@@ -1681,7 +1641,7 @@ SFNodeSetProperty(JSContext *cx, JSObjec
+ 			//SET_JS_TICKTIME()
+ 			{ 
+ 				jsval zimbo;
+-				JS_NewNumberValue(cx2, TickTime(), &zimbo);
++				zimbo = JS_NumberValue(TickTime());
+ 				if (!JS_DefineProperty(cx2,obj2, "__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 JS_FALSE;
+@@ -2520,39 +2480,19 @@ SFRotationGetProperty(JSContext *cx, JSO
+ 		switch (JSVAL_TO_INT(id)) {
+ 		case 0:
+ 			d = (ptr->v).c[0];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFRotationGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 1:
+ 			d = (ptr->v).c[1];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFRotationGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 2:
+ 			d = (ptr->v).c[2];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFRotationGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 3:
+ 			d = (ptr->v).c[3];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFRotationGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		}
+ 	}
+@@ -2787,10 +2727,7 @@ JSBool SFVec2fGeneric( JSContext *cx, JS
+ 		(_retNative->v).c[0] = (float) d0;
+ 		(_retNative->v).c[1] = (float) d1;
+ 	} else if (retNumeric) {
+-		if (JS_NewNumberValue(cx,d,rval) == JS_FALSE) {
+-			printf( "JS_NewDouble failed for %f in SFVec2f.\n",d);
+-			return JS_FALSE;
+-		}
++		*rval = JS_NumberValue(d);
+ 	}
+ 
+ 	#ifdef JSVRMLCLASSESVERBOSE
+@@ -3075,21 +3012,11 @@ SFVec2fGetProperty(JSContext *cx, JSObje
+ 		switch (JSVAL_TO_INT(id)) {
+ 		case 0:
+ 			d = (ptr->v).c[0];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec2fGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 1:
+ 			d = (ptr->v).c[1];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec2fGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		}
+ 	}
+@@ -3349,10 +3276,7 @@ JSBool SFVec3fGeneric( JSContext *cx, JS
+ 		(_retNative->v).c[1] = (float) d1;
+ 		(_retNative->v).c[2] = (float) d2;
+ 	} else if (retNumeric) {
+-		if (JS_NewNumberValue(cx,d,rval) == JS_FALSE) {
+-			printf( "JS_NewDouble failed for %f in SFVec3f.\n",d);
+-			return JS_FALSE;
+-		}
++		*rval = JS_NumberValue(d);
+ 	}
+ 	#ifdef JSVRMLCLASSESVERBOSE
+ 	if (retSFVec3f){
+@@ -3717,30 +3641,15 @@ SFVec3fGetProperty(JSContext *cx, JSObje
+ 		switch (JSVAL_TO_INT(id)) {
+ 		case 0:
+ 			d = (ptr->v).c[0];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec3fGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 1:
+ 			d = (ptr->v).c[1];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec3fGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 2:
+ 			d = (ptr->v).c[2];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec3fGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		}
+ 	} else {
+@@ -4001,10 +3910,7 @@ JSBool SFVec3dGeneric( JSContext *cx, JS
+ 		(_retNative->v).c[1] = d1;
+ 		(_retNative->v).c[2] = d2;
+ 	} else if (retNumeric) {
+-		if (JS_NewNumberValue(cx,d,rval) == JS_FALSE) {
+-			printf( "JS_NewDouble failed for %f in SFVec3d.\n",d);
+-			return JS_FALSE;
+-		}
++		*rval = JS_NumberValue(d);
+ 	}
+ 	#ifdef JSVRMLCLASSESVERBOSE
+ 	if (retSFVec3d){
+@@ -4365,30 +4271,15 @@ SFVec3dGetProperty(JSContext *cx, JSObje
+ 		switch (JSVAL_TO_INT(id)) {
+ 		case 0:
+ 			d = (ptr->v).c[0];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec3dGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 1:
+ 			d = (ptr->v).c[1];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec3dGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 2:
+ 			d = (ptr->v).c[2];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec3dGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		}
+ 	} else {
+@@ -4663,39 +4554,19 @@ SFVec4fGetProperty(JSContext *cx, JSObje
+ 		switch (JSVAL_TO_INT(id)) {
+ 		case 0:
+ 			d = (ptr->v).c[0];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec4fGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 1:
+ 			d = (ptr->v).c[1];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec4fGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 2:
+ 			d = (ptr->v).c[2];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec4fGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 3:
+ 			d = (ptr->v).c[3];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec4fGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		}
+ 	} else {
+@@ -4975,39 +4846,19 @@ SFVec4dGetProperty(JSContext *cx, JSObje
+ 		switch (JSVAL_TO_INT(id)) {
+ 		case 0:
+ 			d = (ptr->v).c[0];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec4dGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 1:
+ 			d = (ptr->v).c[1];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec4dGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 2:
+ 			d = (ptr->v).c[2];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec4dGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		case 3:
+ 			d = (ptr->v).c[3];
+-			if (JS_NewNumberValue(cx, d, vp) == JS_FALSE) {
+-				printf(
+-						"JS_NewDouble failed for %f in SFVec4dGetProperty.\n",
+-						d);
+-				return JS_FALSE;
+-			}
++			*vp = JS_NumberValue(d);
+ 			break;
+ 		}
+ 	} else {
diff --git a/freewrl-1.22.13-wrappers-removed-api.patch b/freewrl-1.22.13-wrappers-removed-api.patch
index a7d8f24..2a05c4e 100644
--- a/freewrl-1.22.13-wrappers-removed-api.patch
+++ b/freewrl-1.22.13-wrappers-removed-api.patch
@@ -1,24 +1,7 @@
-diff -upa freewrl-1.22.13/src/lib/world_script/JScript.c.wrappers freewrl-1.22.13/src/lib/world_script/JScript.c
---- freewrl-1.22.13/src/lib/world_script/JScript.c.wrappers	2013-02-01 16:50:22.080423176 +0100
-+++ freewrl-1.22.13/src/lib/world_script/JScript.c	2013-02-01 16:50:41.045422498 +0100
-@@ -81,6 +81,13 @@ static JSClass staticGlobalClass = {
- 
- #endif // HAVE_JAVASCRIPT
- 
-+static JSBool JS_NewNumberValue(JSContext *cx, double d, jsval *rval)
-+{
-+        *rval = JS_NumberValue(d);
-+        if (JSVAL_IS_NUMBER(*rval))
-+                return JS_TRUE;
-+        return JS_FALSE;
-+}
- 
- typedef struct pJScript{
- 	/* Script name/type table */
 diff -upa freewrl-1.22.13/src/lib/world_script/JScript.h.wrappers freewrl-1.22.13/src/lib/world_script/JScript.h
 --- freewrl-1.22.13/src/lib/world_script/JScript.h.wrappers	2013-02-01 16:47:41.128428929 +0100
 +++ freewrl-1.22.13/src/lib/world_script/JScript.h	2013-02-01 16:53:37.180416202 +0100
-@@ -32,6 +32,15 @@ $Id: JScript.h,v 1.9 2011/01/04 19:50:19
+@@ -32,6 +32,13 @@ $Id: JScript.h,v 1.9 2011/01/04 19:50:19
  
  #include <system_js.h>
  
@@ -29,8 +12,6 @@ diff -upa freewrl-1.22.13/src/lib/world_script/JScript.h.wrappers freewrl-1.22.1
 +#define JSVAL_IS_OBJECT(obj) (JSVAL_IS_NULL(obj) || !JSVAL_IS_PRIMITIVE(obj))
 +#endif
 +
-+static JSBool JS_NewNumberValue(JSContext *cx, double d, jsval *rval);
-+
  void kill_javascript(void);
  void cleanupDie(int num, const char *msg);
  void JSMaxAlloc(void);
diff --git a/freewrl.spec b/freewrl.spec
index ce16307..ed06131 100644
--- a/freewrl.spec
+++ b/freewrl.spec
@@ -16,9 +16,10 @@ Patch3:		freewrl-1.22.13-use-JS_NewGlobalObject.patch
 # Sometimes JS_GetPrototype has one arg, sometimes two, now three.
 # What day is it today?
 Patch4:		freewrl-1.22.13-JS_GetPrototype-three-args.patch
-# Some wrappers for removed API
+# Some fixes for removed API
 Patch5:		freewrl-1.22.13-wrappers-removed-api.patch
 Patch6:		freewrl-1.22.13-no-JS_ConstructObject.patch
+Patch7:		freewrl-1.22.13-no-JS_NewNumberValue.patch
 BuildRequires:	zlib-devel, freetype-devel, fontconfig-devel 
 BuildRequires:	imlib2-devel, nspr-devel, xulrunner-devel
 BuildRequires:	expat-devel, libXxf86vm-devel, libX11-devel, libXext-devel
@@ -86,6 +87,7 @@ browser plugin for Firefox (and other xulrunner compatible browsers).
 %patch4 -p1 -b .jsgp
 %patch5 -p1 -b .wrappers
 %patch6 -p1 -b .nojsco
+%patch7 -p1 -b .jsnvv
 cp %{SOURCE1} .
 # Don't need it.
 rm -rf appleOSX/


More information about the scm-commits mailing list