-/* $Id: js_dir.c,v 1.6 2006/10/21 05:44:45 mmondor Exp $ */
+/* $Id: js_dir.c,v 1.7 2006/10/27 05:38:50 mmondor Exp $ */
/*
* Copyright (c) 2006, Matthew Mondor
QUEUE_EXCEPTION("Wrong number of arguments");
goto err;
}
- if (!JSVAL_IS_STRING(argv[0])) {
+ if (!JSVAL_IS_STRING(argv[0]) ||
+ ((path = JS_GetStringBytes(JSVAL_TO_STRING(argv[0])))) == NULL) {
QUEUE_EXCEPTION("Argument not a string");
goto err;
}
- path = JS_GetStringBytes(JSVAL_TO_STRING(argv[0]));
-
if (dir_path_allow(path) == -1) {
char str[1024];
dir_m_close(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
DIR *dir;
+ int v;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
dir = JS_GetInstancePrivate(cx, obj, &dir_class, NULL);
assert(dir != NULL);
- *rval = INT_TO_JSVAL(closedir(dir));
+ v = closedir(dir);
+ *rval = INT_TO_JSVAL(v);
(void) JS_SetPrivate(cx, obj, NULL);
return JS_TRUE;
-/* $Id: js_fs.c,v 1.2 2006/10/21 05:44:46 mmondor Exp $ */
+/* $Id: js_fs.c,v 1.3 2006/10/27 05:41:30 mmondor Exp $ */
/*
* Copyright (c) 2006, Matthew Mondor
jsval *rval)
{
static char cwd[MAXPATHLEN];
+ JSString *str;
*rval = OBJECT_TO_JSVAL(NULL);
return JS_FALSE;
}
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, cwd));
+ if ((str = JS_NewStringCopyZ(cx, cwd)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(str);
return JS_TRUE;
}