comparison src/share/vm/graal/graalCompilerToVM.cpp @ 20895:23433619a7cd

Consistently use JNIHandles::make_local with THREAD parameter
author Christian Wimmer <christian.wimmer@oracle.com>
date Sat, 11 Apr 2015 00:15:55 -0700
parents 8d4496e10a51
children 294ed4ce1fa0
comparison
equal deleted inserted replaced
20894:231597f3bbbe 20895:23433619a7cd
152 } 152 }
153 } 153 }
154 } 154 }
155 } 155 }
156 156
157 return (jbyteArray) JNIHandles::make_local(reconstituted_code); 157 return (jbyteArray) JNIHandles::make_local(THREAD, reconstituted_code);
158 C2V_END 158 C2V_END
159 159
160 C2V_VMENTRY(jint, exceptionTableLength, (JNIEnv *, jobject, jlong metaspace_method)) 160 C2V_VMENTRY(jint, exceptionTableLength, (JNIEnv *, jobject, jlong metaspace_method))
161 ResourceMark rm; 161 ResourceMark rm;
162 methodHandle method = asMethod(metaspace_method); 162 methodHandle method = asMethod(metaspace_method);
574 if (st.size() <= 0) { 574 if (st.size() <= 0) {
575 return NULL; 575 return NULL;
576 } 576 }
577 577
578 Handle result = java_lang_String::create_from_platform_dependent_str(st.as_string(), CHECK_NULL); 578 Handle result = java_lang_String::create_from_platform_dependent_str(st.as_string(), CHECK_NULL);
579 return JNIHandles::make_local(result()); 579 return JNIHandles::make_local(THREAD, result());
580 C2V_END 580 C2V_END
581 581
582 C2V_VMENTRY(jobject, getStackTraceElement, (JNIEnv*, jobject, jlong metaspace_method, int bci)) 582 C2V_VMENTRY(jobject, getStackTraceElement, (JNIEnv*, jobject, jlong metaspace_method, int bci))
583 ResourceMark rm; 583 ResourceMark rm;
584 HandleMark hm; 584 HandleMark hm;
585 585
586 methodHandle method = asMethod(metaspace_method); 586 methodHandle method = asMethod(metaspace_method);
587 oop element = java_lang_StackTraceElement::create(method, bci, CHECK_NULL); 587 oop element = java_lang_StackTraceElement::create(method, bci, CHECK_NULL);
588 return JNIHandles::make_local(element); 588 return JNIHandles::make_local(THREAD, element);
589 C2V_END 589 C2V_END
590 590
591 C2V_VMENTRY(jobject, executeCompiledMethodVarargs, (JNIEnv*, jobject, jobject args, jobject hotspotInstalledCode)) 591 C2V_VMENTRY(jobject, executeCompiledMethodVarargs, (JNIEnv*, jobject, jobject args, jobject hotspotInstalledCode))
592 ResourceMark rm; 592 ResourceMark rm;
593 HandleMark hm; 593 HandleMark hm;
607 JavaCalls::call(&result, mh, &jca, CHECK_NULL); 607 JavaCalls::call(&result, mh, &jca, CHECK_NULL);
608 608
609 if (jap.get_ret_type() == T_VOID) { 609 if (jap.get_ret_type() == T_VOID) {
610 return NULL; 610 return NULL;
611 } else if (jap.get_ret_type() == T_OBJECT || jap.get_ret_type() == T_ARRAY) { 611 } else if (jap.get_ret_type() == T_OBJECT || jap.get_ret_type() == T_ARRAY) {
612 return JNIHandles::make_local((oop) result.get_jobject()); 612 return JNIHandles::make_local(THREAD, (oop) result.get_jobject());
613 } else { 613 } else {
614 jvalue *value = (jvalue *) result.get_value_addr(); 614 jvalue *value = (jvalue *) result.get_value_addr();
615 // Narrow the value down if required (Important on big endian machines) 615 // Narrow the value down if required (Important on big endian machines)
616 switch (jap.get_ret_type()) { 616 switch (jap.get_ret_type()) {
617 case T_BOOLEAN: 617 case T_BOOLEAN:
626 case T_SHORT: 626 case T_SHORT:
627 value->s = (jshort) value->i; 627 value->s = (jshort) value->i;
628 break; 628 break;
629 } 629 }
630 oop o = java_lang_boxing_object::create(jap.get_ret_type(), value, CHECK_NULL); 630 oop o = java_lang_boxing_object::create(jap.get_ret_type(), value, CHECK_NULL);
631 return JNIHandles::make_local(o); 631 return JNIHandles::make_local(THREAD, o);
632 } 632 }
633 C2V_END 633 C2V_END
634 634
635 C2V_VMENTRY(jlongArray, getLineNumberTable, (JNIEnv *, jobject, jlong metaspace_method)) 635 C2V_VMENTRY(jlongArray, getLineNumberTable, (JNIEnv *, jobject, jlong metaspace_method))
636 Method* method = (Method*) metaspace_method; 636 Method* method = (Method*) metaspace_method;
654 value = ((long) stream.line()); 654 value = ((long) stream.line());
655 result->long_at_put(i + 1, value); 655 result->long_at_put(i + 1, value);
656 i += 2; 656 i += 2;
657 } 657 }
658 658
659 return (jlongArray) JNIHandles::make_local(result); 659 return (jlongArray) JNIHandles::make_local(THREAD, result);
660 C2V_END 660 C2V_END
661 661
662 C2V_VMENTRY(jlong, getLocalVariableTableStart, (JNIEnv *, jobject, jlong metaspace_method)) 662 C2V_VMENTRY(jlong, getLocalVariableTableStart, (JNIEnv *, jobject, jlong metaspace_method))
663 ResourceMark rm; 663 ResourceMark rm;
664 Method* method = (Method*) metaspace_method; 664 Method* method = (Method*) metaspace_method;
707 VMThread::execute(&op); 707 VMThread::execute(&op);
708 } 708 }
709 InstalledCode::set_address(hotspotInstalledCode, 0); 709 InstalledCode::set_address(hotspotInstalledCode, 0);
710 C2V_END 710 C2V_END
711 711
712 C2V_VMENTRY(jobject, getJavaMirror, (JNIEnv*, jobject, jlong metaspace_klass)) 712 C2V_VMENTRY(jobject, getJavaMirror, (JNIEnv* env, jobject, jlong metaspace_klass))
713 Klass* klass = asKlass(metaspace_klass); 713 Klass* klass = asKlass(metaspace_klass);
714 return JNIHandles::make_local(klass->java_mirror()); 714 return JNIHandles::make_local(THREAD, klass->java_mirror());
715 C2V_END 715 C2V_END
716 716
717 C2V_VMENTRY(jlong, readUnsafeKlassPointer, (JNIEnv*, jobject, jobject o)) 717 C2V_VMENTRY(jlong, readUnsafeKlassPointer, (JNIEnv*, jobject, jobject o))
718 oop resolved_o = JNIHandles::resolve(o); 718 oop resolved_o = JNIHandles::resolve(o);
719 jlong klass = (jlong)(address)resolved_o->klass(); 719 jlong klass = (jlong)(address)resolved_o->klass();
720 return klass; 720 return klass;
721 C2V_END 721 C2V_END
722 722
723 C2V_VMENTRY(jobject, readUncompressedOop, (JNIEnv*, jobject, jlong addr)) 723 C2V_VMENTRY(jobject, readUncompressedOop, (JNIEnv*, jobject, jlong addr))
724 oop ret = oopDesc::load_decode_heap_oop((oop*)(address)addr); 724 oop ret = oopDesc::load_decode_heap_oop((oop*)(address)addr);
725 return JNIHandles::make_local(ret); 725 return JNIHandles::make_local(THREAD, ret);
726 C2V_END 726 C2V_END
727 727
728 C2V_VMENTRY(jlongArray, collectCounters, (JNIEnv*, jobject)) 728 C2V_VMENTRY(jlongArray, collectCounters, (JNIEnv*, jobject))
729 typeArrayOop arrayOop = oopFactory::new_longArray(GraalCounterSize, CHECK_NULL); 729 typeArrayOop arrayOop = oopFactory::new_longArray(GraalCounterSize, CHECK_NULL);
730 JavaThread::collect_counters(arrayOop); 730 JavaThread::collect_counters(arrayOop);
731 return (jlongArray) JNIHandles::make_local(arrayOop); 731 return (jlongArray) JNIHandles::make_local(THREAD, arrayOop);
732 C2V_END 732 C2V_END
733 733
734 C2V_VMENTRY(int, allocateCompileId, (JNIEnv*, jobject, jlong metaspace_method, int entry_bci)) 734 C2V_VMENTRY(int, allocateCompileId, (JNIEnv*, jobject, jlong metaspace_method, int entry_bci))
735 HandleMark hm; 735 HandleMark hm;
736 ResourceMark rm; 736 ResourceMark rm;