src/jdk.unsupported/share/classes/sun/misc/Unsafe.java
changeset 52427 3c6aa484536c
parent 52220 9c260a6b6471
equal deleted inserted replaced
52426:38bf0c9c4e64 52427:3c6aa484536c
    25 
    25 
    26 package sun.misc;
    26 package sun.misc;
    27 
    27 
    28 import jdk.internal.vm.annotation.ForceInline;
    28 import jdk.internal.vm.annotation.ForceInline;
    29 import jdk.internal.misc.VM;
    29 import jdk.internal.misc.VM;
    30 import jdk.internal.ref.Cleaner;
       
    31 import jdk.internal.reflect.CallerSensitive;
    30 import jdk.internal.reflect.CallerSensitive;
    32 import jdk.internal.reflect.Reflection;
    31 import jdk.internal.reflect.Reflection;
    33 import sun.nio.ch.DirectBuffer;
       
    34 
    32 
    35 import java.lang.reflect.Field;
    33 import java.lang.reflect.Field;
    36 import java.util.Set;
    34 import java.util.Set;
    37 
    35 
    38 
    36 
  1232      */
  1230      */
  1233     public void invokeCleaner(java.nio.ByteBuffer directBuffer) {
  1231     public void invokeCleaner(java.nio.ByteBuffer directBuffer) {
  1234         if (!directBuffer.isDirect())
  1232         if (!directBuffer.isDirect())
  1235             throw new IllegalArgumentException("buffer is non-direct");
  1233             throw new IllegalArgumentException("buffer is non-direct");
  1236 
  1234 
  1237         DirectBuffer db = (DirectBuffer)directBuffer;
  1235         theInternalUnsafe.invokeCleaner(directBuffer);
  1238         if (db.attachment() != null)
       
  1239             throw new IllegalArgumentException("duplicate or slice");
       
  1240 
       
  1241         Cleaner cleaner = db.cleaner();
       
  1242         if (cleaner != null) {
       
  1243             cleaner.clean();
       
  1244         }
       
  1245     }
  1236     }
  1246 }
  1237 }