Changeset: 622f9cda01ca for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=622f9cda01ca
Modified Files:
        gdk/gdk_batop.c
Branch: Jul2017
Log Message:

Some minor code improvements.


diffs (115 lines):

diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -174,8 +174,12 @@ insert_string_bat(BAT *b, BAT *n, BAT *s
                                }
                                memcpy(b->tvheap->base + toff, n->tvheap->base, 
n->tvheap->free);
                                b->tvheap->free = toff + n->tvheap->free;
-                               /* flush double-elimination hash table */
-                               memset(b->tvheap->base, 0, GDK_STRHASHSIZE);
+                               if (toff > 0) {
+                                       /* flush double-elimination
+                                        * hash table */
+                                       memset(b->tvheap->base, 0,
+                                              GDK_STRHASHSIZE);
+                               }
                        }
                }
                if (toff != ~(size_t) 0) {
@@ -195,34 +199,6 @@ insert_string_bat(BAT *b, BAT *n, BAT *s
                                        goto bunins_failed;
                                }
                        }
-                       switch (b->twidth) {
-                       case 1:
-                               b->ttype = TYPE_bte;
-                               tp = &tbv;
-                               break;
-                       case 2:
-                               b->ttype = TYPE_sht;
-                               tp = &tsv;
-                               break;
-#if SIZEOF_VAR_T == 8
-                       case 4:
-                               b->ttype = TYPE_int;
-                               tp = &tiv;
-                               break;
-                       case 8:
-                               b->ttype = TYPE_lng;
-                               tp = &v;
-                               break;
-#else
-                       case 4:
-                               b->ttype = TYPE_int;
-                               tp = &v;
-                               break;
-#endif
-                       default:
-                               assert(0);
-                       }
-                       b->tvarsized = 0;
                }
        } else if (unshare_string_heap(b) != GDK_SUCCEED)
                return GDK_FAIL;
@@ -250,6 +226,34 @@ insert_string_bat(BAT *b, BAT *n, BAT *s
 #endif
                const var_t *restrict tvp = (const var_t *) Tloc(n, 0);
 
+               switch (b->twidth) {
+               case 1:
+                       b->ttype = TYPE_bte;
+                       tp = &tbv;
+                       break;
+               case 2:
+                       b->ttype = TYPE_sht;
+                       tp = &tsv;
+                       break;
+#if SIZEOF_VAR_T == 8
+               case 4:
+                       b->ttype = TYPE_int;
+                       tp = &tiv;
+                       break;
+               case 8:
+                       b->ttype = TYPE_lng;
+                       tp = &v;
+                       break;
+#else
+               case 4:
+                       b->ttype = TYPE_int;
+                       tp = &v;
+                       break;
+#endif
+               default:
+                       assert(0);
+               }
+               b->tvarsized = 0;
                for (;;) {
                        if (cand) {
                                if (cand == candend)
@@ -299,6 +303,8 @@ insert_string_bat(BAT *b, BAT *n, BAT *s
                        }
                        bunfastapp(b, tp);
                }
+               b->tvarsized = 1;
+               b->ttype = TYPE_str;
        } else if (b->tvheap->free < n->tvheap->free / 2 ||
                   GDK_ELIMDOUBLES(b->tvheap)) {
                /* if b's string heap is much smaller than n's string
@@ -394,8 +400,6 @@ insert_string_bat(BAT *b, BAT *n, BAT *s
                        r++;
                }
        }
-       b->tvarsized = 1;
-       b->ttype = TYPE_str;
        return GDK_SUCCEED;
       bunins_failed:
        b->tvarsized = 1;
@@ -562,7 +566,7 @@ BATappend(BAT *b, BAT *n, BAT *s, bit fo
                        b->tnokey[0] = b->tnokey[1] = 0;
                }
        } else {
-               BUN last = BUNlast(b) - 1;
+               BUN last = r - 1;
                BATiter ni = bat_iterator(n);
                BATiter bi = bat_iterator(b);
                int xx = ATOMcmp(b->ttype, BUNtail(ni, start), BUNtail(bi, 
last));
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to