diff -r 550db5cefcc2 -r 8a2d1c2ceb88 src/misc/array.hpp --- a/src/misc/array.hpp Wed Jun 27 01:01:16 2007 +0000 +++ b/src/misc/array.hpp Sat Jul 07 09:20:52 2007 +0000 @@ -64,10 +64,23 @@ /** indexed access (const) */ FORCEINLINE const Titem& operator [] (int idx) const { - CSubArray& sa = m_a[idx / Tblock_size]; - Titem& item = sa [idx % Tblock_size]; + const CSubArray& sa = m_a[idx / Tblock_size]; + const Titem& item = sa [idx % Tblock_size]; return item; } + + template void Dump(D &dmp) const + { + dmp.WriteLine("capacity = %d", Tcapacity); + int num_items = Size(); + dmp.WriteLine("num_items = %d", num_items); + CStrA name; + for (int i = 0; i < num_items; i++) { + const Titem& item = (*this)[i]; + name.Format("item[%d]", i); + dmp.WriteStructT(name.Data(), &item); + } + } }; #endif /* ARRAY_HPP */