< prev index next >

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ObjectMonitor.java

Print this page
@@ -1,7 +1,7 @@
  /*
-  * Copyright (c) 2001, 2021, Oracle and/or its affiliates. All rights reserved.
+  * Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.

@@ -49,10 +49,12 @@
      headerFieldOffset = f.getOffset();
      f = type.getField("_object");
      objectFieldOffset = f.getOffset();
      f = type.getField("_owner");
      ownerFieldOffset = f.getOffset();
+     f = type.getField("_stack_locker");
+     stackLockerFieldOffset = f.getOffset();
      f = type.getField("_next_om");
      nextOMFieldOffset = f.getOffset();
      contentionsField  = new CIntField(type.getCIntegerField("_contentions"), 0);
      waitersField      = new CIntField(type.getCIntegerField("_waiters"), 0);
      recursionsField   = type.getCIntegerField("_recursions");

@@ -85,10 +87,11 @@
    public boolean isOwnedAnonymous() {
      return addr.getAddressAt(ownerFieldOffset).asLongValue() == ANONYMOUS_OWNER;
    }
  
    public Address owner() { return addr.getAddressAt(ownerFieldOffset); }
+   public Address stackLocker() { return addr.getAddressAt(stackLockerFieldOffset); }
    // FIXME
    //  void      set_owner(void* owner);
  
    public int    waiters() { return (int)waitersField.getValue(this); }
  

@@ -115,10 +118,11 @@
    // would confuse the SA's type system.
    private static ObjectHeap    heap;
    private static long          headerFieldOffset;
    private static long          objectFieldOffset;
    private static long          ownerFieldOffset;
+   private static long          stackLockerFieldOffset;
    private static long          nextOMFieldOffset;
    private static CIntField     contentionsField;
    private static CIntField     waitersField;
    private static CIntegerField recursionsField;
    private static long          ANONYMOUS_OWNER;
< prev index next >