comparison src/share/vm/ci/ciMethod.cpp @ 991:3a2aa26bdc58

6854812: 6.0_14-b08 crashes with a SIGSEGV Reviewed-by: kvn, twisti
author never
date Wed, 16 Sep 2009 11:06:10 -0700
parents c96bf21b756f
children 97125851f396
comparison
equal deleted inserted replaced
990:be094e0c089a 991:3a2aa26bdc58
323 return NULL; 323 return NULL;
324 #endif // COMPILER2 324 #endif // COMPILER2
325 } 325 }
326 326
327 // ------------------------------------------------------------------ 327 // ------------------------------------------------------------------
328 // ciMethod::liveness_at_bci 328 // ciMethod::raw_liveness_at_bci
329 // 329 //
330 // Which local variables are live at a specific bci? 330 // Which local variables are live at a specific bci?
331 MethodLivenessResult ciMethod::liveness_at_bci(int bci) { 331 MethodLivenessResult ciMethod::raw_liveness_at_bci(int bci) {
332 check_is_loaded(); 332 check_is_loaded();
333 if (_liveness == NULL) { 333 if (_liveness == NULL) {
334 // Create the liveness analyzer. 334 // Create the liveness analyzer.
335 Arena* arena = CURRENT_ENV->arena(); 335 Arena* arena = CURRENT_ENV->arena();
336 _liveness = new (arena) MethodLiveness(arena, this); 336 _liveness = new (arena) MethodLiveness(arena, this);
337 _liveness->compute_liveness(); 337 _liveness->compute_liveness();
338 } 338 }
339 MethodLivenessResult result = _liveness->get_liveness_at(bci); 339 return _liveness->get_liveness_at(bci);
340 }
341
342 // ------------------------------------------------------------------
343 // ciMethod::liveness_at_bci
344 //
345 // Which local variables are live at a specific bci? When debugging
346 // will return true for all locals in some cases to improve debug
347 // information.
348 MethodLivenessResult ciMethod::liveness_at_bci(int bci) {
349 MethodLivenessResult result = raw_liveness_at_bci(bci);
340 if (CURRENT_ENV->jvmti_can_access_local_variables() || DeoptimizeALot || CompileTheWorld) { 350 if (CURRENT_ENV->jvmti_can_access_local_variables() || DeoptimizeALot || CompileTheWorld) {
341 // Keep all locals live for the user's edification and amusement. 351 // Keep all locals live for the user's edification and amusement.
342 result.at_put_range(0, result.size(), true); 352 result.at_put_range(0, result.size(), true);
343 } 353 }
344 return result; 354 return result;