81 void Stack<E, F>::clear(bool clear_cache) |
81 void Stack<E, F>::clear(bool clear_cache) |
82 { |
82 { |
83 free_segments(_cur_seg); |
83 free_segments(_cur_seg); |
84 if (clear_cache) free_segments(_cache); |
84 if (clear_cache) free_segments(_cache); |
85 reset(clear_cache); |
85 reset(clear_cache); |
86 } |
|
87 |
|
88 template <class E, MEMFLAGS F> |
|
89 size_t Stack<E, F>::default_segment_size() |
|
90 { |
|
91 // Number of elements that fit in 4K bytes minus the size of two pointers |
|
92 // (link field and malloc header). |
|
93 return (4096 - 2 * sizeof(E*)) / sizeof(E); |
|
94 } |
86 } |
95 |
87 |
96 template <class E, MEMFLAGS F> |
88 template <class E, MEMFLAGS F> |
97 size_t Stack<E, F>::adjust_segment_size(size_t seg_size) |
89 size_t Stack<E, F>::adjust_segment_size(size_t seg_size) |
98 { |
90 { |