192 assert(obj->is_symbol(), "should be symbol");
193 }
194
195 int symbolKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
196 assert(obj->is_symbol(), "should be symbol");
197 return symbolOop(obj)->object_size();
198 }
199
200 int symbolKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
201 HeapWord* beg_addr, HeapWord* end_addr) {
202 assert(obj->is_symbol(), "should be symbol");
203 return symbolOop(obj)->object_size();
204 }
205 #endif // SERIALGC
206
207 #ifndef PRODUCT
208 // Printing
209
210 void symbolKlass::oop_print_on(oop obj, outputStream* st) {
211 st->print("Symbol: '");
212 symbolOop sym = symbolOop(obj);
213 for (int i = 0; i < sym->utf8_length(); i++) {
214 st->print("%c", sym->byte_at(i));
215 }
216 st->print("'");
217 }
218
219 void symbolKlass::oop_print_value_on(oop obj, outputStream* st) {
220 symbolOop sym = symbolOop(obj);
221 st->print("'");
222 for (int i = 0; i < sym->utf8_length(); i++) {
223 st->print("%c", sym->byte_at(i));
224 }
225 st->print("'");
226 }
227
228 #endif //PRODUCT
229
230 const char* symbolKlass::internal_name() const {
231 return "{symbol}";
232 }
|
192 assert(obj->is_symbol(), "should be symbol");
193 }
194
195 int symbolKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
196 assert(obj->is_symbol(), "should be symbol");
197 return symbolOop(obj)->object_size();
198 }
199
200 int symbolKlass::oop_update_pointers(ParCompactionManager* cm, oop obj,
201 HeapWord* beg_addr, HeapWord* end_addr) {
202 assert(obj->is_symbol(), "should be symbol");
203 return symbolOop(obj)->object_size();
204 }
205 #endif // SERIALGC
206
207 #ifndef PRODUCT
208 // Printing
209
210 void symbolKlass::oop_print_on(oop obj, outputStream* st) {
211 st->print("Symbol: '");
212 symbolOop(obj)->print_symbol_on(st);
213 st->print("'");
214 }
215
216 void symbolKlass::oop_print_value_on(oop obj, outputStream* st) {
217 symbolOop sym = symbolOop(obj);
218 st->print("'");
219 for (int i = 0; i < sym->utf8_length(); i++) {
220 st->print("%c", sym->byte_at(i));
221 }
222 st->print("'");
223 }
224
225 #endif //PRODUCT
226
227 const char* symbolKlass::internal_name() const {
228 return "{symbol}";
229 }
|