Changeset: 9daa626c9c45 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9daa626c9c45 Modified Files: clients/Tests/exports.stable.out gdk/gdk.h gdk/gdk_align.c gdk/gdk_atoms.c gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c gdk/gdk_bbp.h gdk/gdk_heap.c gdk/gdk_imprints.c gdk/gdk_join.c gdk/gdk_logger.c gdk/gdk_posix.c gdk/gdk_private.h gdk/gdk_search.c gdk/gdk_storage.c gdk/gdk_tm.c gdk/gdk_utils.c monetdb5/modules/kernel/bat5.c monetdb5/modules/mal/mat.c monetdb5/modules/mal/remote.c monetdb5/modules/mal/transaction.c Branch: default Log Message:
Change a lot of GDK functions to return GDK_FAIL/GDK_SUCCEED instead of -1/0. This way, more functions have a similar interface. diffs (truncated from 2629 to 300 lines): diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -212,7 +212,6 @@ void BBPcold(bat b); int BBPcurstamp(void); int BBPdecref(bat b, int logical); BAT *BBPdescriptor(bat b); -int BBPdir(int cnt, bat *subcommit); void BBPhot(bat b); int BBPin; int BBPincref(bat b, int logical); @@ -226,9 +225,9 @@ str BBPphysical(bat b, str buf); BAT *BBPquickdesc(bat b, int delaccess); int BBPreclaim(BAT *b); int BBPrename(bat bid, const char *nme); -int BBPsave(BAT *b); +gdk_return BBPsave(BAT *b); void BBPshare(bat b); -int BBPsync(int cnt, bat *subcommit); +gdk_return BBPsync(int cnt, bat *subcommit); void BBPunlock(const char *s); gdk_return BUNappend(BAT *b, const void *right, bit force); gdk_return BUNdel(BAT *b, const void *left, const void *right, bit force); @@ -245,7 +244,7 @@ int GDK_vm_trim; int GDKatomcnt; gdk_return GDKcreatedir(const char *nme); int GDKdebug; -int GDKerror(_In_z_ _Printf_format_string_ const char *format, ...) __attribute__((__format__(__printf__, 1, 2))); +void GDKerror(_In_z_ _Printf_format_string_ const char *format, ...) __attribute__((__format__(__printf__, 1, 2))); void GDKexit(int status) __attribute__((__noreturn__)); int GDKexiting(void); void GDKfatal(_In_z_ _Printf_format_string_ const char *format, ...) __attribute__((__format__(__printf__, 1, 2))) __attribute__((__noreturn__)); @@ -275,7 +274,7 @@ void GDKsetenv(str name, str value); ssize_t GDKstrFromStr(unsigned char *dst, const unsigned char *src, ssize_t len); str GDKstrdup(const char *s) __attribute__((__warn_unused_result__)); str GDKstrndup(const char *s, size_t n) __attribute__((__warn_unused_result__)); -int GDKsyserror(_In_z_ _Printf_format_string_ const char *format, ...) __attribute__((__format__(__printf__, 1, 2))); +void GDKsyserror(_In_z_ _Printf_format_string_ const char *format, ...) __attribute__((__format__(__printf__, 1, 2))); ThreadRec GDKthreads[THREADS]; gdk_return GDKupgradevarheap(COLrec *c, var_t v, int copyall, int mayshare); lng GDKusec(void); @@ -289,7 +288,7 @@ BUN HASHprobe(Hash *h, const void *v); void HEAP_free(Heap *heap, var_t block); void HEAP_initialize(Heap *heap, size_t nbytes, size_t nprivate, int alignment); var_t HEAP_malloc(Heap *heap, size_t nbytes); -int HEAPextend(Heap *h, size_t size, int mayshare); +gdk_return HEAPextend(Heap *h, size_t size, int mayshare); size_t HEAPmemsize(Heap *h); size_t HEAPvmsize(Heap *h); lng IMPSimprintsize(BAT *b); @@ -324,10 +323,10 @@ int THRhighwater(void); Thread THRnew(str name); int THRprintf(stream *s, _In_z_ _Printf_format_string_ const char *format, ...) __attribute__((__format__(__printf__, 2, 3))); void THRsetdata(int, ptr); -int TMabort(void); -int TMcommit(void); -int TMsubcommit(BAT *bl); -int TMsubcommit_list(bat *subcommit, int cnt); +gdk_return TMabort(void); +gdk_return TMcommit(void); +gdk_return TMsubcommit(BAT *bl); +gdk_return TMsubcommit_list(bat *subcommit, int cnt); void VALclear(ValPtr v); int VALcmp(const ValRecord *p, const ValRecord *q); ptr VALconvert(int typ, ValPtr t); diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -997,7 +997,7 @@ typedef int (*GDKfcn) (); * These routines should be used to alloc free or extend heaps; they * isolate you from the different ways heaps can be accessed. */ -gdk_export int HEAPextend(Heap *h, size_t size, int mayshare); +gdk_export gdk_return HEAPextend(Heap *h, size_t size, int mayshare); gdk_export size_t HEAPvmsize(Heap *h); gdk_export size_t HEAPmemsize(Heap *h); @@ -2472,9 +2472,9 @@ free_debug(void *ptr, const char *filena /* Data Distilleries uses ICU for internationalization of some MonetDB error messages */ -gdk_export int GDKerror(_In_z_ _Printf_format_string_ const char *format, ...) +gdk_export void GDKerror(_In_z_ _Printf_format_string_ const char *format, ...) __attribute__((__format__(__printf__, 1, 2))); -gdk_export int GDKsyserror(_In_z_ _Printf_format_string_ const char *format, ...) +gdk_export void GDKsyserror(_In_z_ _Printf_format_string_ const char *format, ...) __attribute__((__format__(__printf__, 1, 2))); __declspec(noreturn) gdk_export void GDKfatal(_In_z_ _Printf_format_string_ const char *format, ...) __attribute__((__format__(__printf__, 1, 2))) @@ -2692,10 +2692,10 @@ BATmirror(register BAT *b) * you try to partially commit an already committed persistent BAT (it * needs the rollback mechanism). */ -gdk_export int TMcommit(void); -gdk_export int TMabort(void); -gdk_export int TMsubcommit(BAT *bl); -gdk_export int TMsubcommit_list(bat *subcommit, int cnt); +gdk_export gdk_return TMcommit(void); +gdk_export gdk_return TMabort(void); +gdk_export gdk_return TMsubcommit(BAT *bl); +gdk_export gdk_return TMsubcommit_list(bat *subcommit, int cnt); /* * @- Delta Management diff --git a/gdk/gdk_align.c b/gdk/gdk_align.c --- a/gdk/gdk_align.c +++ b/gdk/gdk_align.c @@ -441,7 +441,7 @@ BATmaterializeh(BAT *b) IMPSdestroy(b); b->H->heap.filename = NULL; - if (HEAPalloc(&b->H->heap, cnt, sizeof(oid)) < 0) { + if (HEAPalloc(&b->H->heap, cnt, sizeof(oid)) != GDK_SUCCEED) { b->H->heap = head; return GDK_FAIL; } @@ -597,7 +597,7 @@ VIEWreset(BAT *b) if (head.filename == NULL) goto bailout; snprintf(head.filename, nmelen + 12, "%s.head", nme); - if (n->htype && HEAPalloc(&head, cnt, Hsize(n)) < 0) + if (n->htype && HEAPalloc(&head, cnt, Hsize(n)) != GDK_SUCCEED) goto bailout; } if (n->ttype) { @@ -605,7 +605,7 @@ VIEWreset(BAT *b) if (tail.filename == NULL) goto bailout; snprintf(tail.filename, nmelen + 12, "%s.tail", nme); - if (n->ttype && HEAPalloc(&tail, cnt, Tsize(n)) < 0) + if (n->ttype && HEAPalloc(&tail, cnt, Tsize(n)) != GDK_SUCCEED) goto bailout; } if (n->H->vheap) { @@ -614,7 +614,7 @@ VIEWreset(BAT *b) if (hh.filename == NULL) goto bailout; snprintf(hh.filename, nmelen + 12, "%s.hheap", nme); - if (ATOMheap(n->htype, &hh, cnt) < 0) + if (ATOMheap(n->htype, &hh, cnt) != GDK_SUCCEED) goto bailout; } if (n->T->vheap) { @@ -623,7 +623,7 @@ VIEWreset(BAT *b) if (th.filename == NULL) goto bailout; snprintf(th.filename, nmelen + 12, "%s.theap", nme); - if (ATOMheap(n->ttype, &th, cnt) < 0) + if (ATOMheap(n->ttype, &th, cnt) != GDK_SUCCEED) goto bailout; } diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c --- a/gdk/gdk_atoms.c +++ b/gdk/gdk_atoms.c @@ -267,7 +267,7 @@ ATOMlen(int t, const void *src) return l ? (*l) (src) : ATOMsize(t); } -int +gdk_return ATOMheap(int t, Heap *hp, size_t cap) { void (*h) (Heap *, size_t) = BATatoms[t].atomHeap; @@ -275,9 +275,9 @@ ATOMheap(int t, Heap *hp, size_t cap) if (h) { (*h) (hp, cap); if (hp->base == NULL) - return -1; + return GDK_FAIL; } - return 0; + return GDK_SUCCEED; } int @@ -1062,7 +1062,7 @@ strHeap(Heap *d, size_t cap) cap = MAX(cap, BATTINY); size = GDK_STRHASHTABLE * sizeof(stridx_t) + MIN(GDK_ELIMLIMIT, cap * GDK_VARALIGN); - if (HEAPalloc(d, size, 1) == 0) { + if (HEAPalloc(d, size, 1) == GDK_SUCCEED) { d->free = GDK_STRHASHTABLE * sizeof(stridx_t); memset(d->base, 0, d->free); d->hashash = 1; /* new string heaps get the hash value (and length) stored */ @@ -1238,7 +1238,7 @@ strPut(Heap *h, var_t *dst, const char * return 0; } HEAPDEBUG fprintf(stderr, "#HEAPextend in strPut %s " SZFMT " " SZFMT "\n", h->filename, h->size, newsize); - if (HEAPextend(h, newsize, TRUE) < 0) { + if (HEAPextend(h, newsize, TRUE) != GDK_SUCCEED) { return 0; } #ifndef NDEBUG diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -249,16 +249,16 @@ BATnewstorage(int ht, int tt, BUN cap, i bn->batCapacity = cap; /* alloc the main heaps */ - if (ht && HEAPalloc(&bn->H->heap, cap, bn->H->width) < 0) { + if (ht && HEAPalloc(&bn->H->heap, cap, bn->H->width) != GDK_SUCCEED) { return NULL; } - if (tt && HEAPalloc(&bn->T->heap, cap, bn->T->width) < 0) { + if (tt && HEAPalloc(&bn->T->heap, cap, bn->T->width) != GDK_SUCCEED) { if (ht) HEAPfree(&bn->H->heap, 1); return NULL; } - if (ATOMheap(ht, bn->H->vheap, cap) < 0) { + if (ATOMheap(ht, bn->H->vheap, cap) != GDK_SUCCEED) { if (ht) HEAPfree(&bn->H->heap, 1); if (tt) @@ -268,7 +268,7 @@ BATnewstorage(int ht, int tt, BUN cap, i GDKfree(bn->T->vheap); return NULL; } - if (ATOMheap(tt, bn->T->vheap, cap) < 0) { + if (ATOMheap(tt, bn->T->vheap, cap) != GDK_SUCCEED) { if (ht) HEAPfree(&bn->H->heap, 1); if (tt) @@ -325,7 +325,7 @@ BATattach(int tt, const char *heapfile, ERRORcheck(role < 0 || role >= 32, "BATattach: role error\n", NULL); if (lstat(heapfile, &st) < 0) { GDKerror("BATattach: cannot stat heapfile\n"); - return 0; + return NULL; } ERRORcheck(!S_ISREG(st.st_mode), "BATattach: heapfile must be a regular file\n", NULL); ERRORcheck(st.st_nlink != 1, "BATattach: heapfile must have only one link\n", NULL); @@ -361,7 +361,7 @@ BATattach(int tt, const char *heapfile, bn->batRestricted = BAT_READ; bn->T->heap.size = (size_t) st.st_size; bn->T->heap.newstorage = bn->T->heap.storage = (bn->T->heap.size < GDK_mmap_minsize) ? STORE_MEM : STORE_MMAP; - if (HEAPload(&bn->T->heap, BBP_physical(bn->batCacheid), "tail", TRUE) < 0) { + if (HEAPload(&bn->T->heap, BBP_physical(bn->batCacheid), "tail", TRUE) != GDK_SUCCEED) { HEAPfree(&bn->T->heap, 1); GDKfree(bs); return NULL; @@ -461,13 +461,13 @@ BATextend(BAT *b, BUN newcap) if (b->H->heap.base && GDKdebug & HEAPMASK) fprintf(stderr, "#HEAPextend in BATextend %s " SZFMT " " SZFMT "\n", b->H->heap.filename, b->H->heap.size, hheap_size); if (b->H->heap.base && - HEAPextend(&b->H->heap, hheap_size, b->batRestricted == BAT_READ) < 0) + HEAPextend(&b->H->heap, hheap_size, b->batRestricted == BAT_READ) != GDK_SUCCEED) return GDK_FAIL; theap_size *= Tsize(b); if (b->T->heap.base && GDKdebug & HEAPMASK) fprintf(stderr, "#HEAPextend in BATextend %s " SZFMT " " SZFMT "\n", b->T->heap.filename, b->T->heap.size, theap_size); if (b->T->heap.base && - HEAPextend(&b->T->heap, theap_size, b->batRestricted == BAT_READ) < 0) + HEAPextend(&b->T->heap, theap_size, b->batRestricted == BAT_READ) != GDK_SUCCEED) return GDK_FAIL; HASHdestroy(b); IMPSdestroy(b); @@ -533,14 +533,14 @@ BATclear(BAT *b, int force) if (b->H->vheap) { hh.farmid = b->H->vheap->farmid; if (b->H->vheap->free > 0 && - ATOMheap(b->htype, &hh, cap) < 0) { + ATOMheap(b->htype, &hh, cap) != GDK_SUCCEED) { return GDK_FAIL; } } if (b->T->vheap) { th.farmid = b->T->vheap->farmid; if (b->T->vheap->free > 0 && - ATOMheap(b->ttype, &th, cap) < 0) { + ATOMheap(b->ttype, &th, cap) != GDK_SUCCEED) { if (b->H->vheap && b->H->vheap->free > 0) HEAPfree(&hh, 1); return GDK_FAIL; @@ -591,10 +591,11 @@ BATclear(BAT *b, int force) } /* free a cached BAT; leave the bat descriptor cached */ -int +void BATfree(BAT *b) { - BATcheck(b, "BATfree", 0); + if (b == NULL) + return; /* deallocate all memory for a bat */ if (b->batCacheid < 0) @@ -634,7 +635,6 @@ BATfree(BAT *b) if (b) { BBP_cache(b->batCacheid) = NULL; } - return 0; } /* free a cached BAT descriptor */ @@ -691,14 +691,14 @@ BATdestroy( BATstore *bs ) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list