1989
1990 CallbackWrapper wrapper(tag_map(), obj);
1991 jvmtiIterationControl control = (*cb)(root_kind,
1992 wrapper.klass_tag(),
1993 wrapper.obj_size(),
1994 wrapper.obj_tag_p(),
1995 (void*)user_data());
1996 // push root to visit stack when following references
1997 if (control == JVMTI_ITERATION_CONTINUE &&
1998 basic_context()->object_ref_callback() != NULL) {
1999 visit_stack()->push(obj);
2000 }
2001 return control != JVMTI_ITERATION_ABORT;
2002 }
2003
2004 // invoke basic style stack ref callback
2005 inline bool CallbackInvoker::invoke_basic_stack_ref_callback(jvmtiHeapRootKind root_kind,
2006 jlong thread_tag,
2007 jint depth,
2008 jmethodID method,
2009 jint slot,
2010 oop obj) {
2011 assert(ServiceUtil::visible_oop(obj), "checking");
2012
2013 // if we stack refs should be reported
2014 jvmtiStackReferenceCallback cb = basic_context()->stack_ref_callback();
2015 if (cb == NULL) {
2016 return check_for_visit(obj);
2017 }
2018
2019 CallbackWrapper wrapper(tag_map(), obj);
2020 jvmtiIterationControl control = (*cb)(root_kind,
2021 wrapper.klass_tag(),
2022 wrapper.obj_size(),
2023 wrapper.obj_tag_p(),
2024 thread_tag,
2025 depth,
2026 method,
2027 slot,
2028 (void*)user_data());
2029 // push root to visit stack when following references
|
1989
1990 CallbackWrapper wrapper(tag_map(), obj);
1991 jvmtiIterationControl control = (*cb)(root_kind,
1992 wrapper.klass_tag(),
1993 wrapper.obj_size(),
1994 wrapper.obj_tag_p(),
1995 (void*)user_data());
1996 // push root to visit stack when following references
1997 if (control == JVMTI_ITERATION_CONTINUE &&
1998 basic_context()->object_ref_callback() != NULL) {
1999 visit_stack()->push(obj);
2000 }
2001 return control != JVMTI_ITERATION_ABORT;
2002 }
2003
2004 // invoke basic style stack ref callback
2005 inline bool CallbackInvoker::invoke_basic_stack_ref_callback(jvmtiHeapRootKind root_kind,
2006 jlong thread_tag,
2007 jint depth,
2008 jmethodID method,
2009 int slot,
2010 oop obj) {
2011 assert(ServiceUtil::visible_oop(obj), "checking");
2012
2013 // if we stack refs should be reported
2014 jvmtiStackReferenceCallback cb = basic_context()->stack_ref_callback();
2015 if (cb == NULL) {
2016 return check_for_visit(obj);
2017 }
2018
2019 CallbackWrapper wrapper(tag_map(), obj);
2020 jvmtiIterationControl control = (*cb)(root_kind,
2021 wrapper.klass_tag(),
2022 wrapper.obj_size(),
2023 wrapper.obj_tag_p(),
2024 thread_tag,
2025 depth,
2026 method,
2027 slot,
2028 (void*)user_data());
2029 // push root to visit stack when following references
|