From 641e3bbdf33e93205342939bddd4e2d49afe5d1e Mon Sep 17 00:00:00 2001 From: miker Date: Sun, 27 May 2007 00:49:10 +0000 Subject: [PATCH] http://list.georgialibraries.org/pipermail/open-ils-dev/2007-May/001092.html 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 | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/libstack/osrfConfig.c b/src/libstack/osrfConfig.c index a172a2b..a852625 100644 --- a/src/libstack/osrfConfig.c +++ b/src/libstack/osrfConfig.c @@ -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); -- 2.11.0