equal
deleted
inserted
replaced
73 }; |
73 }; |
74 |
74 |
75 class nmethod; |
75 class nmethod; |
76 |
76 |
77 // cache pc descs found in earlier inquiries |
77 // cache pc descs found in earlier inquiries |
78 class PcDescCache VALUE_OBJ_CLASS_SPEC { |
78 class PcDescCache { |
79 friend class VMStructs; |
79 friend class VMStructs; |
80 private: |
80 private: |
81 enum { cache_size = 4 }; |
81 enum { cache_size = 4 }; |
82 // The array elements MUST be volatile! Several threads may modify |
82 // The array elements MUST be volatile! Several threads may modify |
83 // and read from the cache concurrently. find_pc_desc_internal has |
83 // and read from the cache concurrently. find_pc_desc_internal has |
107 address code_begin() const { return _code_begin; } |
107 address code_begin() const { return _code_begin; } |
108 PcDesc* scopes_pcs_begin() const { return _lower; } |
108 PcDesc* scopes_pcs_begin() const { return _lower; } |
109 PcDesc* scopes_pcs_end() const { return _upper; } |
109 PcDesc* scopes_pcs_end() const { return _upper; } |
110 }; |
110 }; |
111 |
111 |
112 class PcDescContainer VALUE_OBJ_CLASS_SPEC { |
112 class PcDescContainer { |
113 private: |
113 private: |
114 PcDescCache _pc_desc_cache; |
114 PcDescCache _pc_desc_cache; |
115 public: |
115 public: |
116 PcDescContainer() {} |
116 PcDescContainer() {} |
117 |
117 |