Changeset: c2bef9eb577a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c2bef9eb577a Modified Files: clients/Tests/exports.stable.out clients/mapilib/msettings.c clients/mapilib/msettings.h Branch: odbc_loader Log Message:
Do not track ignored parameters in msettings Lots of bookkeeping and we're not using them diffs (166 lines): diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -752,7 +752,6 @@ const char *msetting_parm_name(const mse msettings_error msetting_parse(msettings *mp, mparm parm, const char *text); int msetting_parse_bool(const char *text); msettings_error msetting_set_bool(msettings *mp, mparm parm, bool value); -msettings_error msetting_set_ignored(msettings *mp, const char *key, const char *value); msettings_error msetting_set_long(msettings *mp, mparm parm, long value); msettings_error msetting_set_named(msettings *mp, bool allow_core, const char *key, const char *value); msettings_error msetting_set_string(msettings *mp, mparm parm, const char *value) __attribute__((__nonnull__(3))); diff --git a/clients/mapilib/msettings.c b/clients/mapilib/msettings.c --- a/clients/mapilib/msettings.c +++ b/clients/mapilib/msettings.c @@ -231,9 +231,6 @@ struct msettings { struct string client_remark; struct string dummy_end_string; - char **unknown_parameters; - size_t nr_unknown; - bool lang_is_mal; bool lang_is_sql; long user_generation; @@ -259,9 +256,6 @@ const msettings msettings_default_values .sockdir = { "/tmp", false }, .binary = { "on", false }, - .unknown_parameters = NULL, - .nr_unknown = 0, - .lang_is_mal = false, .lang_is_sql = true, .unix_sock_name_buffer = NULL, @@ -284,17 +278,14 @@ msettings *msettings_create(void) msettings *msettings_clone(const msettings *orig) { msettings *mp = malloc(sizeof(*mp)); - char **unknowns = orig->nr_unknown > 0 ? calloc(2 * orig->nr_unknown, sizeof(char*)) : NULL; const char *namebuf = orig->unix_sock_name_buffer; char *cloned_name_buffer = namebuf ? strdup(namebuf) : NULL; - if (!mp || (orig->nr_unknown > 0 && !unknowns) || (namebuf && !cloned_name_buffer)) { + if (!mp || (namebuf && !cloned_name_buffer)) { free(mp); - free(unknowns); free(cloned_name_buffer); return NULL; } *mp = *orig; - mp->unknown_parameters = unknowns; mp->unix_sock_name_buffer = cloned_name_buffer; // now we have to very carefully duplicate the strings. @@ -312,22 +303,12 @@ msettings *msettings_clone(const msettin p++; } - for (size_t i = 0; i < 2 * mp->nr_unknown; i++) { - assert(orig->unknown_parameters[i]); - char *u = strdup(orig->unknown_parameters[i]); - if (u == NULL) - goto bailout; - mp->unknown_parameters[i] = u; - } - return mp; bailout: for (struct string *q = start; q < p; q++) if (q->must_free) free(q->str); - for (size_t i = 0; i < 2 * mp->nr_unknown; i++) - free(mp->unknown_parameters[i]); free(mp->unix_sock_name_buffer); free(mp); return NULL; @@ -344,13 +325,6 @@ msettings_reset(msettings *mp) free(p->str); } - // free unknown parameters - if (mp->nr_unknown) { - for (size_t i = 0; i < 2 * mp->nr_unknown; i++) - free(mp->unknown_parameters[i]); - free(mp->unknown_parameters); - } - // free the buffer free(mp->unix_sock_name_buffer); @@ -374,11 +348,6 @@ msettings_destroy(msettings *mp) if (p->must_free) free(p->str); } - for (size_t i = 0; i < mp->nr_unknown; i++) { - free(mp->unknown_parameters[2 * i]); - free(mp->unknown_parameters[2 * i + 1]); - } - free(mp->unknown_parameters); free(mp->unix_sock_name_buffer); free(mp); @@ -599,31 +568,6 @@ msetting_as_string(const msettings *mp, } } -msettings_error -msetting_set_ignored(msettings *mp, const char *key, const char *value) -{ - char *my_key = strdup(key); - char *my_value = strdup(value); - - size_t n = mp->nr_unknown; - size_t new_size = (2 * n + 2) * sizeof(char*); - char **new_unknowns = realloc(mp->unknown_parameters, new_size); - - if (!my_key || !my_value || !new_unknowns) { - free(my_key); - free(my_value); - free(new_unknowns); - return MALLOC_FAILED; - } - - new_unknowns[2 * n] = my_key; - new_unknowns[2 * n + 1] = my_value; - mp->unknown_parameters = new_unknowns; - mp->nr_unknown += 1; - - return NULL; -} - /* store named parameter */ msettings_error msetting_set_named(msettings *mp, bool allow_core, const char *key, const char *value) @@ -633,7 +577,7 @@ msetting_set_named(msettings *mp, bool a return format_error(mp, "%s: unknown parameter", key); if (parm == MP_IGNORE) - return msetting_set_ignored(mp, key, value); + return NULL; if (!allow_core && mparm_is_core(parm)) return format_error(mp, "%s: parameter not allowed here", msetting_parm_name(mp, parm)); diff --git a/clients/mapilib/msettings.h b/clients/mapilib/msettings.h --- a/clients/mapilib/msettings.h +++ b/clients/mapilib/msettings.h @@ -128,6 +128,9 @@ mapi_export bool msettings_malloc_failed /* returns NULL if could not allocate */ mapi_export msettings *msettings_create(void); + +mapi_export msettings *msettings_create_with(); + mapi_export msettings *msettings_clone(const msettings *mp); mapi_export void msettings_reset(msettings *mp); mapi_export const msettings *msettings_default; @@ -154,9 +157,6 @@ mapi_export msettings_error msetting_set mapi_export msettings_error msetting_parse(msettings *mp, mparm parm, const char *text); mapi_export char *msetting_as_string(const msettings *mp, mparm parm); -/* store ignored parameter */ -mapi_export msettings_error msetting_set_ignored(msettings *mp, const char *key, const char *value); - /* store named parameter */ mapi_export msettings_error msetting_set_named(msettings *mp, bool allow_core, const char *key, const char *value); _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org