diff options
| -rwxr-xr-x | decoder/apply_fsa_models.cc | 1 | ||||
| -rwxr-xr-x | utils/value_array.h | 16 | 
2 files changed, 9 insertions, 8 deletions
| diff --git a/decoder/apply_fsa_models.cc b/decoder/apply_fsa_models.cc index fd3e1289..f9edb005 100755 --- a/decoder/apply_fsa_models.cc +++ b/decoder/apply_fsa_models.cc @@ -254,6 +254,7 @@ public:      adj.reinit_map(edge_for,*this);  #else      adj.reinit(edge_for.size()); +    SHOWM3(DBUILDTRIE,"done_building_reinit",edge_for.size(),adj.size(),2);      Adj::iterator o=adj.begin();      for (PrefixTrieEdgeFor::iterator i=edge_for.begin(),e=edge_for.end();i!=e;++i) {        SHOWM3(DBUILDTRIE,"edge_for",o-adj.begin(),i->first,i->second); diff --git a/utils/value_array.h b/utils/value_array.h index 3a8b3292..2010fefe 100755 --- a/utils/value_array.h +++ b/utils/value_array.h @@ -57,7 +57,7 @@ public:    typedef T* pointer;    size_type size() const { return sz; } -  bool empty() const { return size() == 0; } +  bool empty() const { return !sz; }    iterator begin() { return array; }    iterator end() { return array + sz; } @@ -87,15 +87,15 @@ protected:    {      if (!array) return;      // it's cool that this destroys in reverse order of construction, but why bother? -    for (size_type i = sz; i != 0;) -      A::destroy(array + --i); +    for (pointer i=array+sz;i>array;) +      A::destroy(--i);    }    void dealloc() { -    if (array != NULL) A::deallocate(array,sz); +    if (sz && array != NULL) A::deallocate(array,sz);      sz=0;    }    void alloc(size_type s) { -    array = s==0 ? 0 : A::allocate(sz); +    array = s==0 ? 0 : A::allocate(s);      sz=s;    } @@ -133,11 +133,11 @@ protected:      copy_construct(itr,end,array);    }    inline void fill(const_reference t) { -    for (T *i=array,*e=array+sz;i!=e;++i) +    for (pointer i=array,e=array+sz;i!=e;++i)        new(i) T(t);    }    inline void fill() { -    for (T *i=array,*e=array+sz;i!=e;++i) +    for (pointer i=array,e=array+sz;i!=e;++i)        new(i) T();    } @@ -184,7 +184,7 @@ public:    }    template <class I> -  void reinit(I itr, I end) { +  void reinit_range(I itr, I end) {      reinit_noconstruct(std::distance(itr,end));      copy_construct(itr,end,array);    } | 
