Changeset: 6d02a93eb19a for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6d02a93eb19a Modified Files: gdk/gdk_utils.c gdk/gdk_utils.h monetdb5/modules/mal/inspect.c Branch: default Log Message:
Split the GDKenv BAT Moving towards (v)oid headed BATs calls for changing some internal ones as well. Aside from this one, we need to change BAT used in the logger (freed). diffs (95 lines): diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c --- a/gdk/gdk_utils.c +++ b/gdk/gdk_utils.c @@ -34,7 +34,8 @@ static char GDKdbfarmStr[PATHLENGTH] = { "dbfarm" }; static char GDKdbnameStr[PATHLENGTH] = { 0 }; -BAT *GDKenv = NULL; +BAT *GDKkey = NULL; +BAT *GDKval = NULL; #include <signal.h> @@ -116,10 +117,10 @@ GDKenvironment(str dbname, str dbfarm) char * GDKgetenv(const char *name) { - BUN b = BUNfnd(GDKenv, (ptr) name); + BUN b = BUNfnd(BATmirror(GDKkey), (ptr) name); if (b != BUN_NONE) { - BATiter GDKenvi = bat_iterator(GDKenv); + BATiter GDKenvi = bat_iterator(GDKval); return BUNtail(GDKenvi, b); } return NULL; @@ -160,8 +161,10 @@ GDKgetenv_int(const char *name, int def) void GDKsetenv(str name, str value) { - BUNins(GDKenv, name, value, FALSE); - BATfakeCommit(GDKenv); + BUNappend(GDKkey, name, FALSE); + BUNappend(GDKval, value, FALSE); + BATfakeCommit(GDKkey); + BATfakeCommit(GDKval); } @@ -1214,12 +1217,21 @@ GDKinit(opt *set, int setlen) HEAPcacheInit(); - GDKenv = BATnew(TYPE_str, TYPE_str, 100); - if (GDKenv == NULL) + GDKkey = BATnew(TYPE_void, TYPE_str, 100); + GDKval = BATnew(TYPE_void, TYPE_str, 100); + if (GDKkey == NULL) GDKfatal("GDKinit: Could not create environment BAT"); - BATkey(GDKenv, BOUND2BTRUE); - BATrename(GDKenv, "monet_environment"); - BATmode(GDKenv, TRANSIENT); + if (GDKval == NULL) + GDKfatal("GDKinit: Could not create environment BAT"); + BATseqbase(GDKkey,0); + BATkey(GDKkey, BOUND2BTRUE); + BATrename(GDKkey, "environment_key"); + BATmode(GDKkey, TRANSIENT); + + BATseqbase(GDKval,0); + BATkey(GDKval, BOUND2BTRUE); + BATrename(GDKval, "environment_val"); + BATmode(GDKval, TRANSIENT); n = (opt *) malloc(setlen * sizeof(opt)); for (i = 0; i < setlen; i++) { diff --git a/gdk/gdk_utils.h b/gdk/gdk_utils.h --- a/gdk/gdk_utils.h +++ b/gdk/gdk_utils.h @@ -22,7 +22,8 @@ #include <monet_options.h> -gdk_export BAT *GDKenv; +gdk_export BAT *GDKkey; +gdk_export BAT *GDKval; gdk_export char *GDKgetenv(const char *name); diff --git a/monetdb5/modules/mal/inspect.c b/monetdb5/modules/mal/inspect.c --- a/monetdb5/modules/mal/inspect.c +++ b/monetdb5/modules/mal/inspect.c @@ -488,10 +488,10 @@ INSPECTgetEnvironment(int *ret, int *ret { BAT *b, *bn; - b= VIEWhead(GDKenv); + b= VIEWhead(BATmirror(GDKkey)); if (b == 0) throw(MAL, "inspect.getEnvironment", MAL_MALLOC_FAIL); - bn= VIEWhead(BATmirror(GDKenv)); + bn= VIEWhead(BATmirror(GDKval)); if (bn == 0){ BBPreleaseref(b->batCacheid); throw(MAL, "inspect.getEnvironment", MAL_MALLOC_FAIL); _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list