hotspot/src/share/vm/prims/jvmtiImpl.hpp
changeset 13195 be27e1b6a4b9
parent 8661 3dc8a18ac563
child 13728 882756847a04
equal deleted inserted replaced
13099:64752e56d721 13195:be27e1b6a4b9
    62 //    void (*_listener_fun)(void *this_obj, address* cache)
    62 //    void (*_listener_fun)(void *this_obj, address* cache)
    63 // gets called with the cache's new address. This gives the user of the GrowableCache a callback
    63 // gets called with the cache's new address. This gives the user of the GrowableCache a callback
    64 // to update its pointer to the address cache.
    64 // to update its pointer to the address cache.
    65 //
    65 //
    66 
    66 
    67 class GrowableElement : public CHeapObj {
    67 class GrowableElement : public CHeapObj<mtInternal> {
    68 public:
    68 public:
    69   virtual address getCacheValue()          =0;
    69   virtual address getCacheValue()          =0;
    70   virtual bool equals(GrowableElement* e)  =0;
    70   virtual bool equals(GrowableElement* e)  =0;
    71   virtual bool lessThan(GrowableElement *e)=0;
    71   virtual bool lessThan(GrowableElement *e)=0;
    72   virtual GrowableElement *clone()         =0;
    72   virtual GrowableElement *clone()         =0;
   128 // Used by              : JvmtiBreakpoints
   128 // Used by              : JvmtiBreakpoints
   129 // Used by JVMTI methods: none directly.
   129 // Used by JVMTI methods: none directly.
   130 // Note   : typesafe wrapper for GrowableCache of JvmtiBreakpoint
   130 // Note   : typesafe wrapper for GrowableCache of JvmtiBreakpoint
   131 //
   131 //
   132 
   132 
   133 class JvmtiBreakpointCache : public CHeapObj {
   133 class JvmtiBreakpointCache : public CHeapObj<mtInternal> {
   134 
   134 
   135 private:
   135 private:
   136   GrowableCache _cache;
   136   GrowableCache _cache;
   137 
   137 
   138 public:
   138 public:
   256 //
   256 //
   257 // It would be possible to make JvmtiBreakpoints a static class, but I've made it
   257 // It would be possible to make JvmtiBreakpoints a static class, but I've made it
   258 // CHeap allocated to emphasize its similarity to JvmtiFramePops.
   258 // CHeap allocated to emphasize its similarity to JvmtiFramePops.
   259 //
   259 //
   260 
   260 
   261 class JvmtiBreakpoints : public CHeapObj {
   261 class JvmtiBreakpoints : public CHeapObj<mtInternal> {
   262 private:
   262 private:
   263 
   263 
   264   JvmtiBreakpointCache _bps;
   264   JvmtiBreakpointCache _bps;
   265 
   265 
   266   // These should only be used by VM_ChangeBreakpoints
   266   // These should only be used by VM_ChangeBreakpoints
   494  * when operating on the queue (except for the "pending" events).
   494  * when operating on the queue (except for the "pending" events).
   495  */
   495  */
   496 class JvmtiDeferredEventQueue : AllStatic {
   496 class JvmtiDeferredEventQueue : AllStatic {
   497   friend class JvmtiDeferredEvent;
   497   friend class JvmtiDeferredEvent;
   498  private:
   498  private:
   499   class QueueNode : public CHeapObj {
   499   class QueueNode : public CHeapObj<mtInternal> {
   500    private:
   500    private:
   501     JvmtiDeferredEvent _event;
   501     JvmtiDeferredEvent _event;
   502     QueueNode* _next;
   502     QueueNode* _next;
   503 
   503 
   504    public:
   504    public: