Changeset: b7eae79f6c2e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b7eae79f6c2e
Modified Files:
        sql/backends/monet5/sql_statistics.c
Branch: Oct2014
Log Message:

Plug memory leak + prettify code.


diffs (60 lines):

diff --git a/sql/backends/monet5/sql_statistics.c 
b/sql/backends/monet5/sql_statistics.c
--- a/sql/backends/monet5/sql_statistics.c
+++ b/sql/backends/monet5/sql_statistics.c
@@ -133,33 +133,41 @@ sql_analyze(Client cntxt, MalBlkPtr mb, 
                                                sorted = BATtordered(bn);
 
                                                // Gather the min/max value for 
builtin types
-#define minmax(TYPE,FMT) \
-{\
-       TYPE *val=0;\
-       val= BATmax(bn,0);\
-       if (val == NULL || ATOMcmp(bn->ttype,val, ATOMnil(bn->ttype))== 0)\
-               snprintf(maxval,8192,"nil");\
-       else snprintf(maxval,8192,FMT,*val);\
-       GDKfree(val);\
-       val= BATmin(bn,0);\
-       if (val == NULL || ATOMcmp(bn->ttype,val, ATOMnil(bn->ttype))== 0)\
-               snprintf(minval,8192,"nil");\
-       else snprintf(minval,8192,FMT,*val);\
-       GDKfree(val);\
-       break;\
-}
+#define minmax(TYPE,FMT)                                               \
+       do {                                                            \
+               TYPE *val;                                              \
+               val = BATmax(bn, NULL);                                 \
+               if (val == NULL ||                                      \
+                   ATOMcmp(bn->ttype,val, ATOMnilptr(bn->ttype)) == 0) \
+                       snprintf(maxval, 8192, "nil");                  \
+               else                                                    \
+                       snprintf(maxval, 8192, FMT, *val);              \
+               GDKfree(val);                                           \
+               val = BATmin(bn, NULL);                                 \
+               if (val == NULL ||                                      \
+                   ATOMcmp(bn->ttype,val, ATOMnilptr(bn->ttype)) == 0) \
+                       snprintf(minval, 8192, "nil");                  \
+               else                                                    \
+                       snprintf(minval, 8192, FMT, *val);              \
+               GDKfree(val);                                           \
+       } while (0)
                                                width = bn->T->width;
                                                switch (bn->ttype) {
                                                case TYPE_sht:
                                                        minmax(sht, "%d");
+                                                       break;
                                                case TYPE_int:
                                                        minmax(int, "%d");
+                                                       break;
                                                case TYPE_lng:
                                                        minmax(lng, LLFMT);
+                                                       break;
                                                case TYPE_flt:
                                                        minmax(flt, "%f");
+                                                       break;
                                                case TYPE_dbl:
                                                        minmax(dbl, "%f");
+                                                       break;
                                                case TYPE_str:
                                                {
                                                        BUN p, q;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to