< prev index next >

src/hotspot/share/compiler/oopMap.hpp

Print this page
rev 50307 : [mq]: cont


 224   // returns the OopMap at a given index
 225   OopMap* at(int index) const { assert((index >= 0) && (index <= om_count()),"bad index"); return _om_data[index]; }
 226 
 227   // Collect OopMaps.
 228   void add_gc_map(int pc, OopMap* map);
 229 
 230   // Returns the only oop map. Used for reconstructing
 231   // Adapter frames during deoptimization
 232   OopMap* singular_oop_map();
 233 
 234   // returns OopMap in that is anchored to the pc
 235   OopMap* find_map_at_offset(int pc_offset) const;
 236 
 237   int heap_size() const;
 238 
 239   // Methods oops_do() and all_do() filter out NULL oops and
 240   // oop == Universe::narrow_oop_base() before passing oops
 241   // to closures.
 242 
 243   // Iterates through frame for a compiled method


 244   static void oops_do            (const frame* fr,
 245                                   const RegisterMap* reg_map, OopClosure* f);
 246   static void update_register_map(const frame* fr, RegisterMap *reg_map);
 247 
 248   // Iterates through frame for a compiled method for dead ones and values, too
 249   static void all_do(const frame* fr, const RegisterMap* reg_map,
 250                      OopClosure* oop_fn,
 251                      void derived_oop_fn(oop* base, oop* derived),
 252                      OopClosure* value_fn);
 253 
 254   // Printing
 255   void print_on(outputStream* st) const;
 256   void print() const { print_on(tty); }
 257 };
 258 
 259 class ImmutableOopMapBuilder;
 260 
 261 class ImmutableOopMap {
 262   friend class OopMapStream;
 263   friend class VMStructs;
 264 #ifdef ASSERT
 265   friend class ImmutableOopMapBuilder;
 266 #endif
 267 private:
 268   int _count; // contains the number of entries in this OopMap
 269 
 270   address data_addr() const { return (address) this + sizeof(ImmutableOopMap); }
 271 public:




 224   // returns the OopMap at a given index
 225   OopMap* at(int index) const { assert((index >= 0) && (index <= om_count()),"bad index"); return _om_data[index]; }
 226 
 227   // Collect OopMaps.
 228   void add_gc_map(int pc, OopMap* map);
 229 
 230   // Returns the only oop map. Used for reconstructing
 231   // Adapter frames during deoptimization
 232   OopMap* singular_oop_map();
 233 
 234   // returns OopMap in that is anchored to the pc
 235   OopMap* find_map_at_offset(int pc_offset) const;
 236 
 237   int heap_size() const;
 238 
 239   // Methods oops_do() and all_do() filter out NULL oops and
 240   // oop == Universe::narrow_oop_base() before passing oops
 241   // to closures.
 242 
 243   // Iterates through frame for a compiled method
 244   static void oops_do            (const frame* fr, const RegisterMap* reg_map, 
 245                                   OopClosure* f, DerivedOopClosure* df);
 246   static void oops_do            (const frame* fr,
 247                                   const RegisterMap* reg_map, OopClosure* f) { oops_do(fr, reg_map, f, NULL); }
 248   static void update_register_map(const frame* fr, RegisterMap *reg_map);
 249 
 250   // Iterates through frame for a compiled method for dead ones and values, too
 251   static void all_do(const frame* fr, const RegisterMap* reg_map,
 252                      OopClosure* oop_fn,
 253                      DerivedOopClosure* derived_oop_fn,
 254                      OopClosure* value_fn);
 255 
 256   // Printing
 257   void print_on(outputStream* st) const;
 258   void print() const { print_on(tty); }
 259 };
 260 
 261 class ImmutableOopMapBuilder;
 262 
 263 class ImmutableOopMap {
 264   friend class OopMapStream;
 265   friend class VMStructs;
 266 #ifdef ASSERT
 267   friend class ImmutableOopMapBuilder;
 268 #endif
 269 private:
 270   int _count; // contains the number of entries in this OopMap
 271 
 272   address data_addr() const { return (address) this + sizeof(ImmutableOopMap); }
 273 public:


< prev index next >