Changeset: 533920529330 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=533920529330 Modified Files: gdk/gdk_storage.c Branch: Jan2014 Log Message:
If HEAPextend fails, loading fails. diffs (26 lines): diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c --- a/gdk/gdk_storage.c +++ b/gdk/gdk_storage.c @@ -686,14 +686,20 @@ BATload_intern(bat i, int lock) } if (b->batCapacity != (b->T->heap.size >> b->T->shift)) { BUN cap = b->batCapacity; + int h; if (cap < (b->T->heap.size >> b->T->shift)) { cap = (BUN) (b->T->heap.size >> b->T->shift); HEAPDEBUG fprintf(stderr, "#HEAPextend in BATload_inter %s " SZFMT " " SZFMT "\n", b->H->heap.filename, b->H->heap.size, headsize(b, cap)); - HEAPextend(&b->H->heap, headsize(b, cap), b->batRestricted == BAT_READ); + h = HEAPextend(&b->H->heap, headsize(b, cap), b->batRestricted == BAT_READ); b->batCapacity = cap; } else { HEAPDEBUG fprintf(stderr, "#HEAPextend in BATload_intern %s " SZFMT " " SZFMT "\n", b->T->heap.filename, b->T->heap.size, tailsize(b, cap)); - HEAPextend(&b->T->heap, tailsize(b, cap), b->batRestricted == BAT_READ); + h = HEAPextend(&b->T->heap, tailsize(b, cap), b->batRestricted == BAT_READ); + } + if (h < 0) { + HEAPfree(&b->H->heap); + HEAPfree(&b->T->heap); + return NULL; } } } else { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list