diff --git a/src/sbbs3/js_conio.c b/src/sbbs3/js_conio.c index 9ee68d084382b1026d910b088499ee9eb32c307e..4062b1e3b9b089aa198d1b5cd7b04936724ffd3d 100644 --- a/src/sbbs3/js_conio.c +++ b/src/sbbs3/js_conio.c @@ -229,7 +229,7 @@ static JSBool js_set(JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval size_t len; char *bytes; - bytes=js_ValueToStringBytes(cx, *vp, &len); + JSVALUE_TO_STRING(cx, *vp, bytes, &len); rc=JS_SUSPENDREQUEST(cx); copytext(bytes, len+1); JS_RESUMEREQUEST(cx, rc); @@ -301,17 +301,20 @@ js_conio_init(JSContext *cx, uintN argc, jsval *arglist) JS_SET_RVAL(cx, arglist, JSVAL_FALSE); - if(argc>0 && (mode=js_ValueToStringBytes(cx, argv[0], NULL))!=NULL) { - if(!stricmp(mode,"STDIO")) - ciolib_mode=-1; - else if(!stricmp(mode,"AUTO")) - ciolib_mode=CIOLIB_MODE_AUTO; - else if(!stricmp(mode,"X")) - ciolib_mode=CIOLIB_MODE_X; - else if(!stricmp(mode,"ANSI")) - ciolib_mode=CIOLIB_MODE_ANSI; - else if(!stricmp(mode,"CONIO")) - ciolib_mode=CIOLIB_MODE_CONIO; + if(argc>0) { + JSVALUE_TO_STRING(cx, argv[0], mode, NULL); + if(mode != NULL) { + if(!stricmp(mode,"STDIO")) + ciolib_mode=-1; + else if(!stricmp(mode,"AUTO")) + ciolib_mode=CIOLIB_MODE_AUTO; + else if(!stricmp(mode,"X")) + ciolib_mode=CIOLIB_MODE_X; + else if(!stricmp(mode,"ANSI")) + ciolib_mode=CIOLIB_MODE_ANSI; + else if(!stricmp(mode,"CONIO")) + ciolib_mode=CIOLIB_MODE_CONIO; + } } rc=JS_SUSPENDREQUEST(cx); diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index 77636de45fa564d23ce37d04cd884c50a8e83a28..5911e2c60868074543b710c87dacc401f6594a81 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -226,7 +226,8 @@ static jsval* js_CopyValue(JSContext* cx, jsval val, JSContext* new_cx, jsval* r size_t len; char* p; - if((p=js_ValueToStringBytes(cx,val,&len)) != NULL + JSVALUE_TO_STRING(cx, val, p, &len); + if(p != NULL && (str=JS_NewStringCopyN(new_cx,p,len)) != NULL) *rval=STRING_TO_JSVAL(str); } @@ -253,6 +254,7 @@ js_load(JSContext *cx, uintN argc, jsval *arglist) JSBool background=JS_FALSE; background_data_t* bg; jsrefcount rc; + char *cpath; JS_SET_RVAL(cx, arglist,JSVAL_VOID); @@ -384,7 +386,8 @@ js_load(JSContext *cx, uintN argc, jsval *arglist) /* if js.exec_dir is defined (location of executed script), search their first */ if(JS_GetProperty(cx, js_obj, "exec_dir", &val) && val!=JSVAL_VOID && JSVAL_IS_STRING(val)) { - SAFEPRINTF2(path,"%s%s",js_ValueToStringBytes(cx, val, NULL),filename); + JSVALUE_TO_STRING(cx, val, cpath, NULL); + SAFEPRINTF2(path,"%s%s",cpath,filename); rc=JS_SUSPENDREQUEST(cx); if(!fexistcase(path)) path[0]=0; @@ -401,7 +404,8 @@ js_load(JSContext *cx, uintN argc, jsval *arglist) for(i=0;path[0]==0;i++) { if(!JS_GetElement(cx, js_load_list, i, &val) || val==JSVAL_VOID) break; - SAFECOPY(prefix,js_ValueToStringBytes(cx, val, NULL)); + JSVALUE_TO_STRING(cx, val, cpath, NULL); + SAFECOPY(prefix,cpath); if(prefix[0]==0) continue; backslash(prefix); @@ -438,7 +442,8 @@ js_load(JSContext *cx, uintN argc, jsval *arglist) rc=JS_SUSPENDREQUEST(cx); break; } - SAFECOPY(prefix,js_ValueToStringBytes(cx, val, NULL)); + JSVALUE_TO_STRING(cx, val, cpath, NULL); + SAFECOPY(prefix,cpath); rc=JS_SUSPENDREQUEST(cx); if(prefix[0]==0) continue; @@ -627,7 +632,8 @@ js_crc16(JSContext *cx, uintN argc, jsval *arglist) if(JSVAL_IS_VOID(argv[0])) return(JS_TRUE); - if((p=js_ValueToStringBytes(cx, argv[0], &len))==NULL) + JSVALUE_TO_STRING(cx, argv[0], p, &len); + if(p==NULL) return(JS_FALSE); rc=JS_SUSPENDREQUEST(cx); @@ -651,7 +657,8 @@ js_crc32(JSContext *cx, uintN argc, jsval *arglist) if(JSVAL_IS_VOID(argv[0])) return(JS_TRUE); - if((p=js_ValueToStringBytes(cx, argv[0], &len))==NULL) + JSVALUE_TO_STRING(cx, argv[0], p, &len); + if(p==NULL) return(JS_FALSE); cs=crc32(p,len); @@ -676,7 +683,8 @@ js_chksum(JSContext *cx, uintN argc, jsval *arglist) if(JSVAL_IS_VOID(argv[0])) return(JS_TRUE); - if((p=js_ValueToStringBytes(cx, argv[0], &len))==NULL) + JSVALUE_TO_STRING(cx, argv[0], p, &len); + if(p==NULL) return(JS_FALSE); rc=JS_SUSPENDREQUEST(cx); /* 3.8 seconds on Deuce's computer when len==UINT_MAX/8 */ @@ -2067,7 +2075,8 @@ js_b64_encode(JSContext *cx, uintN argc, jsval *arglist) if(JSVAL_IS_VOID(argv[0])) return(JS_TRUE); - if((inbuf=js_ValueToStringBytes(cx, argv[0], &inbuf_len))==NULL) + JSVALUE_TO_STRING(cx, argv[0], inbuf, &inbuf_len); + if(inbuf==NULL) return(JS_FALSE); len=(inbuf_len*10)+1; @@ -2155,7 +2164,8 @@ js_md5_calc(JSContext* cx, uintN argc, jsval* arglist) if(JSVAL_IS_VOID(argv[0])) return(JS_TRUE); - if((inbuf=js_ValueToStringBytes(cx, argv[0], &inbuf_len))==NULL) + JSVALUE_TO_STRING(cx, argv[0], inbuf, &inbuf_len); + if(inbuf==NULL) return(JS_FALSE); if(argc>1 && JSVAL_IS_BOOLEAN(argv[1]))