equal
deleted
inserted
replaced
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 } |