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

Reply via email to