< prev index next >

src/share/vm/interpreter/oopMapCache.hpp

Print this page

        

*** 142,162 **** int expression_stack_size() const { return _expression_stack_size; } }; class OopMapCache : public CHeapObj<mtClass> { private: enum { _size = 32, // Use fixed size for now _probe_depth = 3 // probe depth in case of collisions }; ! OopMapCacheEntry* _array; unsigned int hash_value_for(const methodHandle& method, int bci) const; OopMapCacheEntry* entry_at(int i) const; ! mutable Mutex _mut; void flush(); public: OopMapCache(); --- 142,164 ---- int expression_stack_size() const { return _expression_stack_size; } }; class OopMapCache : public CHeapObj<mtClass> { + static OopMapCacheEntry* volatile _old_entries; private: enum { _size = 32, // Use fixed size for now _probe_depth = 3 // probe depth in case of collisions }; ! OopMapCacheEntry* volatile * _array; unsigned int hash_value_for(const methodHandle& method, int bci) const; OopMapCacheEntry* entry_at(int i) const; + bool put_at(int i, OopMapCacheEntry* entry, OopMapCacheEntry* old); ! static void enqueue_for_cleanup(OopMapCacheEntry* entry); void flush(); public: OopMapCache();
*** 165,179 **** // flush cache entry is occupied by an obsolete method void flush_obsolete_entries(); // Returns the oopMap for (method, bci) in parameter "entry". // Returns false if an oop map was not found. ! void lookup(const methodHandle& method, int bci, InterpreterOopMap* entry) const; // Compute an oop map without updating the cache or grabbing any locks (for debugging) static void compute_one_oop_map(const methodHandle& method, int bci, InterpreterOopMap* entry); ! ! // Returns total no. of bytes allocated as part of OopMapCache's ! static long memory_usage() PRODUCT_RETURN0; }; #endif // SHARE_VM_INTERPRETER_OOPMAPCACHE_HPP --- 167,179 ---- // flush cache entry is occupied by an obsolete method void flush_obsolete_entries(); // Returns the oopMap for (method, bci) in parameter "entry". // Returns false if an oop map was not found. ! void lookup(const methodHandle& method, int bci, InterpreterOopMap* entry); // Compute an oop map without updating the cache or grabbing any locks (for debugging) static void compute_one_oop_map(const methodHandle& method, int bci, InterpreterOopMap* entry); ! static void cleanup_old_entries(); }; #endif // SHARE_VM_INTERPRETER_OOPMAPCACHE_HPP
< prev index next >