Changeset: 48a3b8f1f9b2 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=48a3b8f1f9b2 Modified Files: monetdb5/modules/mal/pqueue.c Branch: Feb2013 Log Message:
PQtopn_sorted_(min|max)(): ensure that BATslice() is called with BUN (not wrd) argument This should finally fix compilation with 32-bit OIDs on 64-bit Windows, again. diffs (37 lines): diff --git a/monetdb5/modules/mal/pqueue.c b/monetdb5/modules/mal/pqueue.c --- a/monetdb5/modules/mal/pqueue.c +++ b/monetdb5/modules/mal/pqueue.c @@ -1066,11 +1066,12 @@ PQinit(int *ret, int *bid, wrd *maxsize) } static void -PQtopn_sorted_min( BAT **bn, BAT *b, wrd N ) +PQtopn_sorted_min( BAT **bn, BAT *b, wrd _N ) { - wrd cnt = BATcount(b); + BUN cnt = BATcount(b), N = (BUN) _N; + assert(_N >= 0); if (b->tsorted) { - b = BATslice(b, (cnt-N)<0?0:cnt-N, cnt); + b = BATslice(b, N>=cnt?0:cnt-N, cnt); *bn = BATsort_rev(b); BBPreleaseref(b->batCacheid); } else @@ -1078,13 +1079,14 @@ PQtopn_sorted_min( BAT **bn, BAT *b, wrd } static void -PQtopn_sorted_max( BAT **bn, BAT *b, wrd N ) +PQtopn_sorted_max( BAT **bn, BAT *b, wrd _N ) { - wrd cnt = BATcount(b); + BUN cnt = BATcount(b), N = (BUN) _N; + assert(_N >= 0); if (b->tsorted) *bn = BATslice(b, 0, N>=cnt?cnt:N); else { - b = BATslice(b, (cnt-N)<0?0:cnt-N, cnt); + b = BATslice(b, N>=cnt?0:cnt-N, cnt); *bn = BATsort_rev(b); BBPreleaseref(b->batCacheid); } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list