comparison src/share/vm/classfile/systemDictionary.hpp @ 10408:836a62f43af9

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 19 Jun 2013 10:45:56 +0200
parents d552919fbb05 f2110083203d
children 9c7d9e2c8326
comparison
equal deleted inserted replaced
10086:e0fb8a213650 10408:836a62f43af9
29 #include "classfile/classLoader.hpp" 29 #include "classfile/classLoader.hpp"
30 #include "oops/objArrayOop.hpp" 30 #include "oops/objArrayOop.hpp"
31 #include "oops/symbol.hpp" 31 #include "oops/symbol.hpp"
32 #include "runtime/java.hpp" 32 #include "runtime/java.hpp"
33 #include "runtime/reflectionUtils.hpp" 33 #include "runtime/reflectionUtils.hpp"
34 #include "trace/traceTime.hpp"
34 #include "utilities/hashtable.hpp" 35 #include "utilities/hashtable.hpp"
35 #include "utilities/hashtable.inline.hpp" 36 #include "utilities/hashtable.inline.hpp"
37
36 38
37 // The system dictionary stores all loaded classes and maps: 39 // The system dictionary stores all loaded classes and maps:
38 // 40 //
39 // [class name,class loader] -> class i.e. [Symbol*,oop] -> Klass* 41 // [class name,class loader] -> class i.e. [Symbol*,oop] -> Klass*
40 // 42 //
361 static void classes_do(void f(Klass*)); 363 static void classes_do(void f(Klass*));
362 // Added for initialize_itable_for_klass to handle exceptions 364 // Added for initialize_itable_for_klass to handle exceptions
363 static void classes_do(void f(Klass*, TRAPS), TRAPS); 365 static void classes_do(void f(Klass*, TRAPS), TRAPS);
364 // All classes, and their class loaders 366 // All classes, and their class loaders
365 static void classes_do(void f(Klass*, ClassLoaderData*)); 367 static void classes_do(void f(Klass*, ClassLoaderData*));
366 // All classes, and their class loaders 368
367 // (added for helpers that use HandleMarks and ResourceMarks)
368 static void classes_do(void f(Klass*, ClassLoaderData*, TRAPS), TRAPS);
369 // All entries in the placeholder table and their class loaders
370 static void placeholders_do(void f(Symbol*)); 369 static void placeholders_do(void f(Symbol*));
371 370
372 // Iterate over all methods in all klasses in dictionary 371 // Iterate over all methods in all klasses in dictionary
373 static void methods_do(void f(Method*)); 372 static void methods_do(void f(Method*));
374 373
687 static Klass* find_shared_class(Symbol* class_name); 686 static Klass* find_shared_class(Symbol* class_name);
688 687
689 // Setup link to hierarchy 688 // Setup link to hierarchy
690 static void add_to_hierarchy(instanceKlassHandle k, TRAPS); 689 static void add_to_hierarchy(instanceKlassHandle k, TRAPS);
691 690
691 // event based tracing
692 static void post_class_load_event(TracingTime start_time, instanceKlassHandle k,
693 Handle initiating_loader);
692 // We pass in the hashtable index so we can calculate it outside of 694 // We pass in the hashtable index so we can calculate it outside of
693 // the SystemDictionary_lock. 695 // the SystemDictionary_lock.
694 696
695 // Basic find on loaded classes 697 // Basic find on loaded classes
696 static Klass* find_class(int index, unsigned int hash, 698 static Klass* find_class(int index, unsigned int hash,