| 439 | } |
| 440 | |
| 441 | jvmtiError VM::RedefineClassesHook(jvmtiEnv* jvmti, jint class_count, const jvmtiClassDefinition* class_definitions) { |
| 442 | jvmtiError result = _orig_RedefineClasses(jvmti, class_count, class_definitions); |
| 443 | |
| 444 | if (result == 0) { |
| 445 | // jmethodIDs are invalidated after RedefineClasses |
| 446 | JNIEnv* env = jni(); |
| 447 | for (int i = 0; i < class_count; i++) { |
| 448 | if (class_definitions[i].klass != NULL) { |
| 449 | loadMethodIDs(jvmti, env, class_definitions[i].klass, false); |
| 450 | } |
| 451 | } |
| 452 | } |
| 453 | |
| 454 | return result; |
| 455 | } |
| 456 | |
| 457 | jvmtiError VM::RetransformClassesHook(jvmtiEnv* jvmti, jint class_count, const jclass* classes) { |
| 458 | jvmtiError result = _orig_RetransformClasses(jvmti, class_count, classes); |
nothing calls this directly
no outgoing calls
no test coverage detected