< prev index next >

src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template

Print this page

        

@@ -28,11 +28,12 @@
 package java.nio;
 
 import java.io.FileDescriptor;
 import jdk.internal.misc.Unsafe;
 import jdk.internal.misc.VM;
-import jdk.internal.ref.Cleaner;
+import java.lang.ref.Cleaner;
+import jdk.internal.ref.CleanerFactory;
 import sun.nio.ch.DirectBuffer;
 
 
 class Direct$Type$Buffer$RW$$BO$
 #if[rw]

@@ -96,17 +97,17 @@
             Bits.unreserveMemory(size, capacity);
         }
 
     }
 
-    private final Cleaner cleaner;
+    private final Cleaner.Cleanable cleaner;
 
-    public Cleaner cleaner() { return cleaner; }
+    public Cleaner.Cleanable cleaner() { return cleaner; }
 
 #else[byte]
 
-    public Cleaner cleaner() { return null; }
+    public Cleaner.Cleanable cleaner() { return null; }
 
 #end[byte]
 
 #end[rw]
 

@@ -134,11 +135,11 @@
             // Round up to page boundary
             address = base + ps - (base & (ps - 1));
         } else {
             address = base;
         }
-        cleaner = Cleaner.create(this, new Deallocator(base, size, cap));
+        cleaner = CleanerFactory.cleaner().register(this, new Deallocator(base, size, cap));
         att = null;
 #else[rw]
         super(cap);
 #end[rw]
     }

@@ -174,11 +175,13 @@
                                      Runnable unmapper)
     {
 #if[rw]
         super(-1, 0, cap, cap, fd);
         address = addr;
-        cleaner = Cleaner.create(this, unmapper);
+        cleaner = (unmapper == null)
+                  ? null
+                  : CleanerFactory.cleaner().register(this, unmapper);
         att = null;
 #else[rw]
         super(cap, addr, fd, unmapper);
 #end[rw]
     }
< prev index next >