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