Changeset: 81e7dae07add for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=81e7dae07add Modified Files: gdk/gdk_batop.c Branch: Oct2014 Log Message:
Do some error checking. diffs (66 lines): diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c --- a/gdk/gdk_batop.c +++ b/gdk/gdk_batop.c @@ -76,7 +76,7 @@ unshare_string_heap(BAT *b) * it makes sense to just quickly copy the whole string heap instead * of inserting individual strings. See the comments in the code for * more information. */ -static BAT * +static gdk_return insert_string_bat(BAT *b, BAT *n, int append, int force) { BATiter ni; /* iterator */ @@ -95,7 +95,7 @@ insert_string_bat(BAT *b, BAT *n, int ap assert(b->htype == TYPE_void || b->htype == TYPE_oid); if (n->batCount == 0) - return b; + return GDK_SUCCEED; ni = bat_iterator(n); hp = NULL; tp = NULL; @@ -139,7 +139,7 @@ insert_string_bat(BAT *b, BAT *n, int ap toff = 0; } else if (b->T->vheap->parentid != bid && unshare_string_heap(b) == GDK_FAIL) { - return NULL; + return GDK_FAIL; } } if (toff == ~(size_t) 0 && n->batCount > 1024) { @@ -379,13 +379,13 @@ insert_string_bat(BAT *b, BAT *n, int ap b->tvarsized = 1; b->ttype = TYPE_str; } - return b; + return GDK_SUCCEED; bunins_failed: if (toff != ~(size_t) 0) { b->tvarsized = 1; b->ttype = TYPE_str; } - return NULL; + return GDK_FAIL; } /* @@ -558,7 +558,8 @@ BATins(BAT *b, BAT *n, bit force) !GDK_ELIMDOUBLES(n->T->vheap) && b->T->vheap->hashash == n->T->vheap->hashash && VIEWtparent(n) == 0) { - b = insert_string_bat(b, n, 0, force); + if (insert_string_bat(b, n, 0, force) == GDK_FAIL) + return NULL; } else if (b->htype == TYPE_void) { if (!ATOMvarsized(b->ttype) && BATatoms[b->ttype].atomFix == NULL && @@ -766,8 +767,7 @@ BATappend(BAT *b, BAT *n, bit force) (b->batCount == 0 || !GDK_ELIMDOUBLES(b->T->vheap)) && !GDK_ELIMDOUBLES(n->T->vheap) && b->T->vheap->hashash == n->T->vheap->hashash) { - b = insert_string_bat(b, n, 1, force); - if (b == NULL) + if (insert_string_bat(b, n, 1, force) == GDK_FAIL) return NULL; } else if (b->htype == TYPE_void) { if (!ATOMvarsized(b->ttype) && _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list