< prev index next >

hotspot/src/share/vm/classfile/javaClasses.inline.hpp

Print this page




  56 inline bool java_lang_invoke_MemberName::is_instance(oop obj) {
  57   return obj != NULL && is_subclass(obj->klass());
  58 }
  59 
  60 inline bool java_lang_invoke_MethodType::is_instance(oop obj) {
  61   return obj != NULL && obj->klass() == SystemDictionary::MethodType_klass();
  62 }
  63 
  64 inline bool java_lang_invoke_MethodHandle::is_instance(oop obj) {
  65   return obj != NULL && is_subclass(obj->klass());
  66 }
  67 
  68 inline bool java_lang_Class::is_instance(oop obj) {
  69   return obj != NULL && obj->klass() == SystemDictionary::Class_klass();
  70 }
  71 
  72 inline bool java_lang_invoke_DirectMethodHandle::is_instance(oop obj) {
  73   return obj != NULL && is_subclass(obj->klass());
  74 }
  75 
































































  76 #endif // SHARE_VM_CLASSFILE_JAVACLASSES_INLINE_HPP


  56 inline bool java_lang_invoke_MemberName::is_instance(oop obj) {
  57   return obj != NULL && is_subclass(obj->klass());
  58 }
  59 
  60 inline bool java_lang_invoke_MethodType::is_instance(oop obj) {
  61   return obj != NULL && obj->klass() == SystemDictionary::MethodType_klass();
  62 }
  63 
  64 inline bool java_lang_invoke_MethodHandle::is_instance(oop obj) {
  65   return obj != NULL && is_subclass(obj->klass());
  66 }
  67 
  68 inline bool java_lang_Class::is_instance(oop obj) {
  69   return obj != NULL && obj->klass() == SystemDictionary::Class_klass();
  70 }
  71 
  72 inline bool java_lang_invoke_DirectMethodHandle::is_instance(oop obj) {
  73   return obj != NULL && is_subclass(obj->klass());
  74 }
  75 
  76 inline int BackTrace::merge_bci_and_version(int bci, int version) {
  77   // only store u2 for version, checking for overflow.
  78   if (version > USHRT_MAX || version < 0) version = USHRT_MAX;
  79   assert((jushort)bci == bci, "bci should be short");
  80   return build_int_from_shorts(version, bci);
  81 }
  82 
  83 inline int BackTrace::merge_mid_and_cpref(int mid, int cpref) {
  84   // only store u2 for mid and cpref, checking for overflow.
  85   assert((jushort)mid == mid, "mid should be short");
  86   assert((jushort)cpref == cpref, "cpref should be short");
  87   return build_int_from_shorts(cpref, mid);
  88 }
  89 
  90 inline int BackTrace::bci_at(unsigned int merged) {
  91   return extract_high_short_from_int(merged);
  92 }
  93 
  94 inline int BackTrace::version_at(unsigned int merged) {
  95   return extract_low_short_from_int(merged);
  96 }
  97 
  98 inline int BackTrace::mid_at(unsigned int merged) {
  99   return extract_high_short_from_int(merged);
 100 }
 101 
 102 inline int BackTrace::cpref_at(unsigned int merged) {
 103   return extract_low_short_from_int(merged);
 104 }
 105 
 106 inline int BackTrace::get_line_number(methodHandle method, int bci) {
 107   int line_number = 0;
 108   if (method->is_native()) {
 109     // Negative value different from -1 below, enabling Java code in
 110     // class java.lang.StackTraceElement to distinguish "native" from
 111     // "no LineNumberTable".  JDK tests for -2.
 112     line_number = -2;
 113   } else {
 114     // Returns -1 if no LineNumberTable, and otherwise actual line number
 115     line_number = method->line_number_from_bci(bci);
 116     if (line_number == -1 && ShowHiddenFrames) {
 117       line_number = bci + 1000000;
 118     }
 119   }
 120   return line_number;
 121 }
 122 
 123 /*
 124  * Returns the source file name of a given InstanceKlass and version
 125  */
 126 inline Symbol* BackTrace::get_source_file_name(InstanceKlass* holder, int version) {
 127   // Find the specific ik version that contains this source_file_name_index
 128   // via the previous versions list, but use the current version's
 129   // constant pool to look it up.  The previous version's index has been
 130   // merged for the current constant pool.
 131   InstanceKlass* ik = holder->get_klass_version(version);
 132   if (ik != NULL) {
 133     return ik->source_file_name();
 134   }
 135   
 136   // This version has been cleaned up.
 137   return NULL;
 138 }
 139 
 140 #endif // SHARE_VM_CLASSFILE_JAVACLASSES_INLINE_HPP
< prev index next >