Silence a printf warning for %lu on 32bits archs.
[SXSI/libbp.git] / bp-darray.h
index 75808f1..e46834f 100644 (file)
@@ -38,17 +38,21 @@ void bp_darray_free(darray *da);
 
 int bp_darray_select(darray *da, int i,int f);
 
-static int bp_darray_rank(darray *da, int i)
+static inline int bp_darray_rank(darray *da, int i)
 {
   int r,j,i_rr, i_rrr;
+  int offset;
   pb *p;
+  byte *buff;
   i_rr = i >> logRR;
   i_rrr = i >> logRRR;
   r = da->rl[i>>logR] + da->rm[i_rr];
 
   j = (i_rrr) & (RR/RRR-1);
+  offset = i_rr << (logRR-logRRR);
+  buff = &(da->rs[offset-1]);
   while (j > 0) {
-    r += da->rs[((i_rr)<<(logRR-logRRR))+j-1];
+    r += buff[j];
     j--;
   }