Changeset: c55453c6b9ab for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c55453c6b9ab
Modified Files:
        gdk/gdk_align.c
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_private.h
Branch: Oct2020
Log Message:

Actually unshare vheap when not a string heap.


diffs (70 lines):

diff --git a/gdk/gdk_align.c b/gdk/gdk_align.c
--- a/gdk/gdk_align.c
+++ b/gdk/gdk_align.c
@@ -285,7 +285,7 @@ VIEWreset(BAT *b)
        if (tp == 0) {
                /* only sharing the vheap */
                assert(ATOMvarsized(b->ttype));
-               return unshare_string_heap(b);
+               return unshare_varsized_heap(b);
        }
 
        BAT *v = VIEWcreate(b->hseqbase, b);
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -1055,7 +1055,7 @@ BUNappend(BAT *b, const void *t, bool fo
                }
        }
 
-       if (unshare_string_heap(b) != GDK_SUCCEED) {
+       if (unshare_varsized_heap(b) != GDK_SUCCEED) {
                return GDK_FAIL;
        }
 
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -19,10 +19,10 @@
 #include "gdk_private.h"
 
 gdk_return
-unshare_string_heap(BAT *b)
+unshare_varsized_heap(BAT *b)
 {
        assert(b->batCacheid > 0);
-       if (ATOMstorage(b->ttype) == TYPE_str &&
+       if (ATOMvarsized(b->ttype) &&
            b->tvheap->parentid != b->batCacheid) {
                Heap *h = GDKzalloc(sizeof(Heap));
                if (h == NULL)
@@ -116,7 +116,7 @@ insert_string_bat(BAT *b, BAT *n, struct
                                   ci->tpe == cand_dense) {
                                toff = 0;
                        } else if (b->tvheap->parentid != bid &&
-                                  unshare_string_heap(b) != GDK_SUCCEED) {
+                                  unshare_varsized_heap(b) != GDK_SUCCEED) {
                                return GDK_FAIL;
                        }
                }
@@ -191,7 +191,7 @@ insert_string_bat(BAT *b, BAT *n, struct
                                }
                        }
                }
-       } else if (unshare_string_heap(b) != GDK_SUCCEED)
+       } else if (unshare_varsized_heap(b) != GDK_SUCCEED)
                return GDK_FAIL;
        if (toff == 0 && n->twidth == b->twidth && ci->tpe == cand_dense) {
                /* we don't need to do any translation of offset
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -247,7 +247,7 @@ ssize_t strToStr(char **restrict dst, si
        __attribute__((__visibility__("hidden")));
 gdk_return strWrite(const char *a, stream *s, size_t cnt)
        __attribute__((__visibility__("hidden")));
-gdk_return unshare_string_heap(BAT *b)
+gdk_return unshare_varsized_heap(BAT *b)
        __attribute__((__warn_unused_result__))
        __attribute__((__visibility__("hidden")));
 void VIEWdestroy(BAT *b)
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to