• R/O
  • SSH
  • HTTPS

doar: 提交


Commit MetaInfo

修訂84 (tree)
時間2010-04-23 20:35:38
作者phjgt

Log Message

1] 要素数が0の時にeach_common_prefixメソッドを呼び出すと、存在しない空文字列にマッチしてしまうバグを修正
2] 動的構築時にallocatorのリンクリストのサイズの上限に達っした場合(チェック漏れで)不変項が破られてしまうことがあったので修正

Change Summary

差異

--- src/doar/dynamic_allocator.h (revision 83)
+++ src/doar/dynamic_allocator.h (revision 84)
@@ -89,13 +89,13 @@
8989 lnk[idx].next = cur;
9090 }
9191
92- // NOTE: This method assume that variable codes is already sorted.
9392 NodeIndex x_check(const CodeList& codes) {
9493 assert(beg_idx>=CODE_LIMIT);
95-
9694 NodeIndex cur = lnk[beg_idx].next;
97- for(uint32 cnt=0;; cur=lnk[cur].next, cnt++) {
95+ for(uint32 cnt=0;; cur=lnk[cur].next, cnt++) {
9896 assert(cur);
97+ if(cur==lnk.size())
98+ resize_link(lnk.size()*2);
9999
100100 NodeIndex x = cur-codes.front();
101101 if(!bset[x] && can_allocate(codes, x)) {
--- src/doar/builder.h (revision 83)
+++ src/doar/builder.h (revision 84)
@@ -163,6 +163,9 @@
163163
164164 base.resize(node_size);
165165 chck.resize(node_size);
166+
167+ if(tind.size()==0)
168+ base[0].set_base(0);
166169 }
167170
168171 // XXX: There is room for change.
Show on old repository browser