1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.buffer;
17
18 import io.netty.util.internal.CleanableDirectBuffer;
19 import io.netty.util.internal.PlatformDependent;
20
21 import java.nio.ByteBuffer;
22
23 class UnpooledUnsafeNoCleanerDirectByteBuf extends UnpooledUnsafeDirectByteBuf {
24 UnpooledUnsafeNoCleanerDirectByteBuf(ByteBufAllocator alloc, int initialCapacity, int maxCapacity,
25 boolean allowSectionedInternalNioBufferAccess) {
26 super(alloc, initialCapacity, maxCapacity, allowSectionedInternalNioBufferAccess);
27 }
28
29 @Override
30 protected CleanableDirectBuffer allocateDirectBuffer(int capacity) {
31 return PlatformDependent.allocateDirectBufferNoCleaner(capacity);
32 }
33
34 @Override
35 protected ByteBuffer allocateDirect(int initialCapacity) {
36 throw new UnsupportedOperationException();
37 }
38
39 CleanableDirectBuffer reallocateDirect(CleanableDirectBuffer oldBuffer, int initialCapacity) {
40 return PlatformDependent.reallocateDirectBufferNoCleaner(oldBuffer, initialCapacity);
41 }
42
43 @Override
44 protected void freeDirect(ByteBuffer buffer) {
45 throw new UnsupportedOperationException();
46 }
47
48 @Override
49 public ByteBuf capacity(int newCapacity) {
50 checkNewCapacity(newCapacity);
51
52 int oldCapacity = capacity();
53 if (newCapacity == oldCapacity) {
54 return this;
55 }
56
57 trimIndicesToCapacity(newCapacity);
58 setByteBuffer(reallocateDirect(cleanable, newCapacity), false);
59 return this;
60 }
61 }