24 |
24 |
25 #ifndef SHARE_VM_UTILITIES_STACK_INLINE_HPP |
25 #ifndef SHARE_VM_UTILITIES_STACK_INLINE_HPP |
26 #define SHARE_VM_UTILITIES_STACK_INLINE_HPP |
26 #define SHARE_VM_UTILITIES_STACK_INLINE_HPP |
27 |
27 |
28 #include "utilities/stack.hpp" |
28 #include "utilities/stack.hpp" |
|
29 #include "utilities/copy.hpp" |
29 |
30 |
30 template <MEMFLAGS F> StackBase<F>::StackBase(size_t segment_size, size_t max_cache_size, |
31 template <MEMFLAGS F> StackBase<F>::StackBase(size_t segment_size, size_t max_cache_size, |
31 size_t max_size): |
32 size_t max_size): |
32 _seg_size(segment_size), |
33 _seg_size(segment_size), |
33 _max_cache_size(max_cache_size), |
34 _max_cache_size(max_cache_size), |
225 template <class E, MEMFLAGS F> |
226 template <class E, MEMFLAGS F> |
226 void Stack<E, F>::zap_segment(E* seg, bool zap_link_field) const |
227 void Stack<E, F>::zap_segment(E* seg, bool zap_link_field) const |
227 { |
228 { |
228 if (!ZapStackSegments) return; |
229 if (!ZapStackSegments) return; |
229 const size_t zap_bytes = segment_bytes() - (zap_link_field ? 0 : sizeof(E*)); |
230 const size_t zap_bytes = segment_bytes() - (zap_link_field ? 0 : sizeof(E*)); |
230 uint32_t* cur = (uint32_t*)seg; |
231 Copy::fill_to_bytes(seg, zap_bytes, badStackSegVal); |
231 const uint32_t* end = cur + zap_bytes / sizeof(uint32_t); |
|
232 while (cur < end) { |
|
233 *cur++ = 0xfadfaded; |
|
234 } |
|
235 } |
232 } |
236 #endif |
233 #endif |
237 |
234 |
238 template <class E, MEMFLAGS F> |
235 template <class E, MEMFLAGS F> |
239 E* ResourceStack<E, F>::alloc(size_t bytes) |
236 E* ResourceStack<E, F>::alloc(size_t bytes) |