< prev index next >
src/share/vm/classfile/javaClasses.cpp
Print this page
@@ -167,29 +167,35 @@
compute_offset(coder_offset, k, vmSymbols::coder_name(), vmSymbols::byte_signature());
initialized = true;
}
-class CompactStringsFixup : public FieldClosure {
+class StringBoolFieldFixup : public FieldClosure {
private:
bool _value;
+ Symbol *_name;
public:
- CompactStringsFixup(bool value) : _value(value) {}
+ StringBoolFieldFixup(Symbol *name, bool value) : _name(name), _value(value) {}
void do_field(fieldDescriptor* fd) {
- if (fd->name() == vmSymbols::compact_strings_name()) {
+ if (fd->name() == _name) {
oop mirror = fd->field_holder()->java_mirror();
assert(fd->field_holder() == SystemDictionary::String_klass(), "Should be String");
assert(mirror != NULL, "String must have mirror already");
mirror->bool_field_put(fd->offset(), _value);
}
}
};
void java_lang_String::set_compact_strings(bool value) {
- CompactStringsFixup fix(value);
+ StringBoolFieldFixup fix(vmSymbols::compact_strings_name(), value);
+ InstanceKlass::cast(SystemDictionary::String_klass())->do_local_static_fields(&fix);
+}
+
+void java_lang_String::set_debug_intrinsics(bool value) {
+ StringBoolFieldFixup fix(vmSymbols::debug_intrinsics_name(), value);
InstanceKlass::cast(SystemDictionary::String_klass())->do_local_static_fields(&fix);
}
Handle java_lang_String::basic_create(int length, bool is_latin1, TRAPS) {
assert(initialized, "Must be initialized");
< prev index next >