fixes
authorfclaude <fclaude@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Sun, 26 Apr 2009 05:57:59 +0000 (05:57 +0000)
committerfclaude <fclaude@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Sun, 26 Apr 2009 05:57:59 +0000 (05:57 +0000)
git-svn-id: svn+ssh://idea.nguyen.vg/svn/sxsi/trunk/XMLTree@350 3cdefd35-fc62-479d-8e8d-bae585ffb9ca

libcds/src/static_bitsequence/sdarray.cpp
libcds/src/static_bitsequence/static_bitsequence_sdarray.cpp

index 44b61ac..cd46b66 100644 (file)
@@ -649,9 +649,9 @@ int selects3_construct(selects3 *select, int n, uint *buf) {
   return 0;
 }
 
-selects3 * lasts3=NULL;
-int lasti=0;
-int lasts=0;
+//selects3 * lasts3=NULL;
+//int lasti=0;
+//int lasts=0;
 
 int selects3_select(selects3 *select, int i) {
   int d,x;
@@ -666,15 +666,15 @@ int selects3_select(selects3 *select, int i) {
   if (i == 0) return -1;
 
   d = select->d;
-       if(lasts3==select && lasti==i-1) {
-               while(!__getbit2(select->sd1->buf,++lasti));
+       if(select->lasti==(uint)i-1) {
+               while(!__getbit2(select->sd1->buf,++select->lasti));
        } 
        else {
-         lasts = selectd2_select(select->sd1,i,1);
+         select->lasts = selectd2_select(select->sd1,i,1);
        }
-       lasti = i;
-       lasts3 = select;
-  x = (lasts-(i-1)) << d;
+       select->lasti = i;
+       //lasts3 = select;
+  x = (select->lasts-(i-1)) << d;
   x += __getbits(select->low,(i-1)*d,d);
   return x;
 }
index 6fc1989..33c1059 100644 (file)
@@ -14,6 +14,7 @@ static_bitsequence_sdarray::static_bitsequence_sdarray(uint * buff, uint len) {
   if(ones)
     selects3_construct(&sd,len,tmp_seq);
   this->len = len;
+       sd.lasti=(uint)-3;
   //this->ones = sd.m;
   delete [] tmp_seq;
 }