#define dprintf(...) if (gdp->debug&1) fprintf(stderr,__VA_ARGS__);
#define dprintfparsed(...) if (gdp->debug&2) fprintf(stderr,__VA_ARGS__);
+#define dprintfhash(...) if (gdp->debug&4) fprintf(stderr,__VA_ARGS__);
void initParsedArguments(parsedargs_t* pa) {
/* initialize */
{
/* this makes only sense for a sufficient number of items */
long match = -1;
- if ( im->gdes_c > 12 ) {
- gpointer value;
- gboolean ok = g_hash_table_lookup_extended(im->gdef_map,key,NULL,&value);
- if (ok){
- match = GPOINTER_TO_INT(value);
- }
- }
- else {
- long ii;
- for (ii = 0; ii < im->gdes_c - 1; ii++) {
- if ((im->gdes[ii].gf == GF_DEF
- || im->gdes[ii].gf == GF_VDEF || im->gdes[ii].gf == GF_CDEF)
- && (strcmp(im->gdes[ii].vname, key) == 0)) {
- match = ii;
- break;
- }
- }
+ gpointer value;
+ gboolean ok = g_hash_table_lookup_extended(im->gdef_map,key,NULL,&value);
+ if (ok){
+ match = GPOINTER_TO_INT(value);
}
return match;
/* remember the index for faster varfind */
char *key = gdes_fetch_key((*gdp));
if (gdp->gf == GF_DEF && !g_hash_table_lookup_extended(im->rrd_map,key,NULL,NULL)){
+ dprintfhash("ins key %s - %ld\n",key,im->gdes_c-1);
g_hash_table_insert(im->gdef_map,g_strdup(key),GINT_TO_POINTER(im->gdes_c-1));
}
free(key);
- g_hash_table_insert(im->gdef_map,g_strdup(gdp->vname),GINT_TO_POINTER(im->gdes_c-1));
-// g_hash_table_insert(im->gdef_map,gdp->vname,GINT_TO_POINTER(im->gdes_c-1));
- /* and return it */
+ if (gdp->gf == GF_DEF || gdp->gf == GF_VDEF || gdp->gf == GF_CDEF){
+ dprintfhash("ins vname %s - %ld\n",gdp->vname,im->gdes_c-1);
+ g_hash_table_insert(im->gdef_map,g_strdup(gdp->vname),GINT_TO_POINTER(im->gdes_c-1));
+ }
return gdp;
}