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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list