diff -up freewrl-1.22.12_pre2/src/lib/world_script/fieldSet.c.gcc47 freewrl-1.22.12_pre2/src/lib/world_script/fieldSet.c --- freewrl-1.22.12_pre2/src/lib/world_script/fieldSet.c.gcc47 2012-01-17 16:41:20.054089756 -0500 +++ freewrl-1.22.12_pre2/src/lib/world_script/fieldSet.c 2012-01-17 16:52:34.878617489 -0500 @@ -913,7 +913,7 @@ void setField_javascriptEventOut(struct getMFNodetype (mynode,(struct Multi_Node *)memptr,X3D_NODE(tn),extraData); break; } case FIELDTYPE_MFString: { - getMFStringtype (scriptContext, (jsval *)tg->CRoutes.JSglobal_return_val,(struct Multi_String *)memptr); + getMFStringtype (scriptContext, tg->CRoutes.JSglobal_return_val,(struct Multi_String *)memptr); break; } @@ -1181,7 +1181,7 @@ void getJSMultiNumType (JSContext *cx, s (unsigned int) JSVAL_TO_INT(tg->CRoutes.JSglobal_return_val)); #endif - if (tg->jsVRMLBrowser.JSCreate_global_return_val!= INT_TO_JSVAL(0)) { + if (JSVAL_TO_INT(tg->jsVRMLBrowser.JSCreate_global_return_val) != 0) { myJSVal = tg->jsVRMLBrowser.JSCreate_global_return_val; tg->jsVRMLBrowser.JSCreate_global_return_val = INT_TO_JSVAL(0); @@ -1434,7 +1434,7 @@ void getJSMultiNumType (JSContext *cx, s /* a script is returning a MFString type; add this to the C */ /* children field */ /****************************************************************/ -void getMFStringtype (JSContext *cx, jsval *from, struct Multi_String *to) { +void getMFStringtype (JSContext *cx, jsval from, struct Multi_String *to) { int oldlen, newlen; jsval _v; JSObject *obj; @@ -1450,7 +1450,7 @@ void getMFStringtype (JSContext *cx, jsv svptr = to->p; newlen=0; - if (!JS_ValueToObject(cx, (jsval) from, &obj)) + if (!JS_ValueToObject(cx, from, &obj)) printf ("JS_ValueToObject failed in getMFStringtype\n"); if (!JS_GetProperty(cx, obj, MF_LENGTH_FIELD, &_v)) { diff -up freewrl-1.22.12_pre2/src/lib/world_script/fieldSet.h.gcc47 freewrl-1.22.12_pre2/src/lib/world_script/fieldSet.h --- freewrl-1.22.12_pre2/src/lib/world_script/fieldSet.h.gcc47 2012-01-17 16:52:51.079463130 -0500 +++ freewrl-1.22.12_pre2/src/lib/world_script/fieldSet.h 2012-01-17 16:53:01.377365012 -0500 @@ -55,7 +55,7 @@ int findRoutedFieldInARR (struct X3D_Nod int findFieldInARR(const char*, const char**, size_t); void findFieldInOFFSETS(int, const int, int *, int *, int *); void getJSMultiNumType(JSContext *, struct Multi_Vec3f *, int); -void getMFStringtype(JSContext *, jsval *, struct Multi_String *); +void getMFStringtype(JSContext *, jsval, struct Multi_String *); int findIndexInFIELDNAMES(int, const char**, size_t); char *findFIELDNAMESfromNodeOffset(struct X3D_Node *node, int offset); void getMFNodetype (struct X3D_Node *strp, struct Multi_Node *ch, struct X3D_Node *par, int ar); diff -up freewrl-1.22.12_pre2/src/lib/world_script/jsUtils.c.gcc47 freewrl-1.22.12_pre2/src/lib/world_script/jsUtils.c --- freewrl-1.22.12_pre2/src/lib/world_script/jsUtils.c.gcc47 2012-01-17 16:53:58.993816049 -0500 +++ freewrl-1.22.12_pre2/src/lib/world_script/jsUtils.c 2012-01-17 20:06:26.346892508 -0500 @@ -192,7 +192,10 @@ static JSBool setSF_in_MF (JSContext *cx #endif #endif - if (!setSFNodeField (cx, par, pf, + jsid idid; + JS_ValueToId(cx, pf, &idid); + + if (!setSFNodeField (cx, par, idid, #if JS_VERSION >= 185 JS_FALSE, #endif @@ -957,7 +960,10 @@ static JSBool getSFNodeField (JSContext /* NOTE - caller is (eventually) a JS class constructor, no need to BeginRequest */ - _idStr = JS_ValueToString(context, id); + jsval myval; + JS_IdToValue(context,id,&myval); + + _idStr = JS_ValueToString(context, myval); #if JS_VERSION < 185 _id_c = JS_GetStringBytes(_idStr); #else @@ -1167,10 +1173,13 @@ JSBool setSFNodeField (JSContext *contex /* get the id field... */ + jsval myval; + JS_IdToValue(context,id,&myval); + #if JS_VERSION < 185 - _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id)); + _id_c = JS_GetStringBytes(JSVAL_TO_STRING(myval)); #else - _id_c = JS_EncodeString(context,JSVAL_TO_STRING(id)); + _id_c = JS_EncodeString(context,JSVAL_TO_STRING(myval)); #endif #ifdef JSVRMLCLASSESVERBOSE diff -up freewrl-1.22.12_pre2/src/lib/world_script/jsVRMLClasses.c.gcc47 freewrl-1.22.12_pre2/src/lib/world_script/jsVRMLClasses.c --- freewrl-1.22.12_pre2/src/lib/world_script/jsVRMLClasses.c.gcc47 2012-01-17 16:30:57.029025097 -0500 +++ freewrl-1.22.12_pre2/src/lib/world_script/jsVRMLClasses.c 2012-01-17 20:15:44.233495123 -0500 @@ -1130,7 +1130,7 @@ _standardMFGetProperty(JSContext *cx, return JS_FALSE; } - if (!doMFSetProperty(cx,obj,id,vp,type)) { + if (!doMFSetProperty(cx,obj,iid,vp,type)) { printf ("wow, cant assign property\n"); } } @@ -1141,7 +1141,7 @@ _standardMFGetProperty(JSContext *cx, printf( "JS_LookupElement failed in %d.\n",type); return JS_FALSE; } - if (*vp == JSVAL_VOID) { + if (JSVAL_TO_INT(*vp) == 0) { printf( "warning: %d: obj = %p, jsval = %d does not exist!\n",type, obj, (int) _index); return JS_TRUE; @@ -1649,7 +1649,10 @@ doMFSetProperty(JSContext *cx, JSObject #endif #endif - if (!setSFNodeField (cx, par, pf, + jsid myid; + JS_ValueToId(cx, pf, &myid); + + if (!setSFNodeField (cx, par, myid, #if JS_VERSION >= 185 JS_FALSE, #endif @@ -1740,7 +1743,7 @@ JSBool loadVrmlClasses(JSContext *contex printf ("loading %s\n",JSLoadProps[i].id); #endif - v = 0; + v = INT_TO_JSVAL(0); if (( myProto = JS_InitClass(context, globalObj, NULL, JSLoadProps[i].class, JSLoadProps[i].constr, INIT_ARGC, NULL, JSLoadProps[i].Functions, NULL, NULL)) == NULL) { diff -up freewrl-1.22.12_pre2/src/lib/world_script/jsVRML_MFClasses.c.gcc47 freewrl-1.22.12_pre2/src/lib/world_script/jsVRML_MFClasses.c --- freewrl-1.22.12_pre2/src/lib/world_script/jsVRML_MFClasses.c.gcc47 2012-01-17 20:16:03.984305095 -0500 +++ freewrl-1.22.12_pre2/src/lib/world_script/jsVRML_MFClasses.c 2012-01-17 20:16:38.586969274 -0500 @@ -1692,7 +1692,7 @@ VrmlMatrixGetProperty(JSContext *cx, JSO "JS_LookupElement failed in VrmlMatrixGetProperty.\n"); return JS_FALSE; } - if (*vp == JSVAL_VOID) { + if (JSVAL_TO_INT(*vp) == 0) { printf( "VrmlMatrixGetProperty: obj = %p, jsval = %d does not exist!\n", obj, (int) _index); return JS_FALSE; @@ -1935,7 +1935,7 @@ MFStringGetProperty(JSContext *cx, JSObj printf( "JS_LookupElement failed in MFStringGetProperty.\n"); return JS_FALSE; } - if (*vp == JSVAL_VOID) { + if (JSVAL_TO_INT(*vp) == 0) { /* jut make up new strings, as above */ /* printf ("MFStringGetProperty, element %d is JSVAL_VOID, making up string for it\n",_index); */ _str = JS_NewStringCopyZ(cx, "NULL"); diff -up freewrl-1.22.12_pre2/src/lib/world_script/jsVRML_SFClasses.c.gcc47 freewrl-1.22.12_pre2/src/lib/world_script/jsVRML_SFClasses.c --- freewrl-1.22.12_pre2/src/lib/world_script/jsVRML_SFClasses.c.gcc47 2012-01-17 20:17:12.466641491 -0500 +++ freewrl-1.22.12_pre2/src/lib/world_script/jsVRML_SFClasses.c 2012-01-17 20:17:47.502302531 -0500 @@ -1507,7 +1507,7 @@ SFNodeGetProperty(JSContext *cx, JSObjec /* does the property exist? */ if (JS_LookupProperty (cx, obj, _id_c, &rval)) { - if (rval == JSVAL_VOID) { + if (JSVAL_TO_INT(rval) == 0) { ConsoleMessage ("SFNode - field :%s: does not exist",_id_c); return JS_FALSE; }