From a99449f19289d6b44eaac26d62eb21b21741b593 Mon Sep 17 00:00:00 2001 From: fclaude Date: Sun, 26 Apr 2009 05:57:59 +0000 Subject: [PATCH] fixes git-svn-id: svn+ssh://idea.nguyen.vg/svn/sxsi/trunk/XMLTree@350 3cdefd35-fc62-479d-8e8d-bae585ffb9ca --- libcds/src/static_bitsequence/sdarray.cpp | 18 +++++++++--------- .../static_bitsequence_sdarray.cpp | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/libcds/src/static_bitsequence/sdarray.cpp b/libcds/src/static_bitsequence/sdarray.cpp index 44b61ac..cd46b66 100644 --- a/libcds/src/static_bitsequence/sdarray.cpp +++ b/libcds/src/static_bitsequence/sdarray.cpp @@ -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; } diff --git a/libcds/src/static_bitsequence/static_bitsequence_sdarray.cpp b/libcds/src/static_bitsequence/static_bitsequence_sdarray.cpp index 6fc1989..33c1059 100644 --- a/libcds/src/static_bitsequence/static_bitsequence_sdarray.cpp +++ b/libcds/src/static_bitsequence/static_bitsequence_sdarray.cpp @@ -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; } -- 2.17.1