fixes
[SXSI/XMLTree.git] / libcds / src / static_bitsequence / static_bitsequence_sdarray.cpp
index 41bd316..0b0dab1 100644 (file)
@@ -18,7 +18,7 @@ static_bitsequence_sdarray::static_bitsequence_sdarray(uint * buff, uint len) {
        delete [] tmp_seq;
 }
 
-static_bitsequence_sdarray::static_bitsequence_sdarray() {}
+static_bitsequence_sdarray::static_bitsequence_sdarray() {make___selecttbl();}
 
 static_bitsequence_sdarray::~static_bitsequence_sdarray() {
        if(ones)
@@ -26,7 +26,7 @@ static_bitsequence_sdarray::~static_bitsequence_sdarray() {
 }
 
 uint static_bitsequence_sdarray::rank1(uint i) {
-       if(i>len) return -1;
+       if(i>=len) return -1;
        if(ones)
                return selects3_rank(&sd,i);
        else
@@ -34,7 +34,7 @@ uint static_bitsequence_sdarray::rank1(uint i) {
 }
 
 uint static_bitsequence_sdarray::select1(uint i) {
-       if(i>ones) return -1;
+       if(i>ones || i==0) return -1;
        if(ones)
                return selects3_select(&sd,i);
        else