Mercurial > hg > truffle
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; |