Changeset: 3b5dc31aadf8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3b5dc31aadf8
Modified Files:
clients/Tests/exports.stable.out
gdk/gdk_cand.c
gdk/gdk_cand.h
Branch: default
Log Message:
Some canditer functions don't change the iterator.
diffs (159 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
@@ -447,19 +447,19 @@ ssize_t bitToStr(str *dst, size_t *len,
ssize_t bteFromStr(const char *src, size_t *len, bte **dst, bool external);
ssize_t bteToStr(str *dst, size_t *len, const bte *src, bool external);
const bte bte_nil;
-oid canditer_idx(struct canditer *ci, BUN p);
+oid canditer_idx(const struct canditer *ci, BUN p);
BUN canditer_init(struct canditer *ci, BAT *b, BAT *s);
oid canditer_last(const struct canditer *ci);
oid canditer_peek(struct canditer *ci);
oid canditer_peekprev(struct canditer *ci);
oid canditer_prev(struct canditer *ci);
void canditer_reset(struct canditer *ci);
-BUN canditer_search(struct canditer *ci, oid o, bool next);
+BUN canditer_search(const struct canditer *ci, oid o, bool next);
void canditer_setidx(struct canditer *ci, BUN p);
-BAT *canditer_slice(struct canditer *ci, BUN lo, BUN hi);
-BAT *canditer_slice2(struct canditer *ci, BUN lo1, BUN hi1, BUN lo2, BUN hi2);
-BAT *canditer_slice2val(struct canditer *ci, oid lo1, oid hi1, oid lo2, oid
hi2);
-BAT *canditer_sliceval(struct canditer *ci, oid lo, oid hi);
+BAT *canditer_slice(const struct canditer *ci, BUN lo, BUN hi);
+BAT *canditer_slice2(const struct canditer *ci, BUN lo1, BUN hi1, BUN lo2, BUN
hi2);
+BAT *canditer_slice2val(const struct canditer *ci, oid lo1, oid hi1, oid lo2,
oid hi2);
+BAT *canditer_sliceval(const struct canditer *ci, oid lo, oid hi);
int closedir(DIR *dir);
char *ctime_r(const time_t *restrict, char *restrict);
date date_add_day(date dt, int days) __attribute__((__const__));
diff --git a/gdk/gdk_cand.c b/gdk/gdk_cand.c
--- a/gdk/gdk_cand.c
+++ b/gdk/gdk_cand.c
@@ -375,7 +375,7 @@ binsearchcand(const oid *cand, BUN hi, o
/* count number of 1 bits in ci->mask between bit positions lo
* (inclusive) and hi (not inclusive) */
static BUN
-count_mask_bits(struct canditer *ci, BUN lo, BUN hi)
+count_mask_bits(const struct canditer *ci, BUN lo, BUN hi)
{
BUN n;
assert(lo <= hi);
@@ -810,7 +810,7 @@ canditer_peekprev(struct canditer *ci)
* the cand_mask iterator ci after (if next is set) or before (if next
* is unset) o; if there are no more candidates, return oid_nil */
oid
-canditer_mask_next(struct canditer *ci, oid o, bool next)
+canditer_mask_next(const struct canditer *ci, oid o, bool next)
{
if (o < ci->mskoff)
return next ? ci->mskoff + ci->firstbit : oid_nil;
@@ -847,7 +847,7 @@ canditer_mask_next(struct canditer *ci,
/* return the last candidate */
oid
-canditer_last(struct canditer *ci)
+canditer_last(const struct canditer *ci)
{
if (ci->ncand == 0)
return oid_nil;
@@ -870,7 +870,7 @@ canditer_last(struct canditer *ci)
/* return the candidate at the given index */
oid
-canditer_idx(struct canditer *ci, BUN p)
+canditer_idx(const struct canditer *ci, BUN p)
{
if (p >= ci->ncand)
return oid_nil;
@@ -984,7 +984,7 @@ canditer_reset(struct canditer *ci)
* not occur, if next is set, return index of next larger candidate,
* if next is not set, return BUN_NONE */
BUN
-canditer_search(struct canditer *ci, oid o, bool next)
+canditer_search(const struct canditer *ci, oid o, bool next)
{
BUN p;
@@ -1030,7 +1030,7 @@ canditer_search(struct canditer *ci, oid
}
static BAT *
-canditer_sliceval_mask(struct canditer *ci, oid lo1, oid hi1, BUN cnt1,
+canditer_sliceval_mask(const struct canditer *ci, oid lo1, oid hi1, BUN cnt1,
oid lo2, oid hi2, BUN cnt2)
{
assert(cnt2 == 0 || !is_oid_nil(lo2));
@@ -1087,7 +1087,7 @@ canditer_sliceval_mask(struct canditer *
* BATslice, the hseqbase of the returned BAT is 0; note for cand_mask
* candidate iterators, the BUN values refer to number of 1 bits */
BAT *
-canditer_slice(struct canditer *ci, BUN lo, BUN hi)
+canditer_slice(const struct canditer *ci, BUN lo, BUN hi)
{
BAT *bn;
oid o;
@@ -1152,7 +1152,7 @@ canditer_slice(struct canditer *ci, BUN
/* like the above, except the bounds are given by values instead of
* indexes */
BAT *
-canditer_sliceval(struct canditer *ci, oid lo, oid hi)
+canditer_sliceval(const struct canditer *ci, oid lo, oid hi)
{
if (ci->tpe != cand_mask) {
return canditer_slice(
@@ -1167,7 +1167,7 @@ canditer_sliceval(struct canditer *ci, o
/* return the combination of two slices */
BAT *
-canditer_slice2(struct canditer *ci, BUN lo1, BUN hi1, BUN lo2, BUN hi2)
+canditer_slice2(const struct canditer *ci, BUN lo1, BUN hi1, BUN lo2, BUN hi2)
{
BAT *bn;
oid o;
@@ -1261,7 +1261,7 @@ canditer_slice2(struct canditer *ci, BUN
}
BAT *
-canditer_slice2val(struct canditer *ci, oid lo1, oid hi1, oid lo2, oid hi2)
+canditer_slice2val(const struct canditer *ci, oid lo1, oid hi1, oid lo2, oid
hi2)
{
if (ci->tpe != cand_mask) {
return canditer_slice2(
diff --git a/gdk/gdk_cand.h b/gdk/gdk_cand.h
--- a/gdk/gdk_cand.h
+++ b/gdk/gdk_cand.h
@@ -173,13 +173,13 @@ canditer_next(struct canditer *ci)
gdk_export BUN canditer_init(struct canditer *ci, BAT *b, BAT *s);
gdk_export oid canditer_peek(struct canditer *ci);
-gdk_export oid canditer_last(struct canditer *ci);
+gdk_export oid canditer_last(const struct canditer *ci);
gdk_export oid canditer_prev(struct canditer *ci);
gdk_export oid canditer_peekprev(struct canditer *ci);
-gdk_export oid canditer_idx(struct canditer *ci, BUN p);
+gdk_export oid canditer_idx(const struct canditer *ci, BUN p);
gdk_export void canditer_setidx(struct canditer *ci, BUN p);
gdk_export void canditer_reset(struct canditer *ci);
-gdk_export BUN canditer_search(struct canditer *ci, oid o, bool next);
+gdk_export BUN canditer_search(const struct canditer *ci, oid o, bool next);
static inline bool
canditer_contains(struct canditer *ci, oid o)
{
@@ -197,11 +197,11 @@ canditer_contains(struct canditer *ci, o
}
return canditer_search(ci, o, false) != BUN_NONE;
}
-gdk_export oid canditer_mask_next(struct canditer *ci, oid o, bool next);
-gdk_export BAT *canditer_slice(struct canditer *ci, BUN lo, BUN hi);
-gdk_export BAT *canditer_sliceval(struct canditer *ci, oid lo, oid hi);
-gdk_export BAT *canditer_slice2(struct canditer *ci, BUN lo1, BUN hi1, BUN
lo2, BUN hi2);
-gdk_export BAT *canditer_slice2val(struct canditer *ci, oid lo1, oid hi1, oid
lo2, oid hi2);
+gdk_export oid canditer_mask_next(const struct canditer *ci, oid o, bool next);
+gdk_export BAT *canditer_slice(const struct canditer *ci, BUN lo, BUN hi);
+gdk_export BAT *canditer_sliceval(const struct canditer *ci, oid lo, oid hi);
+gdk_export BAT *canditer_slice2(const struct canditer *ci, BUN lo1, BUN hi1,
BUN lo2, BUN hi2);
+gdk_export BAT *canditer_slice2val(const struct canditer *ci, oid lo1, oid
hi1, oid lo2, oid hi2);
gdk_export BAT *BATnegcands(BUN nr, BAT *odels);
gdk_export BAT *BATmaskedcands(oid hseq, BUN nr, BAT *masked, bool selected);
gdk_export BAT *BATunmask(BAT *b);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list