Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/parNew/parNewGeneration.cpp @ 167:feeb96a45707
6696264: assert("narrow oop can never be zero") for GCBasher & ParNewGC
Summary: decouple set_klass() with zeroing the gap when compressed.
Reviewed-by: kvn, ysr, jrose
author | coleenp |
---|---|
date | Wed, 28 May 2008 21:06:24 -0700 |
parents | ba764ed4b6f2 |
children | d1605aabd0a1 12eea04c8b06 |
comparison
equal
deleted
inserted
replaced
166:aaa1137c5ef4 | 167:feeb96a45707 |
---|---|
1167 return false; | 1167 return false; |
1168 } | 1168 } |
1169 // Trim off a prefix of at most objsFromOverflow items | 1169 // Trim off a prefix of at most objsFromOverflow items |
1170 int i = 1; | 1170 int i = 1; |
1171 oop cur = prefix; | 1171 oop cur = prefix; |
1172 while (i < objsFromOverflow && cur->klass() != NULL) { | 1172 while (i < objsFromOverflow && cur->klass_or_null() != NULL) { |
1173 i++; cur = oop(cur->klass()); | 1173 i++; cur = oop(cur->klass()); |
1174 } | 1174 } |
1175 | 1175 |
1176 // Reattach remaining (suffix) to overflow list | 1176 // Reattach remaining (suffix) to overflow list |
1177 if (cur->klass() != NULL) { | 1177 if (cur->klass_or_null() != NULL) { |
1178 oop suffix = oop(cur->klass()); | 1178 oop suffix = oop(cur->klass()); |
1179 cur->set_klass_to_list_ptr(NULL); | 1179 cur->set_klass_to_list_ptr(NULL); |
1180 | 1180 |
1181 // Find last item of suffix list | 1181 // Find last item of suffix list |
1182 oop last = suffix; | 1182 oop last = suffix; |
1183 while (last->klass() != NULL) { | 1183 while (last->klass_or_null() != NULL) { |
1184 last = oop(last->klass()); | 1184 last = oop(last->klass()); |
1185 } | 1185 } |
1186 // Atomically prepend suffix to current overflow list | 1186 // Atomically prepend suffix to current overflow list |
1187 oop cur_overflow_list = _overflow_list; | 1187 oop cur_overflow_list = _overflow_list; |
1188 while (true) { | 1188 while (true) { |