--- a/hotspot/src/share/vm/classfile/classFileParser.cpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp Fri Jan 18 11:03:15 2013 +0100
@@ -2503,26 +2503,38 @@
*has_default_methods = true;
}
methods->at_put(index, method());
- if (*methods_annotations == NULL) {
- *methods_annotations =
- MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL);
+
+ if (method_annotations != NULL) {
+ if (*methods_annotations == NULL) {
+ *methods_annotations =
+ MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL);
+ }
+ (*methods_annotations)->at_put(index, method_annotations);
}
- (*methods_annotations)->at_put(index, method_annotations);
- if (*methods_parameter_annotations == NULL) {
- *methods_parameter_annotations =
- MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL);
+
+ if (method_parameter_annotations != NULL) {
+ if (*methods_parameter_annotations == NULL) {
+ *methods_parameter_annotations =
+ MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL);
+ }
+ (*methods_parameter_annotations)->at_put(index, method_parameter_annotations);
}
- (*methods_parameter_annotations)->at_put(index, method_parameter_annotations);
- if (*methods_default_annotations == NULL) {
- *methods_default_annotations =
- MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL);
+
+ if (method_default_annotations != NULL) {
+ if (*methods_default_annotations == NULL) {
+ *methods_default_annotations =
+ MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL);
+ }
+ (*methods_default_annotations)->at_put(index, method_default_annotations);
}
- (*methods_default_annotations)->at_put(index, method_default_annotations);
- if (*methods_type_annotations == NULL) {
- *methods_type_annotations =
- MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL);
+
+ if (method_type_annotations != NULL) {
+ if (*methods_type_annotations == NULL) {
+ *methods_type_annotations =
+ MetadataFactory::new_array<AnnotationArray*>(loader_data, length, NULL, CHECK_NULL);
+ }
+ (*methods_type_annotations)->at_put(index, method_type_annotations);
}
- (*methods_type_annotations)->at_put(index, method_type_annotations);
}
if (_need_verify && length > 1) {
@@ -3338,8 +3350,7 @@
bool has_final_method = false;
AccessFlags promoted_flags;
promoted_flags.set_flags(0);
- // These need to be oop pointers because they are allocated lazily
- // inside parse_methods inside a nested HandleMark
+
Array<AnnotationArray*>* methods_annotations = NULL;
Array<AnnotationArray*>* methods_parameter_annotations = NULL;
Array<AnnotationArray*>* methods_default_annotations = NULL;
--- a/hotspot/src/share/vm/classfile/classLoaderData.cpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/classfile/classLoaderData.cpp Fri Jan 18 11:03:15 2013 +0100
@@ -318,6 +318,7 @@
}
Metaspace* ClassLoaderData::metaspace_non_null() {
+ assert(!DumpSharedSpaces, "wrong metaspace!");
// If the metaspace has not been allocated, create a new one. Might want
// to create smaller arena for Reflection class loaders also.
// The reason for the delayed allocation is because some class loaders are
--- a/hotspot/src/share/vm/classfile/defaultMethods.cpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/classfile/defaultMethods.cpp Fri Jan 18 11:03:15 2013 +0100
@@ -1285,13 +1285,15 @@
enum { ANNOTATIONS, PARAMETERS, DEFAULTS, NUM_ARRAYS };
- Array<AnnotationArray*>* original_annots[NUM_ARRAYS];
+ Array<AnnotationArray*>* original_annots[NUM_ARRAYS] = { NULL };
Array<Method*>* original_methods = klass->methods();
Annotations* annots = klass->annotations();
- original_annots[ANNOTATIONS] = annots->methods_annotations();
- original_annots[PARAMETERS] = annots->methods_parameter_annotations();
- original_annots[DEFAULTS] = annots->methods_default_annotations();
+ if (annots != NULL) {
+ original_annots[ANNOTATIONS] = annots->methods_annotations();
+ original_annots[PARAMETERS] = annots->methods_parameter_annotations();
+ original_annots[DEFAULTS] = annots->methods_default_annotations();
+ }
Array<int>* original_ordering = klass->method_ordering();
Array<int>* merged_ordering = Universe::the_empty_int_array();
@@ -1370,9 +1372,15 @@
// Replace klass methods with new merged lists
klass->set_methods(merged_methods);
- annots->set_methods_annotations(merged_annots[ANNOTATIONS]);
- annots->set_methods_parameter_annotations(merged_annots[PARAMETERS]);
- annots->set_methods_default_annotations(merged_annots[DEFAULTS]);
+ if (annots != NULL) {
+ annots->set_methods_annotations(merged_annots[ANNOTATIONS]);
+ annots->set_methods_parameter_annotations(merged_annots[PARAMETERS]);
+ annots->set_methods_default_annotations(merged_annots[DEFAULTS]);
+ } else {
+ assert(merged_annots[ANNOTATIONS] == NULL, "Must be");
+ assert(merged_annots[PARAMETERS] == NULL, "Must be");
+ assert(merged_annots[DEFAULTS] == NULL, "Must be");
+ }
ClassLoaderData* cld = klass->class_loader_data();
MetadataFactory::free_array(cld, original_methods);
--- a/hotspot/src/share/vm/classfile/javaClasses.cpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/classfile/javaClasses.cpp Fri Jan 18 11:03:15 2013 +0100
@@ -687,19 +687,6 @@
}
-Method* java_lang_Class::resolved_constructor(oop java_class) {
- Metadata* constructor = java_class->metadata_field(_resolved_constructor_offset);
- assert(constructor == NULL || constructor->is_method(), "should be method");
- return ((Method*)constructor);
-}
-
-
-void java_lang_Class::set_resolved_constructor(oop java_class, Method* constructor) {
- assert(constructor->is_method(), "should be method");
- java_class->metadata_field_put(_resolved_constructor_offset, constructor);
-}
-
-
bool java_lang_Class::is_primitive(oop java_class) {
// should assert:
//assert(java_lang_Class::is_instance(java_class), "must be a Class object");
@@ -2949,7 +2936,6 @@
int java_lang_Class::_klass_offset;
int java_lang_Class::_array_klass_offset;
-int java_lang_Class::_resolved_constructor_offset;
int java_lang_Class::_oop_size_offset;
int java_lang_Class::_static_oop_field_count_offset;
GrowableArray<Klass*>* java_lang_Class::_fixup_mirror_list = NULL;
@@ -3303,7 +3289,6 @@
// Fake fields
// CHECK_OFFSET("java/lang/Class", java_lang_Class, klass); // %%% this needs to be checked
// CHECK_OFFSET("java/lang/Class", java_lang_Class, array_klass); // %%% this needs to be checked
- // CHECK_OFFSET("java/lang/Class", java_lang_Class, resolved_constructor); // %%% this needs to be checked
// java.lang.Throwable
--- a/hotspot/src/share/vm/classfile/javaClasses.hpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/classfile/javaClasses.hpp Fri Jan 18 11:03:15 2013 +0100
@@ -206,7 +206,6 @@
#define CLASS_INJECTED_FIELDS(macro) \
macro(java_lang_Class, klass, intptr_signature, false) \
- macro(java_lang_Class, resolved_constructor, intptr_signature, false) \
macro(java_lang_Class, array_klass, intptr_signature, false) \
macro(java_lang_Class, oop_size, int_signature, false) \
macro(java_lang_Class, static_oop_field_count, int_signature, false)
@@ -218,7 +217,6 @@
// The fake offsets are added by the class loader when java.lang.Class is loaded
static int _klass_offset;
- static int _resolved_constructor_offset;
static int _array_klass_offset;
static int _oop_size_offset;
@@ -254,15 +252,11 @@
static bool is_primitive(oop java_class);
static BasicType primitive_type(oop java_class);
static oop primitive_mirror(BasicType t);
- // JVM_NewInstance support
- static Method* resolved_constructor(oop java_class);
- static void set_resolved_constructor(oop java_class, Method* constructor);
// JVM_NewArray support
static Klass* array_klass(oop java_class);
static void set_array_klass(oop java_class, Klass* klass);
// compiler support for class operations
static int klass_offset_in_bytes() { return _klass_offset; }
- static int resolved_constructor_offset_in_bytes() { return _resolved_constructor_offset; }
static int array_klass_offset_in_bytes() { return _array_klass_offset; }
// Support for classRedefinedCount field
static int classRedefinedCount(oop the_class_mirror);
--- a/hotspot/src/share/vm/classfile/vmSymbols.hpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp Fri Jan 18 11:03:15 2013 +0100
@@ -386,7 +386,6 @@
template(basicType_name, "basicType") \
template(append_name, "append") \
template(klass_name, "klass") \
- template(resolved_constructor_name, "resolved_constructor") \
template(array_klass_name, "array_klass") \
template(oop_size_name, "oop_size") \
template(static_oop_field_count_name, "static_oop_field_count") \
--- a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp Fri Jan 18 11:03:15 2013 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -287,24 +287,24 @@
"The number of times we'll force an overflow during " \
"concurrent marking") \
\
- experimental(uintx, G1NewSizePercent, 20, \
+ experimental(uintx, G1NewSizePercent, 5, \
"Percentage (0-100) of the heap size to use as default " \
"minimum young gen size.") \
\
- experimental(uintx, G1MaxNewSizePercent, 80, \
+ experimental(uintx, G1MaxNewSizePercent, 60, \
"Percentage (0-100) of the heap size to use as default " \
" maximum young gen size.") \
\
- experimental(uintx, G1MixedGCLiveThresholdPercent, 90, \
+ experimental(uintx, G1MixedGCLiveThresholdPercent, 65, \
"Threshold for regions to be considered for inclusion in the " \
"collection set of mixed GCs. " \
"Regions with live bytes exceeding this will not be collected.") \
\
- product(uintx, G1HeapWastePercent, 5, \
+ product(uintx, G1HeapWastePercent, 10, \
"Amount of space, expressed as a percentage of the heap size, " \
"that G1 is willing not to collect to avoid expensive GCs.") \
\
- product(uintx, G1MixedGCCountTarget, 4, \
+ product(uintx, G1MixedGCCountTarget, 8, \
"The target number of mixed GCs after a marking cycle.") \
\
experimental(uintx, G1OldCSetRegionThresholdPercent, 10, \
--- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Fri Jan 18 11:03:15 2013 +0100
@@ -878,12 +878,6 @@
bool ParNewGeneration::_avoid_promotion_undo = false;
-void ParNewGeneration::adjust_desired_tenuring_threshold() {
- // Set the desired survivor size to half the real survivor space
- _tenuring_threshold =
- age_table()->compute_tenuring_threshold(to()->capacity()/HeapWordSize);
-}
-
// A Generation that does parallel young-gen collection.
void ParNewGeneration::collect(bool full,
@@ -1013,6 +1007,8 @@
size_policy->reset_gc_overhead_limit_count();
assert(to()->is_empty(), "to space should be empty now");
+
+ adjust_desired_tenuring_threshold();
} else {
assert(_promo_failure_scan_stack.is_empty(), "post condition");
_promo_failure_scan_stack.clear(true); // Clear cached segments.
@@ -1035,7 +1031,6 @@
from()->set_concurrent_iteration_safe_limit(from()->top());
to()->set_concurrent_iteration_safe_limit(to()->top());
- adjust_desired_tenuring_threshold();
if (ResizePLAB) {
plab_stats()->adjust_desired_plab_sz(n_workers);
}
--- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp Fri Jan 18 11:03:15 2013 +0100
@@ -347,10 +347,6 @@
bool survivor_overflow() { return _survivor_overflow; }
void set_survivor_overflow(bool v) { _survivor_overflow = v; }
- // Adjust the tenuring threshold. See the implementation for
- // the details of the policy.
- virtual void adjust_desired_tenuring_threshold();
-
public:
ParNewGeneration(ReservedSpace rs, size_t initial_byte_size, int level);
--- a/hotspot/src/share/vm/memory/defNewGeneration.cpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/memory/defNewGeneration.cpp Fri Jan 18 11:03:15 2013 +0100
@@ -550,6 +550,11 @@
return allocate(size, is_tlab);
}
+void DefNewGeneration::adjust_desired_tenuring_threshold() {
+ // Set the desired survivor size to half the real survivor space
+ _tenuring_threshold =
+ age_table()->compute_tenuring_threshold(to()->capacity()/HeapWordSize);
+}
void DefNewGeneration::collect(bool full,
bool clear_all_soft_refs,
@@ -649,9 +654,7 @@
assert(to()->is_empty(), "to space should be empty now");
- // Set the desired survivor size to half the real survivor space
- _tenuring_threshold =
- age_table()->compute_tenuring_threshold(to()->capacity()/HeapWordSize);
+ adjust_desired_tenuring_threshold();
// A successful scavenge should restart the GC time limit count which is
// for full GC's.
--- a/hotspot/src/share/vm/memory/defNewGeneration.hpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/memory/defNewGeneration.hpp Fri Jan 18 11:03:15 2013 +0100
@@ -124,7 +124,9 @@
_should_allocate_from_space = true;
}
- protected:
+ // Tenuring
+ void adjust_desired_tenuring_threshold();
+
// Spaces
EdenSpace* _eden_space;
ContiguousSpace* _from_space;
--- a/hotspot/src/share/vm/memory/metadataFactory.hpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/memory/metadataFactory.hpp Fri Jan 18 11:03:15 2013 +0100
@@ -66,7 +66,11 @@
if (data != NULL) {
assert(loader_data != NULL, "shouldn't pass null");
int size = data->size();
- loader_data->metaspace_non_null()->deallocate((MetaWord*)data, size, false);
+ if (DumpSharedSpaces) {
+ loader_data->ro_metaspace()->deallocate((MetaWord*)data, size, false);
+ } else {
+ loader_data->metaspace_non_null()->deallocate((MetaWord*)data, size, false);
+ }
}
}
@@ -77,6 +81,7 @@
assert(loader_data != NULL, "shouldn't pass null");
int size = md->size();
// Call metadata's deallocate function which will call deallocate fields
+ assert(!DumpSharedSpaces, "cannot deallocate metadata when dumping CDS archive");
assert(!md->on_stack(), "can't deallocate things on stack");
md->deallocate_contents(loader_data);
loader_data->metaspace_non_null()->deallocate((MetaWord*)md, size, md->is_klass());
--- a/hotspot/src/share/vm/oops/instanceKlass.cpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/oops/instanceKlass.cpp Fri Jan 18 11:03:15 2013 +0100
@@ -2890,11 +2890,7 @@
st->print(BULLET"fake entry for mirror: ");
mirrored_klass->print_value_on_maybe_null(st);
st->cr();
- st->print(BULLET"fake entry resolved_constructor: ");
- Method* ctor = java_lang_Class::resolved_constructor(obj);
- ctor->print_value_on_maybe_null(st);
Klass* array_klass = java_lang_Class::array_klass(obj);
- st->cr();
st->print(BULLET"fake entry for array: ");
array_klass->print_value_on_maybe_null(st);
st->cr();
--- a/hotspot/src/share/vm/prims/jvm.cpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/prims/jvm.cpp Fri Jan 18 11:03:15 2013 +0100
@@ -1582,8 +1582,11 @@
if (!java_lang_Class::is_primitive(JNIHandles::resolve(cls))) {
Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve(cls));
if (k->oop_is_instance()) {
- typeArrayOop a = Annotations::make_java_array(InstanceKlass::cast(k)->type_annotations()->class_annotations(), CHECK_NULL);
- return (jbyteArray) JNIHandles::make_local(env, a);
+ Annotations* type_annotations = InstanceKlass::cast(k)->type_annotations();
+ if (type_annotations != NULL) {
+ typeArrayOop a = Annotations::make_java_array(type_annotations->class_annotations(), CHECK_NULL);
+ return (jbyteArray) JNIHandles::make_local(env, a);
+ }
}
}
return NULL;
--- a/hotspot/src/share/vm/runtime/globals.hpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/runtime/globals.hpp Fri Jan 18 11:03:15 2013 +0100
@@ -972,18 +972,6 @@
notproduct(uintx, WarnOnStalledSpinLock, 0, \
"Prints warnings for stalled SpinLocks") \
\
- develop(bool, InitializeJavaLangSystem, true, \
- "Initialize java.lang.System - turn off for individual " \
- "method debugging") \
- \
- develop(bool, InitializeJavaLangString, true, \
- "Initialize java.lang.String - turn off for individual " \
- "method debugging") \
- \
- develop(bool, InitializeJavaLangExceptionsErrors, true, \
- "Initialize various error and exception classes - turn off for " \
- "individual method debugging") \
- \
product(bool, RegisterFinalizersAtInit, true, \
"Register finalizable objects at end of Object.<init> or " \
"after allocation") \
--- a/hotspot/src/share/vm/runtime/thread.cpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/runtime/thread.cpp Fri Jan 18 11:03:15 2013 +0100
@@ -1716,7 +1716,6 @@
// cleanup_failed_attach_current_thread as well.
void JavaThread::exit(bool destroy_vm, ExitType exit_type) {
assert(this == JavaThread::current(), "thread consistency check");
- if (!InitializeJavaLangSystem) return;
HandleMark hm(this);
Handle uncaught_exception(this, this->pending_exception());
@@ -3469,11 +3468,7 @@
create_vm_init_libraries();
}
- if (InitializeJavaLangString) {
- initialize_class(vmSymbols::java_lang_String(), CHECK_0);
- } else {
- warning("java.lang.String not initialized");
- }
+ initialize_class(vmSymbols::java_lang_String(), CHECK_0);
if (AggressiveOpts) {
{
@@ -3514,53 +3509,39 @@
}
// Initialize java_lang.System (needed before creating the thread)
- if (InitializeJavaLangSystem) {
- initialize_class(vmSymbols::java_lang_System(), CHECK_0);
- initialize_class(vmSymbols::java_lang_ThreadGroup(), CHECK_0);
- Handle thread_group = create_initial_thread_group(CHECK_0);
- Universe::set_main_thread_group(thread_group());
- initialize_class(vmSymbols::java_lang_Thread(), CHECK_0);
- oop thread_object = create_initial_thread(thread_group, main_thread, CHECK_0);
- main_thread->set_threadObj(thread_object);
- // Set thread status to running since main thread has
- // been started and running.
- java_lang_Thread::set_thread_status(thread_object,
- java_lang_Thread::RUNNABLE);
-
- // The VM creates & returns objects of this class. Make sure it's initialized.
- initialize_class(vmSymbols::java_lang_Class(), CHECK_0);
-
- // The VM preresolves methods to these classes. Make sure that they get initialized
- initialize_class(vmSymbols::java_lang_reflect_Method(), CHECK_0);
- initialize_class(vmSymbols::java_lang_ref_Finalizer(), CHECK_0);
- call_initializeSystemClass(CHECK_0);
-
- // get the Java runtime name after java.lang.System is initialized
- JDK_Version::set_runtime_name(get_java_runtime_name(THREAD));
- JDK_Version::set_runtime_version(get_java_runtime_version(THREAD));
- } else {
- warning("java.lang.System not initialized");
- }
+ initialize_class(vmSymbols::java_lang_System(), CHECK_0);
+ initialize_class(vmSymbols::java_lang_ThreadGroup(), CHECK_0);
+ Handle thread_group = create_initial_thread_group(CHECK_0);
+ Universe::set_main_thread_group(thread_group());
+ initialize_class(vmSymbols::java_lang_Thread(), CHECK_0);
+ oop thread_object = create_initial_thread(thread_group, main_thread, CHECK_0);
+ main_thread->set_threadObj(thread_object);
+ // Set thread status to running since main thread has
+ // been started and running.
+ java_lang_Thread::set_thread_status(thread_object,
+ java_lang_Thread::RUNNABLE);
+
+ // The VM creates & returns objects of this class. Make sure it's initialized.
+ initialize_class(vmSymbols::java_lang_Class(), CHECK_0);
+
+ // The VM preresolves methods to these classes. Make sure that they get initialized
+ initialize_class(vmSymbols::java_lang_reflect_Method(), CHECK_0);
+ initialize_class(vmSymbols::java_lang_ref_Finalizer(), CHECK_0);
+ call_initializeSystemClass(CHECK_0);
+
+ // get the Java runtime name after java.lang.System is initialized
+ JDK_Version::set_runtime_name(get_java_runtime_name(THREAD));
+ JDK_Version::set_runtime_version(get_java_runtime_version(THREAD));
// an instance of OutOfMemory exception has been allocated earlier
- if (InitializeJavaLangExceptionsErrors) {
- initialize_class(vmSymbols::java_lang_OutOfMemoryError(), CHECK_0);
- initialize_class(vmSymbols::java_lang_NullPointerException(), CHECK_0);
- initialize_class(vmSymbols::java_lang_ClassCastException(), CHECK_0);
- initialize_class(vmSymbols::java_lang_ArrayStoreException(), CHECK_0);
- initialize_class(vmSymbols::java_lang_ArithmeticException(), CHECK_0);
- initialize_class(vmSymbols::java_lang_StackOverflowError(), CHECK_0);
- initialize_class(vmSymbols::java_lang_IllegalMonitorStateException(), CHECK_0);
- initialize_class(vmSymbols::java_lang_IllegalArgumentException(), CHECK_0);
- } else {
- warning("java.lang.OutOfMemoryError has not been initialized");
- warning("java.lang.NullPointerException has not been initialized");
- warning("java.lang.ClassCastException has not been initialized");
- warning("java.lang.ArrayStoreException has not been initialized");
- warning("java.lang.ArithmeticException has not been initialized");
- warning("java.lang.StackOverflowError has not been initialized");
- warning("java.lang.IllegalArgumentException has not been initialized");
- }
+ initialize_class(vmSymbols::java_lang_OutOfMemoryError(), CHECK_0);
+ initialize_class(vmSymbols::java_lang_NullPointerException(), CHECK_0);
+ initialize_class(vmSymbols::java_lang_ClassCastException(), CHECK_0);
+ initialize_class(vmSymbols::java_lang_ArrayStoreException(), CHECK_0);
+ initialize_class(vmSymbols::java_lang_ArithmeticException(), CHECK_0);
+ initialize_class(vmSymbols::java_lang_StackOverflowError(), CHECK_0);
+ initialize_class(vmSymbols::java_lang_IllegalMonitorStateException(), CHECK_0);
+ initialize_class(vmSymbols::java_lang_IllegalArgumentException(), CHECK_0);
}
// See : bugid 4211085.
--- a/hotspot/src/share/vm/runtime/vmStructs.cpp Thu Jan 17 18:47:36 2013 -0800
+++ b/hotspot/src/share/vm/runtime/vmStructs.cpp Fri Jan 18 11:03:15 2013 +0100
@@ -1198,7 +1198,6 @@
/*********************************/ \
\
static_field(java_lang_Class, _klass_offset, int) \
- static_field(java_lang_Class, _resolved_constructor_offset, int) \
static_field(java_lang_Class, _array_klass_offset, int) \
static_field(java_lang_Class, _oop_size_offset, int) \
static_field(java_lang_Class, _static_oop_field_count_offset, int) \