290 VM_RedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_redefine);
291 VMThread::execute(&op);
292 return (op.check_error());
293 } /* end RedefineClasses */
294
295
296 //
297 // Object functions
298 //
299
300 // size_ptr - pre-checked for NULL
301 jvmtiError
302 JvmtiEnv::GetObjectSize(jobject object, jlong* size_ptr) {
303 oop mirror = JNIHandles::resolve_external_guard(object);
304 NULL_CHECK(mirror, JVMTI_ERROR_INVALID_OBJECT);
305
306 if (mirror->klass() == SystemDictionary::Class_klass() &&
307 !java_lang_Class::is_primitive(mirror)) {
308 Klass* k = java_lang_Class::as_Klass(mirror);
309 assert(k != NULL, "class for non-primitive mirror must exist");
310 *size_ptr = k->size() * wordSize;
311 } else {
312 *size_ptr = mirror->size() * wordSize;
313 }
314 return JVMTI_ERROR_NONE;
315 } /* end GetObjectSize */
316
317 //
318 // Method functions
319 //
320
321 // prefix - NULL is a valid value, must be checked
322 jvmtiError
323 JvmtiEnv::SetNativeMethodPrefix(const char* prefix) {
324 return prefix == NULL?
325 SetNativeMethodPrefixes(0, NULL) :
326 SetNativeMethodPrefixes(1, (char**)&prefix);
327 } /* end SetNativeMethodPrefix */
328
329
330 // prefix_count - pre-checked to be greater than or equal to 0
331 // prefixes - pre-checked for NULL
332 jvmtiError
|
290 VM_RedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_redefine);
291 VMThread::execute(&op);
292 return (op.check_error());
293 } /* end RedefineClasses */
294
295
296 //
297 // Object functions
298 //
299
300 // size_ptr - pre-checked for NULL
301 jvmtiError
302 JvmtiEnv::GetObjectSize(jobject object, jlong* size_ptr) {
303 oop mirror = JNIHandles::resolve_external_guard(object);
304 NULL_CHECK(mirror, JVMTI_ERROR_INVALID_OBJECT);
305
306 if (mirror->klass() == SystemDictionary::Class_klass() &&
307 !java_lang_Class::is_primitive(mirror)) {
308 Klass* k = java_lang_Class::as_Klass(mirror);
309 assert(k != NULL, "class for non-primitive mirror must exist");
310 *size_ptr = (jlong)k->size() * wordSize;
311 } else {
312 *size_ptr = (jlong)mirror->size() * wordSize;
313 }
314 return JVMTI_ERROR_NONE;
315 } /* end GetObjectSize */
316
317 //
318 // Method functions
319 //
320
321 // prefix - NULL is a valid value, must be checked
322 jvmtiError
323 JvmtiEnv::SetNativeMethodPrefix(const char* prefix) {
324 return prefix == NULL?
325 SetNativeMethodPrefixes(0, NULL) :
326 SetNativeMethodPrefixes(1, (char**)&prefix);
327 } /* end SetNativeMethodPrefix */
328
329
330 // prefix_count - pre-checked to be greater than or equal to 0
331 // prefixes - pre-checked for NULL
332 jvmtiError
|