hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/MonitorInfo.java
changeset 3171 aa289b22b577
parent 1 489c9b5090e2
child 3261 c7d5aae8d3f7
equal deleted inserted replaced
2880:c2974244a496 3171:aa289b22b577
    23  */
    23  */
    24 
    24 
    25 package sun.jvm.hotspot.runtime;
    25 package sun.jvm.hotspot.runtime;
    26 
    26 
    27 import sun.jvm.hotspot.debugger.*;
    27 import sun.jvm.hotspot.debugger.*;
       
    28 import sun.jvm.hotspot.utilities.*;
    28 
    29 
    29 public class MonitorInfo {
    30 public class MonitorInfo {
    30   private OopHandle owner;
    31   private OopHandle owner;
    31   private BasicLock lock;
    32   private BasicLock lock;
       
    33   private OopHandle ownerKlass;
       
    34   private boolean eliminated;
       
    35   private boolean ownerIsScalarReplaced;
    32 
    36 
    33   public MonitorInfo(OopHandle owner, BasicLock lock) {
    37   public MonitorInfo(OopHandle owner, BasicLock lock, boolean eliminated, boolean ownerIsScalarReplaced) {
    34     this.owner = owner;
    38     if (!ownerIsScalarReplaced) {
    35     this.lock  = lock;
    39       this.owner = owner;
       
    40       this.ownerKlass = null;
       
    41     } else {
       
    42       Assert.that(eliminated, "monitor should be eliminated for scalar replaced object");
       
    43       this.owner = null;
       
    44       this.ownerKlass = owner;
       
    45     }
       
    46     this.eliminated = eliminated;
       
    47     this.ownerIsScalarReplaced = ownerIsScalarReplaced;
    36   }
    48   }
    37 
    49 
    38   public OopHandle owner() { return owner; }
    50   public OopHandle owner() {
       
    51    Assert.that(!ownerIsScalarReplaced, "should not be called for scalar replaced object");
       
    52    return owner;
       
    53   }
       
    54 
       
    55   public OopHandle ownerKlass() {
       
    56    Assert.that(ownerIsScalarReplaced, "should not be called for not scalar replaced object");
       
    57    return ownerKlass;
       
    58   }
       
    59 
    39   public BasicLock lock()  { return lock; }
    60   public BasicLock lock()  { return lock; }
       
    61   public boolean eliminated() { return eliminated; }
       
    62   public boolean ownerIsScalarReplaced() { return ownerIsScalarReplaced; }
    40 }
    63 }