< prev index next >

src/share/vm/prims/jvm.cpp

Print this page
rev 11753 : [mq]: per_review


3349   JvmtiVMObjectAllocEventCollector oam;
3350   objArrayOop result = ClassLoader::get_system_packages(CHECK_NULL);
3351   return (jobjectArray) JNIHandles::make_local(result);
3352 JVM_END
3353 
3354 
3355 // java.lang.ref.Reference ///////////////////////////////////////////////////////////////
3356 
3357 
3358 JVM_ENTRY(jobject, JVM_GetAndClearReferencePendingList(JNIEnv* env))
3359   JVMWrapper("JVM_GetAndClearReferencePendingList");
3360 
3361   MonitorLockerEx ml(Heap_lock);
3362   oop ref = Universe::reference_pending_list();
3363   if (ref != NULL) {
3364     Universe::set_reference_pending_list(NULL);
3365   }
3366   return JNIHandles::make_local(env, ref);
3367 JVM_END
3368 
3369 JVM_ENTRY(jboolean, JVM_CheckReferencePendingList(JNIEnv* env, jboolean await))
3370   JVMWrapper("JVM_CheckReferencePendingList");
3371   MonitorLockerEx ml(Heap_lock);
3372   if (Universe::reference_pending_list() != NULL) {
3373     return true;
3374   } else if (await) {
3375     do {



3376       ml.wait();
3377     } while (Universe::reference_pending_list() == NULL);
3378     return true;
3379   } else {
3380     return false;
3381   }
3382 JVM_END
3383 
3384 
3385 // ObjectInputStream ///////////////////////////////////////////////////////////////
3386 
3387 bool force_verify_field_access(Klass* current_class, Klass* field_class, AccessFlags access, bool classloader_only) {
3388   if (current_class == NULL) {
3389     return true;
3390   }
3391   if ((current_class == field_class) || access.is_public()) {
3392     return true;
3393   }
3394 
3395   if (access.is_protected()) {
3396     // See if current_class is a subclass of field_class
3397     if (current_class->is_subclass_of(field_class)) {
3398       return true;
3399     }
3400   }




3349   JvmtiVMObjectAllocEventCollector oam;
3350   objArrayOop result = ClassLoader::get_system_packages(CHECK_NULL);
3351   return (jobjectArray) JNIHandles::make_local(result);
3352 JVM_END
3353 
3354 
3355 // java.lang.ref.Reference ///////////////////////////////////////////////////////////////
3356 
3357 
3358 JVM_ENTRY(jobject, JVM_GetAndClearReferencePendingList(JNIEnv* env))
3359   JVMWrapper("JVM_GetAndClearReferencePendingList");
3360 
3361   MonitorLockerEx ml(Heap_lock);
3362   oop ref = Universe::reference_pending_list();
3363   if (ref != NULL) {
3364     Universe::set_reference_pending_list(NULL);
3365   }
3366   return JNIHandles::make_local(env, ref);
3367 JVM_END
3368 
3369 JVM_ENTRY(jboolean, JVM_HasReferencePendingList(JNIEnv* env))
3370   JVMWrapper("JVM_HasReferencePendingList");
3371   MonitorLockerEx ml(Heap_lock);
3372   return Universe::has_reference_pending_list();
3373 JVM_END
3374 
3375 JVM_ENTRY(void, JVM_WaitForReferencePendingList(JNIEnv* env))
3376   JVMWrapper("JVM_WaitForReferencePendingList");
3377   MonitorLockerEx ml(Heap_lock);
3378   while (!Universe::has_reference_pending_list()) {
3379     ml.wait();




3380   }
3381 JVM_END
3382 
3383 
3384 // ObjectInputStream ///////////////////////////////////////////////////////////////
3385 
3386 bool force_verify_field_access(Klass* current_class, Klass* field_class, AccessFlags access, bool classloader_only) {
3387   if (current_class == NULL) {
3388     return true;
3389   }
3390   if ((current_class == field_class) || access.is_public()) {
3391     return true;
3392   }
3393 
3394   if (access.is_protected()) {
3395     // See if current_class is a subclass of field_class
3396     if (current_class->is_subclass_of(field_class)) {
3397       return true;
3398     }
3399   }


< prev index next >