src/share/vm/prims/jvmtiManageCapabilities.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 6385687 Sdiff src/share/vm/prims

src/share/vm/prims/jvmtiManageCapabilities.cpp

Print this page




 302   exclude(current, unwanted, result);
 303 }
 304 
 305 
 306 void JvmtiManageCapabilities::update() {
 307   jvmtiCapabilities avail;
 308 
 309   // all capabilities
 310   either(&always_capabilities, &always_solo_capabilities, &avail);
 311 
 312   bool interp_events =
 313     avail.can_generate_field_access_events ||
 314     avail.can_generate_field_modification_events ||
 315     avail.can_generate_single_step_events ||
 316     avail.can_generate_frame_pop_events ||
 317     avail.can_generate_method_entry_events ||
 318     avail.can_generate_method_exit_events;
 319   bool enter_all_methods =
 320     interp_events ||
 321     avail.can_generate_breakpoint_events;
 322   UseFastEmptyMethods = !enter_all_methods;
 323   UseFastAccessorMethods = !enter_all_methods;



 324 
 325   if (avail.can_generate_breakpoint_events) {
 326     RewriteFrequentPairs = false;
 327   }
 328 
 329   // If can_redefine_classes is enabled in the onload phase then we know that the
 330   // dependency information recorded by the compiler is complete.
 331   if ((avail.can_redefine_classes || avail.can_retransform_classes) &&
 332       JvmtiEnv::get_phase() == JVMTI_PHASE_ONLOAD) {
 333     JvmtiExport::set_all_dependencies_are_recorded(true);
 334   }
 335 
 336   JvmtiExport::set_can_get_source_debug_extension(avail.can_get_source_debug_extension);
 337   JvmtiExport::set_can_maintain_original_method_order(avail.can_maintain_original_method_order);
 338   JvmtiExport::set_can_post_interpreter_events(interp_events);
 339   JvmtiExport::set_can_hotswap_or_post_breakpoint(
 340     avail.can_generate_breakpoint_events ||
 341     avail.can_redefine_classes ||
 342     avail.can_retransform_classes);
 343   JvmtiExport::set_can_modify_any_class(




 302   exclude(current, unwanted, result);
 303 }
 304 
 305 
 306 void JvmtiManageCapabilities::update() {
 307   jvmtiCapabilities avail;
 308 
 309   // all capabilities
 310   either(&always_capabilities, &always_solo_capabilities, &avail);
 311 
 312   bool interp_events =
 313     avail.can_generate_field_access_events ||
 314     avail.can_generate_field_modification_events ||
 315     avail.can_generate_single_step_events ||
 316     avail.can_generate_frame_pop_events ||
 317     avail.can_generate_method_entry_events ||
 318     avail.can_generate_method_exit_events;
 319   bool enter_all_methods =
 320     interp_events ||
 321     avail.can_generate_breakpoint_events;
 322   if (enter_all_methods) {
 323     // Disable these when tracking the bytecodes
 324     UseFastEmptyMethods = false;
 325     UseFastAccessorMethods = false;
 326   }
 327 
 328   if (avail.can_generate_breakpoint_events) {
 329     RewriteFrequentPairs = false;
 330   }
 331 
 332   // If can_redefine_classes is enabled in the onload phase then we know that the
 333   // dependency information recorded by the compiler is complete.
 334   if ((avail.can_redefine_classes || avail.can_retransform_classes) &&
 335       JvmtiEnv::get_phase() == JVMTI_PHASE_ONLOAD) {
 336     JvmtiExport::set_all_dependencies_are_recorded(true);
 337   }
 338 
 339   JvmtiExport::set_can_get_source_debug_extension(avail.can_get_source_debug_extension);
 340   JvmtiExport::set_can_maintain_original_method_order(avail.can_maintain_original_method_order);
 341   JvmtiExport::set_can_post_interpreter_events(interp_events);
 342   JvmtiExport::set_can_hotswap_or_post_breakpoint(
 343     avail.can_generate_breakpoint_events ||
 344     avail.can_redefine_classes ||
 345     avail.can_retransform_classes);
 346   JvmtiExport::set_can_modify_any_class(


src/share/vm/prims/jvmtiManageCapabilities.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File