< prev index next >

src/hotspot/share/classfile/classFileParser.cpp

Print this page

2062     m->set_intrinsic_id(vmIntrinsics::_compiledLambdaForm);
2063   if (has_annotation(_method_Hidden))
2064     m->set_hidden(true);
2065   if (has_annotation(_method_Scoped))
2066     m->set_scoped(true);
2067   if (has_annotation(_method_IntrinsicCandidate) && !m->is_synthetic())
2068     m->set_intrinsic_candidate(true);
2069   if (has_annotation(_jdk_internal_vm_annotation_ReservedStackAccess))
2070     m->set_has_reserved_stack_access(true);
2071 }
2072 
2073 void ClassFileParser::ClassAnnotationCollector::apply_to(InstanceKlass* ik) {
2074   assert(ik != NULL, "invariant");
2075   if (has_annotation(_jdk_internal_vm_annotation_Contended)) {
2076     ik->set_is_contended(is_contended());
2077   }
2078   if (has_annotation(_jdk_internal_ValueBased)) {
2079     ik->set_has_value_based_class_annotation();
2080     if (DiagnoseSyncOnValueBasedClasses) {
2081       ik->set_is_value_based();
2082       ik->set_prototype_header(markWord::prototype());




2083     }
2084   }
2085 }
2086 
2087 #define MAX_ARGS_SIZE 255
2088 #define MAX_CODE_SIZE 65535
2089 #define INITIAL_MAX_LVT_NUMBER 256
2090 
2091 /* Copy class file LVT's/LVTT's into the HotSpot internal LVT.
2092  *
2093  * Rules for LVT's and LVTT's are:
2094  *   - There can be any number of LVT's and LVTT's.
2095  *   - If there are n LVT's, it is the same as if there was just
2096  *     one LVT containing all the entries from the n LVT's.
2097  *   - There may be no more than one LVT entry per local variable.
2098  *     Two LVT entries are 'equal' if these fields are the same:
2099  *        start_pc, length, name, slot
2100  *   - There may be no more than one LVTT entry per each LVT entry.
2101  *     Each LVTT entry has to match some LVT entry.
2102  *   - HotSpot internal LVT keeps natural ordering of class file LVT entries.

2062     m->set_intrinsic_id(vmIntrinsics::_compiledLambdaForm);
2063   if (has_annotation(_method_Hidden))
2064     m->set_hidden(true);
2065   if (has_annotation(_method_Scoped))
2066     m->set_scoped(true);
2067   if (has_annotation(_method_IntrinsicCandidate) && !m->is_synthetic())
2068     m->set_intrinsic_candidate(true);
2069   if (has_annotation(_jdk_internal_vm_annotation_ReservedStackAccess))
2070     m->set_has_reserved_stack_access(true);
2071 }
2072 
2073 void ClassFileParser::ClassAnnotationCollector::apply_to(InstanceKlass* ik) {
2074   assert(ik != NULL, "invariant");
2075   if (has_annotation(_jdk_internal_vm_annotation_Contended)) {
2076     ik->set_is_contended(is_contended());
2077   }
2078   if (has_annotation(_jdk_internal_ValueBased)) {
2079     ik->set_has_value_based_class_annotation();
2080     if (DiagnoseSyncOnValueBasedClasses) {
2081       ik->set_is_value_based();
2082       if (UseCompactObjectHeaders) {
2083         ik->set_prototype_header(markWord::prototype() LP64_ONLY(.set_klass(ik)));
2084       } else {
2085         ik->set_prototype_header(markWord::prototype());
2086       }
2087     }
2088   }
2089 }
2090 
2091 #define MAX_ARGS_SIZE 255
2092 #define MAX_CODE_SIZE 65535
2093 #define INITIAL_MAX_LVT_NUMBER 256
2094 
2095 /* Copy class file LVT's/LVTT's into the HotSpot internal LVT.
2096  *
2097  * Rules for LVT's and LVTT's are:
2098  *   - There can be any number of LVT's and LVTT's.
2099  *   - If there are n LVT's, it is the same as if there was just
2100  *     one LVT containing all the entries from the n LVT's.
2101  *   - There may be no more than one LVT entry per local variable.
2102  *     Two LVT entries are 'equal' if these fields are the same:
2103  *        start_pc, length, name, slot
2104  *   - There may be no more than one LVTT entry per each LVT entry.
2105  *     Each LVTT entry has to match some LVT entry.
2106  *   - HotSpot internal LVT keeps natural ordering of class file LVT entries.
< prev index next >