-/* $Id: js_pgsql.c,v 1.11 2006/10/19 06:08:12 mmondor Exp $ */
+/* $Id: js_pgsql.c,v 1.12 2006/10/27 06:09:44 mmondor Exp $ */
/*
* Copyright (c) 2006, Matthew Mondor
pg_sm_PQresStatus(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
- char *res;
+ char *res;
+ JSString *str;
if (argc != 1) {
QUEUE_EXCEPTION("Wrong number of arguments");
}
res = PQresStatus(JSVAL_TO_INT(argv[0]));
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, res));
+ if ((str = JS_NewStringCopyZ(cx, res)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ goto err;
+ }
+ *rval = STRING_TO_JSVAL(str);
return JS_TRUE;
pgconn_m_PQdb(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
- PGconn *pgc;
- char *str;
+ PGconn *pgc;
+ char *str;
+ JSString *jstr;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
assert(pgc != NULL);
str = PQdb(pgc);
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+ if ((jstr = JS_NewStringCopyZ(cx, str)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(jstr);
return JS_TRUE;
}
pgconn_m_PQuser(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
- PGconn *pgc;
- char *str;
+ PGconn *pgc;
+ char *str;
+ JSString *jstr;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
assert(pgc != NULL);
str = PQuser(pgc);
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+ if ((jstr = JS_NewStringCopyZ(cx, str)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(jstr);
return JS_TRUE;
}
pgconn_m_PQpass(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
- PGconn *pgc;
- char *str;
+ PGconn *pgc;
+ char *str;
+ JSString *jstr;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
assert(pgc != NULL);
str = PQpass(pgc);
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+ if ((jstr = JS_NewStringCopyZ(cx, str)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(jstr);
return JS_TRUE;
}
pgconn_m_PQhost(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
- PGconn *pgc;
- char *str;
+ PGconn *pgc;
+ char *str;
+ JSString *jstr;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
assert(pgc != NULL);
str = PQhost(pgc);
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+ if ((jstr = JS_NewStringCopyZ(cx, str)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(jstr);
return JS_TRUE;
}
pgconn_m_PQport(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
- PGconn *pgc;
- char *str;
+ PGconn *pgc;
+ char *str;
+ JSString *jstr;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
assert(pgc != NULL);
str = PQport(pgc);
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+ if ((jstr = JS_NewStringCopyZ(cx, str)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(jstr);
return JS_TRUE;
}
pgconn_m_PQtty(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
- PGconn *pgc;
- char *str;
+ PGconn *pgc;
+ char *str;
+ JSString *jstr;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
assert(pgc != NULL);
str = PQtty(pgc);
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+ if ((jstr = JS_NewStringCopyZ(cx, str)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(jstr);
return JS_TRUE;
}
pgconn_m_PQoptions(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
- PGconn *pgc;
- char *str;
+ PGconn *pgc;
+ char *str;
+ JSString *jstr;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
assert(pgc != NULL);
str = PQoptions(pgc);
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+ if ((jstr = JS_NewStringCopyZ(cx, str)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(jstr);
return JS_TRUE;
}
pgc = JS_GetInstancePrivate(cx, obj, &pgconn_class, NULL);
assert(pgc != NULL);
- if ((str = PQparameterStatus(pgc, param)) != NULL)
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+ if ((str = PQparameterStatus(pgc, param)) != NULL) {
+ JSString *jstr;
+
+ if ((jstr = JS_NewStringCopyZ(cx, str)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(jstr);
+ }
return JS_TRUE;
}
pgconn_m_PQerrorMessage(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
jsval *rval)
{
- PGconn *pgc;
- char *str;
+ PGconn *pgc;
+ char *str;
+ JSString *jstr;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
assert(pgc != NULL);
str = PQerrorMessage(pgc);
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+ if ((jstr = JS_NewStringCopyZ(cx, str)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(jstr);
return JS_TRUE;
}
goto err;
}
- if ((str = JS_NewStringCopyN(cx, buffer, (size_t)size)) == NULL) {
+ if ((str = JS_NewStringCopyN(cx, buffer, (size_t)ret)) == NULL) {
QUEUE_EXCEPTION("Out of memory!");
goto err;
}
{
PGresult *pgr;
+ *rval = OBJECT_TO_JSVAL(NULL);
+
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
- *rval = OBJECT_TO_JSVAL(NULL);
return JS_FALSE;
}
js_map_remove(omap);
}
- *rval = OBJECT_TO_JSVAL(NULL);
-
return JS_TRUE;
}
{
PGresult *pgr;
char *res;
+ JSString *str;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
assert(pgr != NULL);
res = PQresultErrorMessage(pgr);
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, res));
+ if ((str = JS_NewStringCopyZ(cx, res)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(str);
return JS_TRUE;
}
{
PGresult *pgr;
char *res;
+ JSString *str;
if (argc != 1) {
QUEUE_EXCEPTION("Wrong number of arguments");
assert(pgr != NULL);
res = PQresultErrorField(pgr, JSVAL_TO_INT(argv[0]));
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, res));
+ if ((str = JS_NewStringCopyZ(cx, res)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(str);
return JS_TRUE;
{
PGresult *pgr;
char *res;
+ JSString *str;
if (argc != 1) {
QUEUE_EXCEPTION("Wrong number of arguments");
assert(pgr != NULL);
res = PQfname(pgr, JSVAL_TO_INT(argv[0]));
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, res));
+ if ((str = JS_NewStringCopyZ(cx, res)) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ goto err;
+ }
+ *rval = STRING_TO_JSVAL(str);
return JS_TRUE;
jsval *rval)
{
PGresult *pgr;
+ JSBool v;
if (argc != 2) {
QUEUE_EXCEPTION("Wrong number of arguments");
pgr = JS_GetInstancePrivate(cx, obj, &pgresult_class, NULL);
assert(pgr != NULL);
- *rval = BOOLEAN_TO_JSVAL(PQgetisnull(pgr, JSVAL_TO_INT(argv[0]),
- JSVAL_TO_INT(argv[1])));
+ v = PQgetisnull(pgr, JSVAL_TO_INT(argv[0]), JSVAL_TO_INT(argv[1]));
+ *rval = BOOLEAN_TO_JSVAL(v);
return JS_TRUE;
jsval *rval)
{
PGresult *pgr;
+ JSString *str;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
pgr = JS_GetInstancePrivate(cx, obj, &pgresult_class, NULL);
assert(pgr != NULL);
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, PQcmdStatus(pgr)));
+ if ((str = JS_NewStringCopyZ(cx, PQcmdStatus(pgr))) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(str);
return JS_TRUE;
}
jsval *rval)
{
PGresult *pgr;
+ JSString *str;
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
pgr = JS_GetInstancePrivate(cx, obj, &pgresult_class, NULL);
assert(pgr != NULL);
- *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, PQcmdTuples(pgr)));
+ if ((str = JS_NewStringCopyZ(cx, PQcmdTuples(pgr))) == NULL) {
+ QUEUE_EXCEPTION("Internal error!");
+ *rval = OBJECT_TO_JSVAL(NULL);
+ return JS_FALSE;
+ }
+ *rval = STRING_TO_JSVAL(str);
return JS_TRUE;
}
{
PGcancel *pgc;
+ *rval = OBJECT_TO_JSVAL(NULL);
+
if (argc != 0) {
QUEUE_EXCEPTION("Function allows no arguments");
- *rval = OBJECT_TO_JSVAL(NULL);
return JS_FALSE;
}
(void) JS_SetPrivate(cx, obj, NULL);
}
- *rval = OBJECT_TO_JSVAL(NULL);
return JS_TRUE;
}