1.1 --- a/src/share/vm/ci/ciEnv.hpp Tue Jan 05 11:16:09 2010 -0800 1.2 +++ b/src/share/vm/ci/ciEnv.hpp Wed Jan 06 14:22:39 2010 -0800 1.3 @@ -74,18 +74,9 @@ 1.4 static ciTypeArrayKlassKlass* _type_array_klass_klass_instance; 1.5 static ciObjArrayKlassKlass* _obj_array_klass_klass_instance; 1.6 1.7 - static ciInstanceKlass* _ArrayStoreException; 1.8 - static ciInstanceKlass* _Class; 1.9 - static ciInstanceKlass* _ClassCastException; 1.10 - static ciInstanceKlass* _InvokeDynamic; 1.11 - static ciInstanceKlass* _Object; 1.12 - static ciInstanceKlass* _Throwable; 1.13 - static ciInstanceKlass* _Thread; 1.14 - static ciInstanceKlass* _OutOfMemoryError; 1.15 - static ciInstanceKlass* _String; 1.16 - static ciInstanceKlass* _StringBuffer; 1.17 - static ciInstanceKlass* _StringBuilder; 1.18 - static ciInstanceKlass* _Integer; 1.19 +#define WK_KLASS_DECL(name, ignore_s, ignore_o) static ciInstanceKlass* _##name; 1.20 + WK_KLASSES_DO(WK_KLASS_DECL) 1.21 +#undef WK_KLASS_DECL 1.22 1.23 static ciSymbol* _unloaded_cisymbol; 1.24 static ciInstanceKlass* _unloaded_ciinstance_klass; 1.25 @@ -301,42 +292,13 @@ 1.26 1.27 1.28 // Access to certain well known ciObjects. 1.29 - ciInstanceKlass* ArrayStoreException_klass() { 1.30 - return _ArrayStoreException; 1.31 +#define WK_KLASS_FUNC(name, ignore_s, ignore_o) \ 1.32 + ciInstanceKlass* name() { \ 1.33 + return _##name;\ 1.34 } 1.35 - ciInstanceKlass* Class_klass() { 1.36 - return _Class; 1.37 - } 1.38 - ciInstanceKlass* ClassCastException_klass() { 1.39 - return _ClassCastException; 1.40 - } 1.41 - ciInstanceKlass* InvokeDynamic_klass() { 1.42 - return _InvokeDynamic; 1.43 - } 1.44 - ciInstanceKlass* Object_klass() { 1.45 - return _Object; 1.46 - } 1.47 - ciInstanceKlass* Throwable_klass() { 1.48 - return _Throwable; 1.49 - } 1.50 - ciInstanceKlass* Thread_klass() { 1.51 - return _Thread; 1.52 - } 1.53 - ciInstanceKlass* OutOfMemoryError_klass() { 1.54 - return _OutOfMemoryError; 1.55 - } 1.56 - ciInstanceKlass* String_klass() { 1.57 - return _String; 1.58 - } 1.59 - ciInstanceKlass* StringBuilder_klass() { 1.60 - return _StringBuilder; 1.61 - } 1.62 - ciInstanceKlass* StringBuffer_klass() { 1.63 - return _StringBuffer; 1.64 - } 1.65 - ciInstanceKlass* Integer_klass() { 1.66 - return _Integer; 1.67 - } 1.68 + WK_KLASSES_DO(WK_KLASS_FUNC) 1.69 +#undef WK_KLASS_FUNC 1.70 + 1.71 ciInstance* NullPointerException_instance() { 1.72 assert(_NullPointerException_instance != NULL, "initialization problem"); 1.73 return _NullPointerException_instance;