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