[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