234 // using ThreadInVMfromUnknown here since in case of JVMCI compiler, 235 // thread is already in VM state. 236 ThreadInVMfromUnknown tiv; 237 JNIHandles::resolve(value())->print_value_on(st); 238 } 239 240 241 // ConstantOopReadValue 242 243 ConstantOopReadValue::ConstantOopReadValue(DebugInfoReadStream* stream) { 244 _value = Handle(Thread::current(), stream->read_oop()); 245 assert(_value() == NULL || 246 Universe::heap()->is_in_reserved(_value()), "Should be in heap"); 247 } 248 249 void ConstantOopReadValue::write_on(DebugInfoWriteStream* stream) { 250 ShouldNotReachHere(); 251 } 252 253 void ConstantOopReadValue::print_on(outputStream* st) const { 254 value()()->print_value_on(st); 255 } 256 257 258 // MonitorValue 259 260 MonitorValue::MonitorValue(ScopeValue* owner, Location basic_lock, bool eliminated) { 261 _owner = owner; 262 _basic_lock = basic_lock; 263 _eliminated = eliminated; 264 } 265 266 MonitorValue::MonitorValue(DebugInfoReadStream* stream) { 267 _basic_lock = Location(stream); 268 _owner = ScopeValue::read_from(stream); 269 _eliminated = (stream->read_bool() != 0); 270 } 271 272 void MonitorValue::write_on(DebugInfoWriteStream* stream) { 273 _basic_lock.write_on(stream); 274 _owner->write_on(stream); | 234 // using ThreadInVMfromUnknown here since in case of JVMCI compiler, 235 // thread is already in VM state. 236 ThreadInVMfromUnknown tiv; 237 JNIHandles::resolve(value())->print_value_on(st); 238 } 239 240 241 // ConstantOopReadValue 242 243 ConstantOopReadValue::ConstantOopReadValue(DebugInfoReadStream* stream) { 244 _value = Handle(Thread::current(), stream->read_oop()); 245 assert(_value() == NULL || 246 Universe::heap()->is_in_reserved(_value()), "Should be in heap"); 247 } 248 249 void ConstantOopReadValue::write_on(DebugInfoWriteStream* stream) { 250 ShouldNotReachHere(); 251 } 252 253 void ConstantOopReadValue::print_on(outputStream* st) const { 254 if (value()() != NULL) { 255 value()()->print_value_on(st); 256 } else { 257 st->print_cr("NULL"); 258 } 259 } 260 261 262 // MonitorValue 263 264 MonitorValue::MonitorValue(ScopeValue* owner, Location basic_lock, bool eliminated) { 265 _owner = owner; 266 _basic_lock = basic_lock; 267 _eliminated = eliminated; 268 } 269 270 MonitorValue::MonitorValue(DebugInfoReadStream* stream) { 271 _basic_lock = Location(stream); 272 _owner = ScopeValue::read_from(stream); 273 _eliminated = (stream->read_bool() != 0); 274 } 275 276 void MonitorValue::write_on(DebugInfoWriteStream* stream) { 277 _basic_lock.write_on(stream); 278 _owner->write_on(stream); |