src/share/vm/prims/jvm.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8014013 Sdiff src/share/vm/prims

src/share/vm/prims/jvm.cpp

Print this page




1807 
1808     if (k() == SystemDictionary::Throwable_klass()) {
1809       num_fields--;
1810       skip_backtrace = true;
1811     }
1812   }
1813 
1814   objArrayOop r = oopFactory::new_objArray(SystemDictionary::reflect_Field_klass(), num_fields, CHECK_NULL);
1815   objArrayHandle result (THREAD, r);
1816 
1817   int out_idx = 0;
1818   fieldDescriptor fd;
1819   for (JavaFieldStream fs(k); !fs.done(); fs.next()) {
1820     if (skip_backtrace) {
1821       // 4496456 skip java.lang.Throwable.backtrace
1822       int offset = fs.offset();
1823       if (offset == java_lang_Throwable::get_backtrace_offset()) continue;
1824     }
1825 
1826     if (!publicOnly || fs.access_flags().is_public()) {
1827       fd.initialize(k(), fs.index());
1828       oop field = Reflection::new_field(&fd, UseNewReflection, CHECK_NULL);
1829       result->obj_at_put(out_idx, field);
1830       ++out_idx;
1831     }
1832   }
1833   assert(out_idx == num_fields, "just checking");
1834   return (jobjectArray) JNIHandles::make_local(env, result());
1835 }
1836 JVM_END
1837 
1838 JVM_ENTRY(jobjectArray, JVM_GetClassDeclaredMethods(JNIEnv *env, jclass ofClass, jboolean publicOnly))
1839 {
1840   JVMWrapper("JVM_GetClassDeclaredMethods");
1841   JvmtiVMObjectAllocEventCollector oam;
1842 
1843   // Exclude primitive types and array types
1844   if (java_lang_Class::is_primitive(JNIHandles::resolve_non_null(ofClass))
1845       || java_lang_Class::as_Klass(JNIHandles::resolve_non_null(ofClass))->oop_is_array()) {
1846     // Return empty array
1847     oop res = oopFactory::new_objArray(SystemDictionary::reflect_Method_klass(), 0, CHECK_NULL);




1807 
1808     if (k() == SystemDictionary::Throwable_klass()) {
1809       num_fields--;
1810       skip_backtrace = true;
1811     }
1812   }
1813 
1814   objArrayOop r = oopFactory::new_objArray(SystemDictionary::reflect_Field_klass(), num_fields, CHECK_NULL);
1815   objArrayHandle result (THREAD, r);
1816 
1817   int out_idx = 0;
1818   fieldDescriptor fd;
1819   for (JavaFieldStream fs(k); !fs.done(); fs.next()) {
1820     if (skip_backtrace) {
1821       // 4496456 skip java.lang.Throwable.backtrace
1822       int offset = fs.offset();
1823       if (offset == java_lang_Throwable::get_backtrace_offset()) continue;
1824     }
1825 
1826     if (!publicOnly || fs.access_flags().is_public()) {
1827       fd.reinitialize(k(), fs.index());
1828       oop field = Reflection::new_field(&fd, UseNewReflection, CHECK_NULL);
1829       result->obj_at_put(out_idx, field);
1830       ++out_idx;
1831     }
1832   }
1833   assert(out_idx == num_fields, "just checking");
1834   return (jobjectArray) JNIHandles::make_local(env, result());
1835 }
1836 JVM_END
1837 
1838 JVM_ENTRY(jobjectArray, JVM_GetClassDeclaredMethods(JNIEnv *env, jclass ofClass, jboolean publicOnly))
1839 {
1840   JVMWrapper("JVM_GetClassDeclaredMethods");
1841   JvmtiVMObjectAllocEventCollector oam;
1842 
1843   // Exclude primitive types and array types
1844   if (java_lang_Class::is_primitive(JNIHandles::resolve_non_null(ofClass))
1845       || java_lang_Class::as_Klass(JNIHandles::resolve_non_null(ofClass))->oop_is_array()) {
1846     // Return empty array
1847     oop res = oopFactory::new_objArray(SystemDictionary::reflect_Method_klass(), 0, CHECK_NULL);


src/share/vm/prims/jvm.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File