bool VM_RedefineClasses::doit_prologue() { if (_class_count == 0) { _res = JVMTI_ERROR_NONE; return false; } if (_class_defs == NULL) { _res = JVMTI_ERROR_NULL_POINTER; return false; } for (int i = 0; i < _class_count; i++) { if (_class_defs[i].klass == NULL) { _res = JVMTI_ERROR_INVALID_CLASS; return false; } if (_class_defs[i].class_byte_count == 0) { _res = JVMTI_ERROR_INVALID_CLASS_FORMAT; return false; } if (_class_defs[i].class_bytes == NULL) { _res = JVMTI_ERROR_NULL_POINTER; return false; } } // We first load new class versions in the prologue, because somewhere down the // call chain it is required that the current thread is a Java thread. _res = load_new_class_versions(Thread::current()); if (_res != JVMTI_ERROR_NONE) { // Free os::malloc allocated memory in load_new_class_version. os::free(_k_h_new); return false; } return true; }
bool doit_prologue() { // We first load new class versions in the prologue, because somewhere down the // call chain it is required that the current thread is a Java thread. Thread *THREAD = Thread::current(); if ((_res = load_new_class_versions(THREAD)) != JVMDI_ERROR_NONE) { // Free os::malloc allocated memory in load_new_class_version. os::free(_k_h_new); return false; } return true; }