src/share/vm/prims/jni.cpp

Print this page
rev 6560 : 6311046: -Xcheck:jni should support checking of GetPrimitiveArrayCritical.
Summary: Wrapped memory with standard bounds checking "GuardedMemory".
Reviewed-by: zgu, fparain, dcubed


3841   // 1.1 style no longer supported in hotspot.
3842   // According the JNI spec, we should update args->version on return.
3843   // We also use the structure to communicate with launcher about default
3844   // stack size.
3845   if (args->version == JNI_VERSION_1_1) {
3846     args->version = JNI_VERSION_1_2;
3847     // javaStackSize is int in arguments structure
3848     assert(jlong(ThreadStackSize) * K < INT_MAX, "integer overflow");
3849     args->javaStackSize = (jint)(ThreadStackSize * K);
3850   }
3851   return ret;
3852 }
3853 
3854 #ifndef PRODUCT
3855 
3856 #include "gc_implementation/shared/gcTimer.hpp"
3857 #include "gc_interface/collectedHeap.hpp"
3858 #if INCLUDE_ALL_GCS
3859 #include "gc_implementation/g1/heapRegionRemSet.hpp"
3860 #endif

3861 #include "utilities/quickSort.hpp"
3862 #include "utilities/ostream.hpp"
3863 #if INCLUDE_VM_STRUCTS
3864 #include "runtime/vmStructs.hpp"
3865 #endif
3866 
3867 #define run_unit_test(unit_test_function_call)              \
3868   tty->print_cr("Running test: " #unit_test_function_call); \
3869   unit_test_function_call
3870 
3871 // Forward declaration
3872 void TestReservedSpace_test();
3873 void TestReserveMemorySpecial_test();
3874 void TestVirtualSpace_test();
3875 void TestMetaspaceAux_test();
3876 void TestMetachunk_test();
3877 void TestVirtualSpaceNode_test();
3878 void TestNewSize_test();
3879 void TestOldSize_test();
3880 void TestKlass_test();


3884 void TestOldFreeSpaceCalculation_test();
3885 void TestG1BiasedArray_test();
3886 void TestBufferingOopClosure_test();
3887 void TestCodeCacheRemSet_test();
3888 #endif
3889 
3890 void execute_internal_vm_tests() {
3891   if (ExecuteInternalVMTests) {
3892     tty->print_cr("Running internal VM tests");
3893     run_unit_test(TestReservedSpace_test());
3894     run_unit_test(TestReserveMemorySpecial_test());
3895     run_unit_test(TestVirtualSpace_test());
3896     run_unit_test(TestMetaspaceAux_test());
3897     run_unit_test(TestMetachunk_test());
3898     run_unit_test(TestVirtualSpaceNode_test());
3899     run_unit_test(GlobalDefinitions::test_globals());
3900     run_unit_test(GCTimerAllTest::all());
3901     run_unit_test(arrayOopDesc::test_max_array_length());
3902     run_unit_test(CollectedHeap::test_is_in());
3903     run_unit_test(QuickSort::test_quick_sort());

3904     run_unit_test(AltHashing::test_alt_hash());
3905     run_unit_test(test_loggc_filename());
3906     run_unit_test(TestNewSize_test());
3907     run_unit_test(TestOldSize_test());
3908     run_unit_test(TestKlass_test());
3909     run_unit_test(TestBitMap_test());
3910     run_unit_test(TestAsUtf8());
3911 #if INCLUDE_VM_STRUCTS
3912     run_unit_test(VMStructs::test());
3913 #endif
3914 #if INCLUDE_ALL_GCS
3915     run_unit_test(TestOldFreeSpaceCalculation_test());
3916     run_unit_test(TestG1BiasedArray_test());
3917     run_unit_test(HeapRegionRemSet::test_prt());
3918     run_unit_test(TestBufferingOopClosure_test());
3919     run_unit_test(TestCodeCacheRemSet_test());
3920 #endif
3921     tty->print_cr("All internal VM tests passed");
3922   }
3923 }




3841   // 1.1 style no longer supported in hotspot.
3842   // According the JNI spec, we should update args->version on return.
3843   // We also use the structure to communicate with launcher about default
3844   // stack size.
3845   if (args->version == JNI_VERSION_1_1) {
3846     args->version = JNI_VERSION_1_2;
3847     // javaStackSize is int in arguments structure
3848     assert(jlong(ThreadStackSize) * K < INT_MAX, "integer overflow");
3849     args->javaStackSize = (jint)(ThreadStackSize * K);
3850   }
3851   return ret;
3852 }
3853 
3854 #ifndef PRODUCT
3855 
3856 #include "gc_implementation/shared/gcTimer.hpp"
3857 #include "gc_interface/collectedHeap.hpp"
3858 #if INCLUDE_ALL_GCS
3859 #include "gc_implementation/g1/heapRegionRemSet.hpp"
3860 #endif
3861 #include "memory/guardedMemory.hpp"
3862 #include "utilities/quickSort.hpp"
3863 #include "utilities/ostream.hpp"
3864 #if INCLUDE_VM_STRUCTS
3865 #include "runtime/vmStructs.hpp"
3866 #endif
3867 
3868 #define run_unit_test(unit_test_function_call)              \
3869   tty->print_cr("Running test: " #unit_test_function_call); \
3870   unit_test_function_call
3871 
3872 // Forward declaration
3873 void TestReservedSpace_test();
3874 void TestReserveMemorySpecial_test();
3875 void TestVirtualSpace_test();
3876 void TestMetaspaceAux_test();
3877 void TestMetachunk_test();
3878 void TestVirtualSpaceNode_test();
3879 void TestNewSize_test();
3880 void TestOldSize_test();
3881 void TestKlass_test();


3885 void TestOldFreeSpaceCalculation_test();
3886 void TestG1BiasedArray_test();
3887 void TestBufferingOopClosure_test();
3888 void TestCodeCacheRemSet_test();
3889 #endif
3890 
3891 void execute_internal_vm_tests() {
3892   if (ExecuteInternalVMTests) {
3893     tty->print_cr("Running internal VM tests");
3894     run_unit_test(TestReservedSpace_test());
3895     run_unit_test(TestReserveMemorySpecial_test());
3896     run_unit_test(TestVirtualSpace_test());
3897     run_unit_test(TestMetaspaceAux_test());
3898     run_unit_test(TestMetachunk_test());
3899     run_unit_test(TestVirtualSpaceNode_test());
3900     run_unit_test(GlobalDefinitions::test_globals());
3901     run_unit_test(GCTimerAllTest::all());
3902     run_unit_test(arrayOopDesc::test_max_array_length());
3903     run_unit_test(CollectedHeap::test_is_in());
3904     run_unit_test(QuickSort::test_quick_sort());
3905     run_unit_test(GuardedMemory::test_guarded_memory());
3906     run_unit_test(AltHashing::test_alt_hash());
3907     run_unit_test(test_loggc_filename());
3908     run_unit_test(TestNewSize_test());
3909     run_unit_test(TestOldSize_test());
3910     run_unit_test(TestKlass_test());
3911     run_unit_test(TestBitMap_test());
3912     run_unit_test(TestAsUtf8());
3913 #if INCLUDE_VM_STRUCTS
3914     run_unit_test(VMStructs::test());
3915 #endif
3916 #if INCLUDE_ALL_GCS
3917     run_unit_test(TestOldFreeSpaceCalculation_test());
3918     run_unit_test(TestG1BiasedArray_test());
3919     run_unit_test(HeapRegionRemSet::test_prt());
3920     run_unit_test(TestBufferingOopClosure_test());
3921     run_unit_test(TestCodeCacheRemSet_test());
3922 #endif
3923     tty->print_cr("All internal VM tests passed");
3924   }
3925 }