mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8277342: vmTestbase/nsk/stress/strace/strace004.java fails with SIGSEGV in InstanceKlass::jni_id_for
Reviewed-by: dholmes, hseigel
This commit is contained in:
parent
976c2bb056
commit
09e8c8c64a
2 changed files with 4 additions and 17 deletions
|
@ -2061,25 +2061,14 @@ Method* InstanceKlass::lookup_method_in_all_interfaces(Symbol* name,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* jni_id_for_impl for jfieldIds only */
|
||||
JNIid* InstanceKlass::jni_id_for_impl(int offset) {
|
||||
MutexLocker ml(JfieldIdCreation_lock);
|
||||
// Retry lookup after we got the lock
|
||||
JNIid* probe = jni_ids() == NULL ? NULL : jni_ids()->find(offset);
|
||||
if (probe == NULL) {
|
||||
// Slow case, allocate new static field identifier
|
||||
probe = new JNIid(this, offset, jni_ids());
|
||||
set_jni_ids(probe);
|
||||
}
|
||||
return probe;
|
||||
}
|
||||
|
||||
|
||||
/* jni_id_for for jfieldIds only */
|
||||
JNIid* InstanceKlass::jni_id_for(int offset) {
|
||||
MutexLocker ml(JfieldIdCreation_lock);
|
||||
JNIid* probe = jni_ids() == NULL ? NULL : jni_ids()->find(offset);
|
||||
if (probe == NULL) {
|
||||
probe = jni_id_for_impl(offset);
|
||||
// Allocate new static field identifier
|
||||
probe = new JNIid(this, offset, jni_ids());
|
||||
set_jni_ids(probe);
|
||||
}
|
||||
return probe;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue