Changeset: 6ad531950fbf for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6ad531950fbf
Modified Files:
gdk/gdk_select.c
Branch: default
Log Message:
Dont take jumps through the candidate list
Copy paste error leading to double increment where one is intended.
diffs (36 lines):
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -188,7 +188,7 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn,
assert(!anti);\
for ((i) = (p); (i) < (q); (i)++){ \
r = (BUN) (*candlist++ - off) ;\
- if ( (src)[(BUN) (*candlist++ - off) ] ==
*(TYPE*) tl ) \
+ if ( (src)[r] == *(TYPE*) tl ) \
(dst)[cnt++] = i;\
}\
} else if (anti){\
@@ -250,14 +250,18 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn,
} else {\
if ( nil == NULL) \
for ((i) = (p); (i) < (q); (i)++) {\
- if( (!lval || ( *(TYPE*) tl < (src)[i] || (li
&& ((src)[i] == *(TYPE*) tl)))) &&\
- (!hval || ( *(TYPE*) th > (src)[i] || (hi &&
((src)[i] == *(TYPE*) th)))))\
+ int lc,rc; \
+ lc =(!lval || ( *(TYPE*) tl < (src)[i] || (li
&& ((src)[i] == *(TYPE*) tl)))); \
+ rc = (!hval || ( *(TYPE*) th > (src)[i] || (hi
&& ((src)[i] == *(TYPE*) th)))); \
+ if ( lc + rc == 2)\
(dst)[cnt++] = i;\
} else \
for ((i) = (p); (i) < (q); (i)++) {\
- if( ((src)[i] != TYPE##_nil) &&\
- (!lval || ( *(TYPE*) tl < (src)[i] || (li &&
((src)[i] == *(TYPE*) tl)))) &&\
- (!hval || ( *(TYPE*) th > (src)[i] || (hi &&
((src)[i] == *(TYPE*) th)))))\
+ int nc, lc,rc; \
+ nc =((src)[i] != TYPE##_nil);\
+ lc =(!lval || ( *(TYPE*) tl < (src)[i] || (li
&& ((src)[i] == *(TYPE*) tl)))); \
+ rc = (!hval || ( *(TYPE*) th > (src)[i] || (hi
&& ((src)[i] == *(TYPE*) th)))); \
+ if ( nc +lc + rc == 3)\
(dst)[cnt++] = i;\
}\
}\
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list