X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=libcds%2Fsrc%2Fstatic_bitsequence%2Fstatic_bitsequence_sdarray.cpp;h=0b0dab18d0663cd9cf045bc1a4aaae785b15361c;hb=41eabb2b95bf53567098821e6f91a8d40eea4a39;hp=41bd316b22adad4ec3a47a032e232df3a77fcebe;hpb=06201fcce6255906ad6b4d305b8e643c634780a3;p=SXSI%2FXMLTree.git diff --git a/libcds/src/static_bitsequence/static_bitsequence_sdarray.cpp b/libcds/src/static_bitsequence/static_bitsequence_sdarray.cpp index 41bd316..0b0dab1 100644 --- a/libcds/src/static_bitsequence/static_bitsequence_sdarray.cpp +++ b/libcds/src/static_bitsequence/static_bitsequence_sdarray.cpp @@ -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