comparison src/share/vm/prims/jni.cpp @ 3779:04760e41b01e

7016112: CMS: crash during promotion testing Summary: Also reviewed by mikael.gerdin@oracle.com; stdlib:qsort() does byte-by-byte swapping on Windows. This leads to pointer shearing. Fix is to implement a quicksort that does full pointer updates. Reviewed-by: never, coleenp, ysr
author brutisso
date Tue, 28 Jun 2011 14:23:27 +0200
parents e1162778c1c8
children 8a4fc2990229
comparison
equal deleted inserted replaced
3778:5f6f2615433a 3779:04760e41b01e
3294 args->javaStackSize = (jint)(ThreadStackSize * K); 3294 args->javaStackSize = (jint)(ThreadStackSize * K);
3295 } 3295 }
3296 return ret; 3296 return ret;
3297 } 3297 }
3298 3298
3299 #ifndef PRODUCT
3300
3301 #include "utilities/quickSort.hpp"
3302
3303 void execute_internal_vm_tests() {
3304 if (ExecuteInternalVMTests) {
3305 assert(QuickSort::test_quick_sort(), "test_quick_sort failed");
3306 tty->print_cr("All tests passed");
3307 }
3308 }
3309
3310 #endif
3311
3299 HS_DTRACE_PROBE_DECL3(hotspot_jni, CreateJavaVM__entry, vm, penv, args); 3312 HS_DTRACE_PROBE_DECL3(hotspot_jni, CreateJavaVM__entry, vm, penv, args);
3300 DT_RETURN_MARK_DECL(CreateJavaVM, jint); 3313 DT_RETURN_MARK_DECL(CreateJavaVM, jint);
3301 3314
3302 _JNI_IMPORT_OR_EXPORT_ jint JNICALL JNI_CreateJavaVM(JavaVM **vm, void **penv, void *args) { 3315 _JNI_IMPORT_OR_EXPORT_ jint JNICALL JNI_CreateJavaVM(JavaVM **vm, void **penv, void *args) {
3303 HS_DTRACE_PROBE3(hotspot_jni, CreateJavaVM__entry, vm, penv, args); 3316 HS_DTRACE_PROBE3(hotspot_jni, CreateJavaVM__entry, vm, penv, args);
3384 // control both compiler and architectural-based reordering. 3397 // control both compiler and architectural-based reordering.
3385 OrderAccess::release_store(&vm_created, 0); 3398 OrderAccess::release_store(&vm_created, 0);
3386 } 3399 }
3387 3400
3388 NOT_PRODUCT(test_error_handler(ErrorHandlerTest)); 3401 NOT_PRODUCT(test_error_handler(ErrorHandlerTest));
3402 NOT_PRODUCT(execute_internal_vm_tests());
3389 return result; 3403 return result;
3390 } 3404 }
3391 3405
3392 HS_DTRACE_PROBE_DECL3(hotspot_jni, GetCreatedJavaVMs__entry, \ 3406 HS_DTRACE_PROBE_DECL3(hotspot_jni, GetCreatedJavaVMs__entry, \
3393 JavaVM**, jsize, jsize*); 3407 JavaVM**, jsize, jsize*);