http://list.georgialibraries.org/pipermail/open-ils-dev/2007-May/001092.html
authormiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Sun, 27 May 2007 00:49:10 +0000 (00:49 +0000)
committermiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Sun, 27 May 2007 00:49:10 +0000 (00:49 +0000)
Patch from Scott McKellar to:

 * Make default config object pointer static (module local)
 * Clean up variable name to remove leading underscores
 * Remove think-o which would deallocate the default config when
   loading any other
 * Fix error log message

Applied with minor change to the log message fix

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@916 9efc2488-bf62-4759-914b-345cdb29e865

src/libstack/osrfConfig.c

index a172a2b..a852625 100644 (file)
@@ -1,11 +1,15 @@
 /* defines the currently used bootstrap config file */
 #include "osrfConfig.h"
 
-osrfConfig* __osrfConfigDefault = NULL;
+static osrfConfig* osrfConfigDefault = NULL;
 
 
 void osrfConfigSetDefaultConfig(osrfConfig* cfg) {
-       if(cfg) __osrfConfigDefault = cfg;
+       if(cfg) {
+               if( osrfConfigDefault )
+                       osrfConfigFree( osrfConfigDefault );
+               osrfConfigDefault = cfg;
+       }
 }
 
 void osrfConfigFree(osrfConfig* cfg) {
@@ -18,13 +22,13 @@ void osrfConfigFree(osrfConfig* cfg) {
 
 
 int osrfConfigHasDefaultConfig() {
-       return ( __osrfConfigDefault != NULL );
+       return ( osrfConfigDefault != NULL );
 }
 
 
 void osrfConfigCleanup() { 
-       osrfConfigFree(__osrfConfigDefault); 
-       __osrfConfigDefault = NULL; 
+       osrfConfigFree(osrfConfigDefault);
+       osrfConfigDefault = NULL;
 }
 
 
@@ -37,8 +41,6 @@ void osrfConfigReplaceConfig(osrfConfig* cfg, const jsonObject* obj) {
 osrfConfig* osrfConfigInit(char* configFile, char* configContext) {
        if(!configFile) return NULL;
 
-       osrfConfigFree(__osrfConfigDefault);
-
        osrfConfig* cfg = safe_malloc(sizeof(osrfConfig));
        if(configContext) cfg->configContext = strdup(configContext);
        else cfg->configContext = NULL;
@@ -63,8 +65,8 @@ osrfConfig* osrfConfigInit(char* configFile, char* configContext) {
 char* osrfConfigGetValue(osrfConfig* cfg, char* path, ...) {
 
        if(!path) return NULL;
-       if(!cfg) cfg = __osrfConfigDefault;
-       if(!cfg) { osrfLogWarning( OSRF_LOG_MARK, "No Confif object!"); return NULL; }
+       if(!cfg) cfg = osrfConfigDefault;
+       if(!cfg) { osrfLogWarning( OSRF_LOG_MARK, "No Config object in osrfConfigGetValue()"); return NULL; }
 
        VA_LIST_TO_STRING(path);
 
@@ -88,7 +90,7 @@ char* osrfConfigGetValue(osrfConfig* cfg, char* path, ...) {
 int osrfConfigGetValueList(osrfConfig* cfg, osrfStringArray* arr, char* path, ...) {
 
        if(!arr || !path) return 0;
-       if(!cfg) cfg = __osrfConfigDefault;
+       if(!cfg) cfg = osrfConfigDefault;
        if(!cfg) { osrfLogWarning( OSRF_LOG_MARK, "No Config object!"); return -1;}
 
        VA_LIST_TO_STRING(path);