diff options
-rw-r--r-- | src/bitmap.c | 8 | ||||
-rw-r--r-- | src/bitmap.h | 2 | ||||
-rw-r--r-- | src/libsolv.ver | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/bitmap.c b/src/bitmap.c index 5a8dcd8..21630ad 100644 --- a/src/bitmap.c +++ b/src/bitmap.c @@ -66,19 +66,19 @@ map_and(Map *t, Map *s) unsigned char *ti, *si, *end; ti = t->map; si = s->map; - end = ti + t->size; + end = ti + (t->size < s->size ? t->size : s->size); while (ti < end) *ti++ &= *si++; } -/* like map_and but negates value in s first, i.e. t & ~s */ +/* remove all set bits in s from t. */ void -map_and_not(Map *t, Map *s) +map_subtract(Map *t, Map *s) { unsigned char *ti, *si, *end; ti = t->map; si = s->map; - end = ti + t->size; + end = ti + (t->size < s->size ? t->size : s->size); while (ti < end) *ti++ &= ~*si++; } diff --git a/src/bitmap.h b/src/bitmap.h index b098b26..3a60c51 100644 --- a/src/bitmap.h +++ b/src/bitmap.h @@ -35,7 +35,7 @@ extern void map_init_clone(Map *t, Map *s); extern void map_grow(Map *m, int n); extern void map_free(Map *m); extern void map_and(Map *t, Map *s); -extern void map_and_not(Map *t, Map *s); +extern void map_subtract(Map *t, Map *s); static inline void map_empty(Map *m) { diff --git a/src/libsolv.ver b/src/libsolv.ver index 3902354..9c77fc4 100644 --- a/src/libsolv.ver +++ b/src/libsolv.ver @@ -27,7 +27,7 @@ SOLV_1.0 { dirpool_init; dirpool_make_dirtraverse; map_and; - map_and_not; + map_subtract; map_free; map_grow; map_init; |