Changeset: bf0453acb4fe for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bf0453acb4fe
Modified Files:
        clients/Tests/exports.stable.out
        clients/mapilib/msettings.c
        clients/mapilib/msettings.h
Branch: odbc-tls
Log Message:

Crude hack to differentiate malloc failures from other failures


diffs (60 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
@@ -751,6 +751,7 @@ enum msetting_tls_verify msettings_conne
 const char *msettings_connect_unix(const msettings *mp);
 msettings *msettings_create(void);
 msettings *msettings_destroy(msettings *mp);
+bool msettings_malloc_failed(msettings_error err);
 bool msettings_parse_url(msettings *mp, const char *url, char **error_buffer);
 bool msettings_validate(msettings *mp, char **errmsg);
 const char *wsaerror(int);
diff --git a/clients/mapilib/msettings.c b/clients/mapilib/msettings.c
--- a/clients/mapilib/msettings.c
+++ b/clients/mapilib/msettings.c
@@ -27,6 +27,16 @@
 
 #define FATAL() do { fprintf(stderr, "\n\n abort in msettings.c: %s\n\n", 
__func__); abort(); } while (0)
 
+static const char * const MALLOC_FAILED = "malloc failed";
+
+bool
+msettings_malloc_failed(msettings_error err)
+{
+       return ((const char*)err == (const char*)MALLOC_FAILED);
+}
+
+
+
 int msetting_parse_bool(const char *text)
 {
        static struct { const char *word; bool value; } variants[] = {
@@ -347,7 +357,7 @@ msetting_set_string(msettings *mp, mparm
 
        char *v = strdup(value);
        if (!v)
-               return "malloc failed";
+               return MALLOC_FAILED;
        if (p->must_free)
                free(p->str);
        p->str = v;
@@ -506,7 +516,7 @@ msetting_set_ignored(msettings *mp, cons
                free(my_key);
                free(my_value);
                free(new_unknowns);
-               return "malloc failed while setting ignored parameter";
+               return MALLOC_FAILED;
        }
 
        new_unknowns[2 * n] = my_key;
diff --git a/clients/mapilib/msettings.h b/clients/mapilib/msettings.h
--- a/clients/mapilib/msettings.h
+++ b/clients/mapilib/msettings.h
@@ -107,6 +107,7 @@ typedef struct msettings msettings;
 
 /* NULL means OK. non-NULL is error message. Valid until next call. Do not 
free. */
 typedef const char *msettings_error;
+mapi_export bool msettings_malloc_failed(msettings_error err);
 
 /* returns NULL if could not allocate */
 mapi_export msettings *msettings_create(void);
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to