src/share/vm/memory/universe.hpp

Print this page

        

@@ -190,10 +190,12 @@
   static oop          _out_of_memory_error_java_heap; // preallocated error object (no backtrace)
   static oop          _out_of_memory_error_perm_gen;  // preallocated error object (no backtrace)
   static oop          _out_of_memory_error_array_size;// preallocated error object (no backtrace)
   static oop          _out_of_memory_error_gc_overhead_limit; // preallocated error object (no backtrace)
 
+  static oop          _primordial_loader_cache;       // Cache a ref to the primordial app loader to avoid searching for it
+
   // array of preallocated error objects with backtrace
   static objArrayOop   _preallocated_out_of_memory_error_array;
 
   // number of preallocated error objects available for use
   static volatile jint _preallocated_out_of_memory_error_avail_count;

@@ -383,10 +385,14 @@
 
   // Testers
   static bool is_bootstrapping()                      { return _bootstrapping; }
   static bool is_fully_initialized()                  { return _fully_initialized; }
 
+  // Used by JVM_LatestUserDefinedLoader to avoid stack walking to find the loader
+  static oop get_cached_loader();
+  static bool check_or_set_cached_loader(oop loader);        
+
   static inline bool element_type_should_be_aligned(BasicType type);
   static inline bool field_type_should_be_aligned(BasicType type);
   static bool        on_page_boundary(void* addr);
   static bool        should_fill_in_stack_trace(Handle throwable);
   static void check_alignment(uintx size, uintx alignment, const char* name);