[Freeswitch-svn] [commit] r8024 - freeswitch/trunk/src/mod/languages/mod_spidermonkey_odbc
Freeswitch SVN
mikej at freeswitch.org
Fri Apr 4 15:49:03 EDT 2008
Author: mikej
Date: Fri Apr 4 15:49:03 2008
New Revision: 8024
Modified:
freeswitch/trunk/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.c
Log:
add close to ODBC MODLANG-55
Modified: freeswitch/trunk/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.c
==============================================================================
--- freeswitch/trunk/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.c (original)
+++ freeswitch/trunk/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.c Fri Apr 4 15:49:03 2008
@@ -79,15 +79,15 @@
static void destroy_odbc_obj(odbc_obj_t ** objp)
{
odbc_obj_t *obj = *objp;
-
+ if (obj == NULL) return;
if (obj->stmt) {
SQLFreeHandle(SQL_HANDLE_STMT, obj->stmt);
}
- if (obj->handle) {
- switch_odbc_handle_destroy(&obj->handle);
- }
- switch_safe_free(obj->colbuf);
- switch_safe_free(obj->code);
+ if (obj->handle) {
+ switch_odbc_handle_destroy(&obj->handle);
+ }
+ switch_safe_free(obj->colbuf);
+ switch_safe_free(obj->code);
switch_safe_free(obj);
}
@@ -156,11 +156,13 @@
static void odbc_destroy(JSContext * cx, JSObject * obj)
{
- odbc_obj_t *odbc_obj = (odbc_obj_t *) JS_GetPrivate(cx, obj);
-
+ odbc_obj_t *odbc_obj;
+ if (obj == NULL) return;
+ odbc_obj = (odbc_obj_t *) JS_GetPrivate(cx, obj);
if (odbc_obj) {
destroy_odbc_obj(&odbc_obj);
- }
+ JS_SetPrivate(cx, obj, NULL);
+ }
}
static JSBool odbc_connect(JSContext * cx, JSObject * obj, uintN argc, jsval *argv, jsval *rval)
@@ -405,6 +407,12 @@
}
+static JSBool odbc_close(JSContext * cx, JSObject * obj, uintN argc, jsval *argv, jsval *rval)
+{
+ odbc_destroy(cx, obj);
+ return JS_TRUE;
+}
+
enum odbc_tinyid {
odbc_NAME
};
@@ -417,6 +425,7 @@
{"numRows", odbc_num_rows, 1},
{"nextRow", odbc_next_row, 1},
{"getData", odbc_get_data, 1},
+ {"close", odbc_close, 1},
{0}
};
More information about the Freeswitch-svn
mailing list