Changeset: 803f276e9aa6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=803f276e9aa6
Modified Files:
        gdk/gdk_group.c
Branch: Feb2013
Log Message:

assert backward linking of hash table wherever we exploit it


diffs (40 lines):

diff --git a/gdk/gdk_group.c b/gdk/gdk_group.c
--- a/gdk/gdk_group.c
+++ b/gdk/gdk_group.c
@@ -106,6 +106,8 @@
                                     hb != BUN_NONE &&                  \
                                      grps[hb - r] == grps[p - r];      \
                                     hb = hs->link[hb]) {               \
+                                       assert(hs->link[hb] == BUN_NONE \
+                                              || hs->link[hb] < hb);   \
                                        if (w[p] == w[hb]) {            \
                                                ngrps[p - r] = ngrps[hb - r]; \
                                                if (histo)              \
@@ -459,12 +461,17 @@ BATgroup_internal(BAT **groups, BAT **ex
                         * backwards through BAT */
                        for (hb = hs->hash[HASHprobe(hs, v)];
                             hb != BUN_NONE && hb >= p;
-                            hb = hs->link[hb])
+                            hb = hs->link[hb]) {
+                               assert(hs->link[hb] == BUN_NONE
+                                      || hs->link[hb] < hb);
+                       }
                                ;
                        if (gc) {
                                for (;
                                     hb != BUN_NONE && grps[hb - r] == grps[p - 
r];
                                     hb = hs->link[hb]) {
+                                       assert(hs->link[hb] == BUN_NONE
+                                              || hs->link[hb] < hb);
                                        if (cmp(v, BUNtail(bi, hb)) == 0) {
                                                ngrps[p - r] = ngrps[hb - r];
                                                if (histo)
@@ -582,6 +589,8 @@ BATgroup_internal(BAT **groups, BAT **ex
                                        for (hb = hs->hash[prb];
                                             hb != BUN_NONE && grps[hb - r] == 
grps[p - r];
                                             hb = hs->link[hb]) {
+                                               assert(hs->link[hb] == BUN_NONE
+                                                      || hs->link[hb] < hb);
                                                if (cmp(v, BUNtail(bi, hb)) == 
0) {
                                                        ngrps[p - r] = ngrps[hb 
- r];
                                                        if (histo)
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to