Changeset: a7567eea4081 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a7567eea4081
Modified Files:
gdk/gdk_strimps.c
Branch: string_imprints
Log Message:
Fix strimp generation bugs
diffs (55 lines):
diff --git a/gdk/gdk_strimps.c b/gdk/gdk_strimps.c
--- a/gdk/gdk_strimps.c
+++ b/gdk/gdk_strimps.c
@@ -133,12 +133,10 @@ next_pair(PairIterator *pi) {
static int8_t
STRMPpairLookup(Strimps *s, CharPair *p) {
- int8_t ret = -1;
size_t idx = 0;
size_t npairs = NPAIRS(((uint64_t *)s->strimps.base)[0]);
size_t offset = 0;
CharPair sp;
- (void)p;
for (idx = 0; idx < npairs; idx++) {
sp.psize = s->sizes_base[idx];
@@ -148,7 +146,7 @@ STRMPpairLookup(Strimps *s, CharPair *p)
offset += sp.psize;
}
- return ret;
+ return -1;
}
static bool
@@ -160,8 +158,8 @@ ignored(CharPair *p, uint8_t elm) {
#define MAX_PAIR_SIZE 8
/* Given a strimp header and a string compute the bitstring of which
- * digrams(byte pairs) are present in the string. The strimp header is a
- * map from digram(byte pair) to index in the strimp.
+ * digrams are present in the string. The strimp header is a map from
+ * digram to index in the strimp.
*
* This should probably be inlined.
*/
@@ -179,8 +177,8 @@ STRMPmakebitstring(const str s, Strimps
while(pair_at(&pi, &cp)) {
pair_idx = STRMPpairLookup(r, &cp);
- if (pair_idx > 0)
- ret |= 0x1 << pair_idx;
+ if (pair_idx >= 0)
+ ret |= ((uint64_t)0x1 << pair_idx);
next_pair(&pi);
}
@@ -617,7 +615,6 @@ STRMPcreate(BAT *b)
}
/* Left over code */
-
#if 0
/* This counts how many unicode codepoints the given string
* contains.
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list