< 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 >