rev 378 - trunk/modules/dbm

SVN User <[email protected]> Sat, 17 Apr 2004 20:25:34 -0400
Newsgroups gmane.comp.lang.prothon.cvs
Message-ID <[email protected]>
Author: mark
Date: 2004-04-17 20:25:31 -0400 (Sat, 17 Apr 2004)
New Revision: 378

Modified:
   trunk/modules/dbm/DBM.c
Log:
added OPEN_CHK macro to DBM.c

Modified: trunk/modules/dbm/DBM.c
===================================================================
--- trunk/modules/dbm/DBM.c	2004-04-17 23:50:32 UTC (rev 377)
+++ trunk/modules/dbm/DBM.c	2004-04-18 00:25:31 UTC (rev 378)
@@ -59,6 +59,14 @@
 
 typedef apr_dbm_t*   apr_dbm_p;
 
+#define OPEN_CHK(msg)																	\
+	if (!db) {																			\
+		char buf[512];																	\
+		apr_snprintf(buf, sizeof(buf), "attempted %s on closed DBM database", (msg));	\
+		raise_exception(ist, DBM_Exc_OBJ, buf);											\
+		return NULL;																	\
+	}
+
 #define IF_APR_DBM_ERR(db, msg1)											\
 	if (aprerr != APR_SUCCESS){												\
 		char *msg2, buf[256], errbuf[256];									\
@@ -152,8 +160,7 @@
 	apr_dbm_p db = self->data.ptr;
 	apr_datum_t key, value;
 
-	if (!db) { raise_exception(ist, DBM_Exc_OBJ, "fetching from closed dbm database"); return NULL; }
-
+	OPEN_CHK("fetch(key)");
 	STRBIN_PARAM(1, key);
 
 	aprerr = apr_dbm_fetch (db, key, &value);
@@ -167,8 +174,7 @@
 	apr_dbm_p db = self->data.ptr;
 	apr_datum_t key, value;
 
-	if (!db) { raise_exception(ist, DBM_Exc_OBJ, "storing to closed dbm database"); return NULL; }
-
+	OPEN_CHK("store(key, value)");
 	STRBIN_PARAM(1, key);
 	STRBIN_PARAM(2, value);
 
@@ -183,8 +189,7 @@
 	apr_dbm_p db = self->data.ptr;
 	apr_datum_t key;
 
-	if (!db) { raise_exception(ist, DBM_Exc_OBJ, "deleting key from closed dbm database"); return NULL; }
-
+	OPEN_CHK("delete(key)");
 	STRBIN_PARAM(1, key);
 
 	aprerr = apr_dbm_delete(db, key);
@@ -197,8 +202,7 @@
 	apr_dbm_p db = self->data.ptr;
 	apr_datum_t key;
 
-	if (!db) { raise_exception(ist, DBM_Exc_OBJ, "exists?(key) on closed dbm database"); return NULL; }
-
+	OPEN_CHK("exists?(key)");
 	STRBIN_PARAM(1, key);
 
 	if (apr_dbm_exists(db, key)) return OBJ(PR_TRUE);
@@ -210,7 +214,7 @@
 	apr_dbm_p db = self->data.ptr;
 	apr_datum_t key;
 
-	if (!db) { raise_exception(ist, DBM_Exc_OBJ, "firstKey() on closed dbm database"); return NULL; }
+	OPEN_CHK("firstKey()");
 
 	aprerr = apr_dbm_firstkey(db, &key);
 	IF_APR_DBM_ERR(db, "firstKey()");
@@ -223,8 +227,7 @@
 	apr_dbm_p db = self->data.ptr;
 	apr_datum_t key;
 
-	if (!db) { raise_exception(ist, DBM_Exc_OBJ, "nextKey(key) on closed dbm database"); return NULL; }
-
+	OPEN_CHK("nextKey(key)");
 	STRBIN_PARAM(1, key);
 
 	aprerr = apr_dbm_nextkey(db, &key);
@@ -236,8 +239,9 @@
 	apr_dbm_p db = self->data.ptr;
 	apr_datum_t data;
 
-	if (!db) { raise_exception(ist, DBM_Exc_OBJ, "nextKey(key) on closed dbm database"); return NULL; }
+	OPEN_CHK("freeDatum(data)");
 	STRBIN_PARAM(1, data);
+
 	apr_dbm_freedatum(db, data);
 	return parms[1];
 }
@@ -272,9 +276,8 @@
 
 MAIN_MODULE_INIT(DBM) {
 	MODULE_SUB_INIT(DBM);
+	MODULE_ADD_SYM(DB, getUsedNames);
 	MODULE_ADD_SYM(DB, __init__);
-	MODULE_ADD_SYM(DB, close);
-	MODULE_ADD_SYM(DB, closed_QUES);
 	MODULE_ADD_SYM(DB, fetch);
 	MODULE_ADD_SYM(DB, store);
 	MODULE_ADD_SYM(DB, delete);
@@ -282,7 +285,6 @@
 	MODULE_ADD_SYM(DB, firstKey);
 	MODULE_ADD_SYM(DB, nextKey);
 	MODULE_ADD_SYM(DB, freeDatum);
-	MODULE_ADD_SYM(DB, getUsedNames);
+	MODULE_ADD_SYM(DB, close);
+	MODULE_ADD_SYM(DB, closed_QUES);
 }
-
-