diff --git a/src/sbbs3/js_internal.c b/src/sbbs3/js_internal.c index a36f54a7a1c1fc1cba4255905cee8fba37b02039..8dff0d76c156b5502de89e612403bf4bcdbfd4f4 100644 --- a/src/sbbs3/js_internal.c +++ b/src/sbbs3/js_internal.c @@ -1745,3 +1745,37 @@ void js_PrepareToExecute(JSContext *cx, JSObject *obj, const char *filename, con _set_invalid_parameter_handler(msvc_invalid_parameter_handler); #endif } + +JSBool +js_CreateArrayOfStrings(JSContext* cx, JSObject* parent, const char* name, const char* str[],uintN flags) +{ + JSObject* array; + JSString* js_str; + jsval val; + size_t i; + jsuint len=0; + + if(JS_GetProperty(cx,parent,name,&val) && val!=JSVAL_VOID) + array=JSVAL_TO_OBJECT(val); + else + if((array=JS_NewArrayObject(cx, 0, NULL))==NULL) /* Assertion here, in _heap_alloc_dbg, June-21-2004 */ + return(JS_FALSE); /* Caused by nntpservice.js? */ + + if(!JS_DefineProperty(cx, parent, name, OBJECT_TO_JSVAL(array) + ,NULL,NULL,flags)) + return(JS_FALSE); + + if(array == NULL || !JS_GetArrayLength(cx, array, &len)) + return(JS_FALSE); + + for(i=0;str[i]!=NULL;i++) { + if((js_str = JS_NewStringCopyZ(cx, str[i]))==NULL) + break; + val = STRING_TO_JSVAL(js_str); + if(!JS_SetElement(cx, array, len+i, &val)) + break; + } + + return(JS_TRUE); +} + diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 48f4a9a64c8b741f414bbd6672f00dcdf16b1e5c..4a8391494e2762a2e462aaf871a403e5286dc299 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -548,39 +548,6 @@ void* js_GetClassPrivate(JSContext *cx, JSObject *obj, JSClass* cls) return ret; } -JSBool -js_CreateArrayOfStrings(JSContext* cx, JSObject* parent, const char* name, const char* str[],uintN flags) -{ - JSObject* array; - JSString* js_str; - jsval val; - size_t i; - jsuint len=0; - - if(JS_GetProperty(cx,parent,name,&val) && val!=JSVAL_VOID) - array=JSVAL_TO_OBJECT(val); - else - if((array=JS_NewArrayObject(cx, 0, NULL))==NULL) /* Assertion here, in _heap_alloc_dbg, June-21-2004 */ - return(JS_FALSE); /* Caused by nntpservice.js? */ - - if(!JS_DefineProperty(cx, parent, name, OBJECT_TO_JSVAL(array) - ,NULL,NULL,flags)) - return(JS_FALSE); - - if(array == NULL || !JS_GetArrayLength(cx, array, &len)) - return(JS_FALSE); - - for(i=0;str[i]!=NULL;i++) { - if((js_str = JS_NewStringCopyZ(cx, str[i]))==NULL) - break; - val = STRING_TO_JSVAL(js_str); - if(!JS_SetElement(cx, array, len+i, &val)) - break; - } - - return(JS_TRUE); -} - /* Convert from Synchronet-specific jsSyncMethodSpec to JSAPI's JSFunctionSpec */ JSBool diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index e6f1b141bf603274f81bbfd813c942b710c98fa7..f012a137f8b5ed7d11a50013aefb38c6616a06c5 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -1490,8 +1490,6 @@ extern "C" { DLLEXPORT JSBool js_DefineSyncProperties(JSContext* cx, JSObject* obj, jsSyncPropertySpec*); DLLEXPORT JSBool js_SyncResolve(JSContext* cx, JSObject* obj, char *name, jsSyncPropertySpec* props, jsSyncMethodSpec* funcs, jsConstIntSpec* consts, int flags); DLLEXPORT JSBool js_DefineConstIntegers(JSContext* cx, JSObject* obj, jsConstIntSpec*, int flags); - DLLEXPORT JSBool js_CreateArrayOfStrings(JSContext* cx, JSObject* parent - ,const char* name, const char* str[], unsigned flags); DLLEXPORT void* js_GetClassPrivate(JSContext*, JSObject*, JSClass*); DLLEXPORT bool js_CreateCommonObjects(JSContext* cx @@ -1547,6 +1545,8 @@ extern "C" { DLLEXPORT char* js_getstring(JSContext *cx, JSString *str); DLLEXPORT JSBool js_handle_events(JSContext *cx, js_callback_t *cb, volatile bool *terminated); DLLEXPORT JSBool js_clear_event(JSContext *cx, jsval *arglist, js_callback_t *cb, enum js_event_type et, int ididx); + DLLEXPORT JSBool js_CreateArrayOfStrings(JSContext* cx, JSObject* parent + ,const char* name, const char* str[], unsigned flags); /* js_system.c */ DLLEXPORT JSObject* js_CreateSystemObject(JSContext* cx, JSObject* parent