equal
deleted
inserted
replaced
97 // safepoint interval. |
97 // safepoint interval. |
98 return true; |
98 return true; |
99 } |
99 } |
100 return false; |
100 return false; |
101 } |
101 } |
102 |
|
103 template <class T, MEMFLAGS F> juint RehashableHashtable<T, F>::_seed = 0; |
|
104 |
102 |
105 // Create a new table and using alternate hash code, populate the new table |
103 // Create a new table and using alternate hash code, populate the new table |
106 // with the existing elements. This can be used to change the hash code |
104 // with the existing elements. This can be used to change the hash code |
107 // and could in the future change the size of the table. |
105 // and could in the future change the size of the table. |
108 |
106 |
205 *p != NULL; |
203 *p != NULL; |
206 p = (*p)->next_addr()) { |
204 p = (*p)->next_addr()) { |
207 if (*top + entry_size() > end) { |
205 if (*top + entry_size() > end) { |
208 report_out_of_shared_space(SharedMiscData); |
206 report_out_of_shared_space(SharedMiscData); |
209 } |
207 } |
210 *p = (BasicHashtableEntry<F>*)memcpy(*top, *p, entry_size()); |
208 *p = (BasicHashtableEntry<F>*)memcpy(*top, (void*)*p, entry_size()); |
211 *top += entry_size(); |
209 *top += entry_size(); |
212 } |
210 } |
213 } |
211 } |
214 *plen = (char*)(*top) - (char*)plen - sizeof(*plen); |
212 *plen = (char*)(*top) - (char*)plen - sizeof(*plen); |
215 |
213 |
285 *top += sizeof(intptr_t); |
283 *top += sizeof(intptr_t); |
286 |
284 |
287 if (*top + len > end) { |
285 if (*top + len > end) { |
288 report_out_of_shared_space(SharedMiscData); |
286 report_out_of_shared_space(SharedMiscData); |
289 } |
287 } |
290 _buckets = (HashtableBucket<F>*)memcpy(*top, _buckets, len); |
288 _buckets = (HashtableBucket<F>*)memcpy(*top, (void*)_buckets, len); |
291 *top += len; |
289 *top += len; |
292 } |
290 } |
293 |
291 |
294 |
292 |
295 #ifndef PRODUCT |
293 #ifndef PRODUCT |