[open-ils-commits] r8935 - in branches/acq-experiment: . Open-ILS/include/openils Open-ILS/src/c-apps

svn at svn.open-ils.org svn at svn.open-ils.org
Sun Mar 9 13:14:27 EDT 2008


Author: dbs
Date: 2008-03-09 12:41:31 -0400 (Sun, 09 Mar 2008)
New Revision: 8935

Modified:
   branches/acq-experiment/Makefile
   branches/acq-experiment/Open-ILS/include/openils/oils_event.h
   branches/acq-experiment/Open-ILS/include/openils/oils_utils.h
   branches/acq-experiment/Open-ILS/src/c-apps/oils_dataloader.c
   branches/acq-experiment/Open-ILS/src/c-apps/oils_event.c
   branches/acq-experiment/Open-ILS/src/c-apps/oils_idl-core.c
   branches/acq-experiment/Open-ILS/src/c-apps/oils_utils.c
Log:
Merge trunk changes to enable building acq and trunk on same box

svn merge -r8456:8457 svn://svn.open-ils.org/ILS/trunk .
svn merge -r8498:8499 svn://svn.open-ils.org/ILS/trunk .
svn merge -r8547:8552 svn://svn.open-ils.org/ILS/trunk .


Modified: branches/acq-experiment/Makefile
===================================================================
--- branches/acq-experiment/Makefile	2008-03-09 04:49:58 UTC (rev 8934)
+++ branches/acq-experiment/Makefile	2008-03-09 16:41:31 UTC (rev 8935)
@@ -1,4 +1,3 @@
-#!/bin/bash
 # vim:noet:ts=4
 # --------------------------------------------------------------------
 # Copyright (C) 2005  Georgia Public Library Service 
@@ -15,6 +14,8 @@
 # GNU General Public License for more details.
 # --------------------------------------------------------------------
 
+SHELL=/bin/bash
+
 all: build
 
 verbose:	oldconfig

Modified: branches/acq-experiment/Open-ILS/include/openils/oils_event.h
===================================================================
--- branches/acq-experiment/Open-ILS/include/openils/oils_event.h	2008-03-09 04:49:58 UTC (rev 8934)
+++ branches/acq-experiment/Open-ILS/include/openils/oils_event.h	2008-03-09 16:41:31 UTC (rev 8935)
@@ -20,37 +20,36 @@
 
 
 /** Creates a new event.  User is responsible for freeing event with oilsEventFree */
-oilsEvent* oilsNewEvent( char* file, int line, char* event );
+oilsEvent* oilsNewEvent( const char* file, int line, const char* event );
 
 /** Creates a new event with payload.  
  * User is responsible for freeing event with oilsEventFree */
-oilsEvent* oilsNewEvent2( char* file, int line, char* event, jsonObject* payload );
+oilsEvent* oilsNewEvent2( const char* file, int line, const char* event,
+		const jsonObject* payload );
 
 /** Creates a new event with permission and permission location.  
  * User is responsible for freeing event with oilsEventFree */
-oilsEvent* oilsNewEvent3( char* file, int line, char* event, char* perm, int permloc );
+oilsEvent* oilsNewEvent3( const char* file, int line, const char* event,
+		const char* perm, int permloc );
 
 /** Creates a new event with permission, permission location, and payload.  
  * User is responsible for freeing event with oilsEventFree */
-oilsEvent* oilsNewEvent4( char* file, int line, 
-		char* event, char* perm, int permloc, jsonObject* payload );
+oilsEvent* oilsNewEvent4( const char* file, int line, const char* event,
+		const char* perm, int permloc, const jsonObject* payload );
 
 /** Sets the permission info for the event */
-void oilsEventSetPermission( oilsEvent* event, char* perm, int permloc );
+void oilsEventSetPermission( oilsEvent* event, const char* perm, int permloc );
 
 /* Sets the payload for the event 
  * This clones the payload, so the user is responsible
  * for handling the payload object's memory
  * */
-void oilsEventSetPayload( oilsEvent* event, jsonObject* payload );
+void oilsEventSetPayload( oilsEvent* event, const jsonObject* payload );
 
 /** Creates the JSON associated with an event.  The JSON should NOT be
  * freed by the user.  It will be freed by oilsEventFree */
 jsonObject* oilsEventToJSON( oilsEvent* event );
 
-/* Parses the events file */
-void _oilsEventParseEvents();
-
 /* Frees an event object */
 void oilsEventFree( oilsEvent* event );
 

Modified: branches/acq-experiment/Open-ILS/include/openils/oils_utils.h
===================================================================
--- branches/acq-experiment/Open-ILS/include/openils/oils_utils.h	2008-03-09 04:49:58 UTC (rev 8934)
+++ branches/acq-experiment/Open-ILS/include/openils/oils_utils.h	2008-03-09 16:41:31 UTC (rev 8935)
@@ -17,7 +17,7 @@
   @param idl_filename If not provided, we'll fetch the 
   filename from the settings server
  */
-osrfHash* oilsInitIDL( char* idl_filename );
+osrfHash* oilsInitIDL( const char* idl_filename );
 
 /**
   Returns the string value for field 'field' in the given object.

Modified: branches/acq-experiment/Open-ILS/src/c-apps/oils_dataloader.c
===================================================================
--- branches/acq-experiment/Open-ILS/src/c-apps/oils_dataloader.c	2008-03-09 04:49:58 UTC (rev 8934)
+++ branches/acq-experiment/Open-ILS/src/c-apps/oils_dataloader.c	2008-03-09 16:41:31 UTC (rev 8935)
@@ -12,20 +12,20 @@
 #define CSTORE "open-ils.cstore"
 #define APPNAME "oils_dataloader"
 
-#define ESUCCESS 0
-#define ECOMMITERROR -1
-#define ECOMMANDERROR -2
-#define EROLLBACKERROR -3
+#define E_SUCCESS 0
+#define E_COMMITERROR -1
+#define E_COMMANDERROR -2
+#define E_ROLLBACKERROR -3
 
-int sendCommand ( char* );
-int startTransaction ( );
-int commitTransaction ( );
-int rollbackTransaction ( );
+static int sendCommand ( const char* );
+static int startTransaction ( );
+static int commitTransaction ( );
+static int rollbackTransaction ( );
 
 
-osrfHash* mnames = NULL;
-osrfAppSession* session = NULL;
-char* trans_id = NULL;
+static osrfHash* mnames = NULL;
+static osrfAppSession* session = NULL;
+static char* trans_id = NULL;
 
 int main (int argc, char **argv) {
 	if( argc < 4 ) {
@@ -80,12 +80,12 @@
 		}
 		buffer_fadd(_method_name, ".%s", method);
 
-		char* m = buffer_data(_method_name);
+		char* m = buffer_release(_method_name);
 		osrfHashSet( mnames, m, classname );
 
 		osrfLogDebug(OSRF_LOG_MARK, "Constructed %s method named %s for %s", method, m, classname);
 
-		buffer_free(_method_name);
+		free(_fm);
 	}
 
 	free(config);
@@ -124,11 +124,11 @@
 					if (!rollbackTransaction()) {
 						osrfAppSessionFree(session);
 						osrfLogError(OSRF_LOG_MARK, "An error occured while attempting to complete a transaction");
-						return EROLLBACKERROR;
+						return E_ROLLBACKERROR;
 					}
 
 					osrfAppSessionFree(session);
-					return ECOMMANDERROR;
+					return E_COMMANDERROR;
 				}
 
 				counter++;
@@ -143,29 +143,30 @@
 		}
 	}
 
+	buffer_free(json);
+
 	// clean up, commit, go away
 	if (!commitTransaction()) {
 		osrfLogError(OSRF_LOG_MARK, "An error occured while attempting to complete a transaction");
 		osrfAppSessionFree(session);
-		return ECOMMITERROR;
+		return E_COMMITERROR;
 	}
 
 	osrfAppSessionFree(session);
 	free(method);
 
-	return ESUCCESS;
+	return E_SUCCESS;
 }
 
-int commitTransaction () {
+static int commitTransaction () {
 	int ret = 1;
-	jsonObject* data;
+	const jsonObject* data;
 	int req_id = osrfAppSessionMakeRequest( session, NULL, "open-ils.cstore.transaction.commit", 1, NULL );
 	osrf_message* res = osrfAppSessionRequestRecv( session, req_id, 5 );
-	if ( (data = jsonObjectClone(osrfMessageGetResult(res))) ) {
+	if ( (data = osrfMessageGetResult(res)) ) {
 		if(!(trans_id = jsonObjectGetString(data))) {
 			ret = 0;
 		}
-		jsonObjectFree(data);
 	} else {
 		ret = 0;
 	}
@@ -174,16 +175,15 @@
 	return ret;
 }
 
-int rollbackTransaction () {
+static int rollbackTransaction () {
 	int ret = 1;
-	jsonObject* data;
+	const jsonObject* data;
 	int req_id = osrfAppSessionMakeRequest( session, NULL, "open-ils.cstore.transaction.rollback", 1, NULL );
 	osrf_message* res = osrfAppSessionRequestRecv( session, req_id, 5 );
-	if ( (data = jsonObjectClone(osrfMessageGetResult(res))) ) {
+	if ( (data = osrfMessageGetResult(res)) ) {
 		if(!(trans_id = jsonObjectGetString(data))) {
 			ret = 0;
 		}
-		jsonObjectFree(data);
 	} else {
 		ret = 0;
 	}
@@ -192,7 +192,7 @@
 	return ret;
 }
 
-int startTransaction () {
+static int startTransaction () {
 	int ret = 1;
 	jsonObject* data;
 	int req_id = osrfAppSessionMakeRequest( session, NULL, "open-ils.cstore.transaction.begin", 1, NULL );
@@ -209,7 +209,7 @@
 	return ret;
 }
 
-int sendCommand ( char* json ) {
+static int sendCommand ( const char* json ) {
 	int ret = 1;
 	jsonObject* item = jsonParseString(json);
 

Modified: branches/acq-experiment/Open-ILS/src/c-apps/oils_event.c
===================================================================
--- branches/acq-experiment/Open-ILS/src/c-apps/oils_event.c	2008-03-09 04:49:58 UTC (rev 8934)
+++ branches/acq-experiment/Open-ILS/src/c-apps/oils_event.c	2008-03-09 16:41:31 UTC (rev 8935)
@@ -3,65 +3,82 @@
 #include <libxml/tree.h>
 #include "opensrf/osrf_settings.h"
 
-osrfHash* __oilsEventEvents = NULL;
-osrfHash* __oilsEventDescriptions = NULL;
+static void _oilsEventParseEvents();
 
-oilsEvent* oilsNewEvent( char* file, int line, char* event ) {
+// The following two osrfHashes are created when we
+// create the first osrfEvent, and are never freed.
+
+static osrfHash* _oilsEventEvents = NULL;
+static osrfHash* _oilsEventDescriptions = NULL;
+
+oilsEvent* oilsNewEvent( const char* file, int line, const char* event ) {
 	if(!event) return NULL;
 	osrfLogInfo(OSRF_LOG_MARK, "Creating new event: %s", event);
-	if(!__oilsEventEvents) _oilsEventParseEvents();
-	oilsEvent* evt =  (oilsEvent*) safe_malloc(sizeof(oilsEvent));
+	if(!_oilsEventEvents) _oilsEventParseEvents();
+	oilsEvent* evt = safe_malloc(sizeof(oilsEvent));
 	evt->event = strdup(event);
+	evt->perm = NULL;
 	evt->permloc = -1;
+	evt->payload = NULL;
+	evt->json = NULL;
 	if(file) evt->file = strdup(file);
+	else evt->file = NULL;
 	evt->line = line;
 	return evt;
 }
 
-oilsEvent* oilsNewEvent2( char* file, int line, char* event, jsonObject* payload ) {
+oilsEvent* oilsNewEvent2( const char* file, int line, const char* event,
+		const jsonObject* payload ) {
 	oilsEvent* evt = oilsNewEvent(file, line, event);
-	oilsEventSetPayload(evt, payload);
+	if(payload) evt->payload = jsonObjectClone(payload);
 	return evt;
 }
 
-oilsEvent* oilsNewEvent3( char* file, int line, char* event, char* perm, int permloc ) {
+oilsEvent* oilsNewEvent3( const char* file, int line, const char* event,
+		const char* perm, int permloc ) {
 	oilsEvent* evt = oilsNewEvent(file, line, event);
-	oilsEventSetPermission( evt, perm, permloc );
+	if(perm) {
+		evt->perm = strdup(perm);
+		evt->permloc = permloc;
+	}
 	return evt;
 }
 
-oilsEvent* oilsNewEvent4( char* file, int line, 
-			char* event, char* perm, int permloc, jsonObject* payload ) {
+oilsEvent* oilsNewEvent4( const char* file, int line, const char* event,
+		const char* perm, int permloc, const jsonObject* payload ) {
 	oilsEvent* evt = oilsNewEvent3( file, line, event, perm, permloc );
-	if(evt) oilsEventSetPayload( evt, payload );
+	if(payload) evt->payload = jsonObjectClone(payload);
 	return evt;
 }
 
-void oilsEventSetPermission( oilsEvent* event, char* perm, int permloc ) {
+void oilsEventSetPermission( oilsEvent* event, const char* perm, int permloc ) {
 	if(!(event && perm)) return;
+	if(event->perm) free(event->perm);
 	event->perm = strdup(perm);
 	event->permloc = permloc;
 }
 
-void oilsEventSetPayload( oilsEvent* event, jsonObject* payload ) {
+void oilsEventSetPayload( oilsEvent* event, const jsonObject* payload ) {
 	if(!(event && payload)) return;
+	if(event->payload) jsonObjectFree(event->payload);
 	event->payload = jsonObjectClone(payload);
 }
 
 
 void oilsEventFree( oilsEvent* event ) {
 	if(!event) return;
+	free(event->event);
 	free(event->perm);
 	free(event->file);
 	if(event->json) jsonObjectFree(event->json);
-	else jsonObjectFree(event->payload);
+	if(event->payload) jsonObjectFree(event->payload);
 	free(event);
 }
 
 
 jsonObject* oilsEventToJSON( oilsEvent* event ) {
 	if(!event) return NULL;
-	char* code = osrfHashGet( __oilsEventEvents, event->event );
+	char* code = osrfHashGet( _oilsEventEvents, event->event );
 
 	if(!code) {
 		osrfLogError(OSRF_LOG_MARK,  "No such event name: %s", event->event );
@@ -71,7 +88,7 @@
 
 	char* lang = "en-US"; /* assume this for now */
 	char* desc = NULL;
-	osrfHash* h = osrfHashGet(__oilsEventDescriptions, lang);
+	osrfHash* h = osrfHashGet(_oilsEventDescriptions, lang);
 	if(h) {
 		osrfLogDebug(OSRF_LOG_MARK, "Loaded event lang hash for %s",lang);
 		desc = osrfHashGet(h, code);
@@ -93,12 +110,14 @@
 	if(event->perm) jsonObjectSetKey( json, "ilsperm", jsonNewObject(event->perm) );
 	if(event->permloc != -1) jsonObjectSetKey( json, "ilspermloc", jsonNewNumberObject(event->permloc) );
 	if(event->payload) jsonObjectSetKey( json, "payload", event->payload );
+	
+	if(event->json) jsonObjectFree(event->json);
 	event->json = json;
 	return json;
 }
 
-
-void _oilsEventParseEvents() {
+/* Parses the events file */
+static void _oilsEventParseEvents() {
 	
 	char* xml = osrf_settings_host_value("/ils_events");
 
@@ -110,8 +129,8 @@
 	xmlDocPtr doc = xmlParseFile(xml);
 	free(xml);
 	int success = 0;
-	__oilsEventEvents = osrfNewHash();
-	__oilsEventDescriptions = osrfNewHash();
+	_oilsEventEvents = osrfNewHash();
+	_oilsEventDescriptions = osrfNewHash();
 
 	if( doc ) {
 		xmlNodePtr root = xmlDocGetRootElement(doc);
@@ -122,7 +141,7 @@
 					xmlChar* code = xmlGetProp( child, BAD_CAST "code");
 					xmlChar* textcode = xmlGetProp( child, BAD_CAST "textcode");
 					if( code && textcode ) {
-						osrfHashSet( __oilsEventEvents, code, (char*) textcode );
+						osrfHashSet( _oilsEventEvents, code, (char*) textcode );
 						success = 1;
 					}
 
@@ -136,10 +155,10 @@
 							if(lang) {
 								osrfLogDebug(OSRF_LOG_MARK, "Loaded event lang: %s", (char*) lang);
 								osrfHash* langHash = osrfHashGet(
-									__oilsEventDescriptions, (char*) lang);
+									_oilsEventDescriptions, (char*) lang);
 								if(!langHash) {
 									langHash = osrfNewHash();
-									osrfHashSet(__oilsEventDescriptions, langHash, (char*) lang);
+									osrfHashSet(_oilsEventDescriptions, langHash, (char*) lang);
 								}
 								char* content;
 								if( desc->children && (content = (char*) desc->children->content) ) {

Modified: branches/acq-experiment/Open-ILS/src/c-apps/oils_idl-core.c
===================================================================
--- branches/acq-experiment/Open-ILS/src/c-apps/oils_idl-core.c	2008-03-09 04:49:58 UTC (rev 8934)
+++ branches/acq-experiment/Open-ILS/src/c-apps/oils_idl-core.c	2008-03-09 16:41:31 UTC (rev 8935)
@@ -87,6 +87,7 @@
 						osrfStringArrayAdd(controller, strdup(_controller_class));
 					}
 				}
+				free(controller_list);
 			}
 			osrfHashSet( usrData, controller, "controller");
 
@@ -245,6 +246,7 @@
 									osrfStringArrayAdd(map, strdup(_map_class));
 								}
 							}
+							free(map_list);
 						}
 						osrfHashSet( _tmp, map, "map");
 
@@ -283,11 +285,11 @@
 				}
 
 				_cur = _cur->next;
-			}
+			} // end while
 		}
 
 		kid = kid->next;
-	}
+	} // end while
 
 	osrfLogInfo(OSRF_LOG_MARK, "...IDL XML parsed");
 

Modified: branches/acq-experiment/Open-ILS/src/c-apps/oils_utils.c
===================================================================
--- branches/acq-experiment/Open-ILS/src/c-apps/oils_utils.c	2008-03-09 04:49:58 UTC (rev 8934)
+++ branches/acq-experiment/Open-ILS/src/c-apps/oils_utils.c	2008-03-09 16:41:31 UTC (rev 8935)
@@ -1,27 +1,32 @@
 #include "openils/oils_utils.h"
 #include "openils/oils_idl.h"
 
-osrfHash* oilsInitIDL(char* idl_filename) {
+osrfHash* oilsInitIDL(const char* idl_filename) {
 
-    int freeme = 0;
-    if(!idl_filename) {
-	    idl_filename = osrf_settings_host_value("/IDL");
-        freeme = 1;
-    }
+	char* freeable_filename = NULL;
+	const char* filename;
 
-	if (!idl_filename) {
+	if(idl_filename)
+		filename = idl_filename;
+	else {
+		freeable_filename = osrf_settings_host_value("/IDL");
+		filename = freeable_filename;
+	}
+
+	if (!filename) {
 		osrfLogError(OSRF_LOG_MARK, "No settings config for '/IDL'");
 		return NULL;
 	}
 
-    osrfLogInfo(OSRF_LOG_MARK, "Parsing IDL %s", idl_filename);
+	osrfLogInfo(OSRF_LOG_MARK, "Parsing IDL %s", filename);
 
-	if (!oilsIDLInit( idl_filename )) {
-		osrfLogError(OSRF_LOG_MARK, "Problem loading IDL file [%s]!", idl_filename);
+	if (!oilsIDLInit( filename )) {
+		osrfLogError(OSRF_LOG_MARK, "Problem loading IDL file [%s]!", filename);
+		if(freeable_filename) free(freeable_filename);
 		return NULL;
 	}
 
-    if(freeme) free(idl_filename);
+	if(freeable_filename) free(freeable_filename);
 	return oilsIDL();
 }
 
@@ -143,6 +148,7 @@
 	if(!card) { jsonObjectFree(params); return NULL; }
 
 	char* usr = oilsFMGetString(card, "usr");
+	jsonObjectFree(card);
 	if(!usr) return NULL;
 	double iusr = strtod(usr, NULL);
 	free(usr);



More information about the open-ils-commits mailing list