src/share/vm/classfile/systemDictionary.hpp

changeset 2497
3582bf76420e
parent 2449
8f8dfba37802
child 2638
72dee110246f
     1.1 --- a/src/share/vm/classfile/systemDictionary.hpp	Thu Jan 27 13:42:28 2011 -0800
     1.2 +++ b/src/share/vm/classfile/systemDictionary.hpp	Thu Jan 27 16:11:27 2011 -0800
     1.3 @@ -28,14 +28,14 @@
     1.4  #include "classfile/classFileStream.hpp"
     1.5  #include "classfile/classLoader.hpp"
     1.6  #include "oops/objArrayOop.hpp"
     1.7 -#include "oops/symbolOop.hpp"
     1.8 +#include "oops/symbol.hpp"
     1.9  #include "runtime/java.hpp"
    1.10  #include "runtime/reflectionUtils.hpp"
    1.11  #include "utilities/hashtable.hpp"
    1.12  
    1.13  // The system dictionary stores all loaded classes and maps:
    1.14  //
    1.15 -//   [class name,class loader] -> class   i.e.  [symbolOop,oop] -> klassOop
    1.16 +//   [class name,class loader] -> class   i.e.  [Symbol*,oop] -> klassOop
    1.17  //
    1.18  // Classes are loaded lazily. The default VM class loader is
    1.19  // represented as NULL.
    1.20 @@ -226,26 +226,26 @@
    1.21    // throw_error flag.  For most uses the throw_error argument should be set
    1.22    // to true.
    1.23  
    1.24 -  static klassOop resolve_or_fail(symbolHandle class_name, Handle class_loader, Handle protection_domain, bool throw_error, TRAPS);
    1.25 +  static klassOop resolve_or_fail(Symbol* class_name, Handle class_loader, Handle protection_domain, bool throw_error, TRAPS);
    1.26    // Convenient call for null loader and protection domain.
    1.27 -  static klassOop resolve_or_fail(symbolHandle class_name, bool throw_error, TRAPS);
    1.28 +  static klassOop resolve_or_fail(Symbol* class_name, bool throw_error, TRAPS);
    1.29  private:
    1.30    // handle error translation for resolve_or_null results
    1.31 -  static klassOop handle_resolution_exception(symbolHandle class_name, Handle class_loader, Handle protection_domain, bool throw_error, KlassHandle klass_h, TRAPS);
    1.32 +  static klassOop handle_resolution_exception(Symbol* class_name, Handle class_loader, Handle protection_domain, bool throw_error, KlassHandle klass_h, TRAPS);
    1.33  
    1.34  public:
    1.35  
    1.36    // Returns a class with a given class name and class loader.
    1.37    // Loads the class if needed. If not found NULL is returned.
    1.38 -  static klassOop resolve_or_null(symbolHandle class_name, Handle class_loader, Handle protection_domain, TRAPS);
    1.39 +  static klassOop resolve_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
    1.40    // Version with null loader and protection domain
    1.41 -  static klassOop resolve_or_null(symbolHandle class_name, TRAPS);
    1.42 +  static klassOop resolve_or_null(Symbol* class_name, TRAPS);
    1.43  
    1.44    // Resolve a superclass or superinterface. Called from ClassFileParser,
    1.45    // parse_interfaces, resolve_instance_class_or_null, load_shared_class
    1.46    // "child_name" is the class whose super class or interface is being resolved.
    1.47 -  static klassOop resolve_super_or_fail(symbolHandle child_name,
    1.48 -                                        symbolHandle class_name,
    1.49 +  static klassOop resolve_super_or_fail(Symbol* child_name,
    1.50 +                                        Symbol* class_name,
    1.51                                          Handle class_loader,
    1.52                                          Handle protection_domain,
    1.53                                          bool is_superclass,
    1.54 @@ -253,7 +253,7 @@
    1.55  
    1.56    // Parse new stream. This won't update the system dictionary or
    1.57    // class hierarchy, simply parse the stream. Used by JVMTI RedefineClasses.
    1.58 -  static klassOop parse_stream(symbolHandle class_name,
    1.59 +  static klassOop parse_stream(Symbol* class_name,
    1.60                                 Handle class_loader,
    1.61                                 Handle protection_domain,
    1.62                                 ClassFileStream* st,
    1.63 @@ -261,7 +261,7 @@
    1.64      KlassHandle nullHandle;
    1.65      return parse_stream(class_name, class_loader, protection_domain, st, nullHandle, NULL, THREAD);
    1.66    }
    1.67 -  static klassOop parse_stream(symbolHandle class_name,
    1.68 +  static klassOop parse_stream(Symbol* class_name,
    1.69                                 Handle class_loader,
    1.70                                 Handle protection_domain,
    1.71                                 ClassFileStream* st,
    1.72 @@ -270,23 +270,23 @@
    1.73                                 TRAPS);
    1.74  
    1.75    // Resolve from stream (called by jni_DefineClass and JVM_DefineClass)
    1.76 -  static klassOop resolve_from_stream(symbolHandle class_name, Handle class_loader,
    1.77 +  static klassOop resolve_from_stream(Symbol* class_name, Handle class_loader,
    1.78                                        Handle protection_domain,
    1.79                                        ClassFileStream* st, bool verify, TRAPS);
    1.80  
    1.81    // Lookup an already loaded class. If not found NULL is returned.
    1.82 -  static klassOop find(symbolHandle class_name, Handle class_loader, Handle protection_domain, TRAPS);
    1.83 +  static klassOop find(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
    1.84  
    1.85    // Lookup an already loaded instance or array class.
    1.86    // Do not make any queries to class loaders; consult only the cache.
    1.87    // If not found NULL is returned.
    1.88 -  static klassOop find_instance_or_array_klass(symbolHandle class_name,
    1.89 +  static klassOop find_instance_or_array_klass(Symbol* class_name,
    1.90                                                 Handle class_loader,
    1.91                                                 Handle protection_domain,
    1.92                                                 TRAPS);
    1.93  
    1.94    // If the given name is known to vmSymbols, return the well-know klass:
    1.95 -  static klassOop find_well_known_klass(symbolOop class_name);
    1.96 +  static klassOop find_well_known_klass(Symbol* class_name);
    1.97  
    1.98    // Lookup an instance or array class that has already been loaded
    1.99    // either into the given class loader, or else into another class
   1.100 @@ -309,7 +309,7 @@
   1.101    // satisfied, and it is safe for classes in the given class loader
   1.102    // to manipulate strongly-typed values of the found class, subject
   1.103    // to local linkage and access checks.
   1.104 -  static klassOop find_constrained_instance_or_array_klass(symbolHandle class_name,
   1.105 +  static klassOop find_constrained_instance_or_array_klass(Symbol* class_name,
   1.106                                                             Handle class_loader,
   1.107                                                             TRAPS);
   1.108  
   1.109 @@ -324,7 +324,7 @@
   1.110    //   (added for helpers that use HandleMarks and ResourceMarks)
   1.111    static void classes_do(void f(klassOop, oop, TRAPS), TRAPS);
   1.112    // All entries in the placeholder table and their class loaders
   1.113 -  static void placeholders_do(void f(symbolOop, oop));
   1.114 +  static void placeholders_do(void f(Symbol*, oop));
   1.115  
   1.116    // Iterate over all methods in all klasses in dictionary
   1.117    static void methods_do(void f(methodOop));
   1.118 @@ -383,12 +383,12 @@
   1.119    static void verify();
   1.120  
   1.121  #ifdef ASSERT
   1.122 -  static bool is_internal_format(symbolHandle class_name);
   1.123 +  static bool is_internal_format(Symbol* class_name);
   1.124  #endif
   1.125  
   1.126    // Verify class is in dictionary
   1.127    static void verify_obj_klass_present(Handle obj,
   1.128 -                                       symbolHandle class_name,
   1.129 +                                       Symbol* class_name,
   1.130                                         Handle class_loader);
   1.131  
   1.132    // Initialization
   1.133 @@ -469,19 +469,19 @@
   1.134    // Note:  java_lang_Class::primitive_type is the inverse of java_mirror
   1.135  
   1.136    // Check class loader constraints
   1.137 -  static bool add_loader_constraint(symbolHandle name, Handle loader1,
   1.138 +  static bool add_loader_constraint(Symbol* name, Handle loader1,
   1.139                                      Handle loader2, TRAPS);
   1.140 -  static char* check_signature_loaders(symbolHandle signature, Handle loader1,
   1.141 +  static char* check_signature_loaders(Symbol* signature, Handle loader1,
   1.142                                         Handle loader2, bool is_method, TRAPS);
   1.143  
   1.144    // JSR 292
   1.145    // find the java.dyn.MethodHandles::invoke method for a given signature
   1.146 -  static methodOop find_method_handle_invoke(symbolHandle name,
   1.147 -                                             symbolHandle signature,
   1.148 +  static methodOop find_method_handle_invoke(Symbol* name,
   1.149 +                                             Symbol* signature,
   1.150                                               KlassHandle accessing_klass,
   1.151                                               TRAPS);
   1.152    // ask Java to compute a java.dyn.MethodType object for a given signature
   1.153 -  static Handle    find_method_handle_type(symbolHandle signature,
   1.154 +  static Handle    find_method_handle_type(Symbol* signature,
   1.155                                             KlassHandle accessing_klass,
   1.156                                             bool for_invokeGeneric,
   1.157                                             bool& return_bcp_flag,
   1.158 @@ -490,13 +490,13 @@
   1.159    static Handle    link_method_handle_constant(KlassHandle caller,
   1.160                                                 int ref_kind, //e.g., JVM_REF_invokeVirtual
   1.161                                                 KlassHandle callee,
   1.162 -                                               symbolHandle name,
   1.163 -                                               symbolHandle signature,
   1.164 +                                               Symbol* name,
   1.165 +                                               Symbol* signature,
   1.166                                                 TRAPS);
   1.167    // ask Java to create a dynamic call site, while linking an invokedynamic op
   1.168    static Handle    make_dynamic_call_site(Handle bootstrap_method,
   1.169                                            // Callee information:
   1.170 -                                          symbolHandle name,
   1.171 +                                          Symbol* name,
   1.172                                            methodHandle signature_invoker,
   1.173                                            Handle info,
   1.174                                            // Caller information:
   1.175 @@ -519,8 +519,8 @@
   1.176  
   1.177    // Record the error when the first attempt to resolve a reference from a constant
   1.178    // pool entry to a class fails.
   1.179 -  static void add_resolution_error(constantPoolHandle pool, int which, symbolHandle error);
   1.180 -  static symbolOop find_resolution_error(constantPoolHandle pool, int which);
   1.181 +  static void add_resolution_error(constantPoolHandle pool, int which, Symbol* error);
   1.182 +  static Symbol* find_resolution_error(constantPoolHandle pool, int which);
   1.183  
   1.184   private:
   1.185  
   1.186 @@ -580,29 +580,29 @@
   1.187    static SymbolPropertyTable* invoke_method_table() { return _invoke_method_table; }
   1.188  
   1.189    // Basic loading operations
   1.190 -  static klassOop resolve_instance_class_or_null(symbolHandle class_name, Handle class_loader, Handle protection_domain, TRAPS);
   1.191 -  static klassOop resolve_array_class_or_null(symbolHandle class_name, Handle class_loader, Handle protection_domain, TRAPS);
   1.192 -  static instanceKlassHandle handle_parallel_super_load(symbolHandle class_name, symbolHandle supername, Handle class_loader, Handle protection_domain, Handle lockObject, TRAPS);
   1.193 +  static klassOop resolve_instance_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
   1.194 +  static klassOop resolve_array_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
   1.195 +  static instanceKlassHandle handle_parallel_super_load(Symbol* class_name, Symbol* supername, Handle class_loader, Handle protection_domain, Handle lockObject, TRAPS);
   1.196    // Wait on SystemDictionary_lock; unlocks lockObject before
   1.197    // waiting; relocks lockObject with correct recursion count
   1.198    // after waiting, but before reentering SystemDictionary_lock
   1.199    // to preserve lock order semantics.
   1.200    static void double_lock_wait(Handle lockObject, TRAPS);
   1.201    static void define_instance_class(instanceKlassHandle k, TRAPS);
   1.202 -  static instanceKlassHandle find_or_define_instance_class(symbolHandle class_name,
   1.203 +  static instanceKlassHandle find_or_define_instance_class(Symbol* class_name,
   1.204                                                  Handle class_loader,
   1.205                                                  instanceKlassHandle k, TRAPS);
   1.206 -  static instanceKlassHandle load_shared_class(symbolHandle class_name,
   1.207 +  static instanceKlassHandle load_shared_class(Symbol* class_name,
   1.208                                                 Handle class_loader, TRAPS);
   1.209    static instanceKlassHandle load_shared_class(instanceKlassHandle ik,
   1.210                                                 Handle class_loader, TRAPS);
   1.211 -  static instanceKlassHandle load_instance_class(symbolHandle class_name, Handle class_loader, TRAPS);
   1.212 +  static instanceKlassHandle load_instance_class(Symbol* class_name, Handle class_loader, TRAPS);
   1.213    static Handle compute_loader_lock_object(Handle class_loader, TRAPS);
   1.214    static void check_loader_lock_contention(Handle loader_lock, TRAPS);
   1.215    static bool is_parallelCapable(Handle class_loader);
   1.216    static bool is_parallelDefine(Handle class_loader);
   1.217  
   1.218 -  static klassOop find_shared_class(symbolHandle class_name);
   1.219 +  static klassOop find_shared_class(Symbol* class_name);
   1.220  
   1.221    // Setup link to hierarchy
   1.222    static void add_to_hierarchy(instanceKlassHandle k, TRAPS);
   1.223 @@ -613,34 +613,29 @@
   1.224  
   1.225    // Basic find on loaded classes
   1.226    static klassOop find_class(int index, unsigned int hash,
   1.227 -                             symbolHandle name, Handle loader);
   1.228 +                             Symbol* name, Handle loader);
   1.229 +  static klassOop find_class(Symbol* class_name, Handle class_loader);
   1.230  
   1.231    // Basic find on classes in the midst of being loaded
   1.232 -  static symbolOop find_placeholder(int index, unsigned int hash,
   1.233 -                                    symbolHandle name, Handle loader);
   1.234 -
   1.235 -  // Basic find operation of loaded classes and classes in the midst
   1.236 -  // of loading;  used for assertions and verification only.
   1.237 -  static oop find_class_or_placeholder(symbolHandle class_name,
   1.238 -                                       Handle class_loader);
   1.239 +  static Symbol* find_placeholder(Symbol* name, Handle loader);
   1.240  
   1.241    // Updating entry in dictionary
   1.242    // Add a completely loaded class
   1.243 -  static void add_klass(int index, symbolHandle class_name,
   1.244 +  static void add_klass(int index, Symbol* class_name,
   1.245                          Handle class_loader, KlassHandle obj);
   1.246  
   1.247    // Add a placeholder for a class being loaded
   1.248    static void add_placeholder(int index,
   1.249 -                              symbolHandle class_name,
   1.250 +                              Symbol* class_name,
   1.251                                Handle class_loader);
   1.252    static void remove_placeholder(int index,
   1.253 -                                 symbolHandle class_name,
   1.254 +                                 Symbol* class_name,
   1.255                                   Handle class_loader);
   1.256  
   1.257    // Performs cleanups after resolve_super_or_fail. This typically needs
   1.258    // to be called on failure.
   1.259    // Won't throw, but can block.
   1.260 -  static void resolution_cleanups(symbolHandle class_name,
   1.261 +  static void resolution_cleanups(Symbol* class_name,
   1.262                                    Handle class_loader,
   1.263                                    TRAPS);
   1.264  
   1.265 @@ -670,7 +665,6 @@
   1.266    static bool _has_checkPackageAccess;
   1.267  };
   1.268  
   1.269 -// Cf. vmSymbols vs. vmSymbolHandles
   1.270  class SystemDictionaryHandles : AllStatic {
   1.271  public:
   1.272    #define WK_KLASS_HANDLE_DECLARE(name, ignore_symbol, option) \

mercurial