From 2896e73e7afb49cb99dd1a3cd532bb07b5cf73b7 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Thu, 23 Sep 2021 11:19:11 +0200 Subject: [PATCH] Add a makeInaccessible callback to ResourceSupport #11703 --- .../netty/buffer/api/memseg/MemSegBuffer.java | 39 +++---------------- 1 file changed, 5 insertions(+), 34 deletions(-) diff --git a/buffer-memseg/src/main/java/io/netty/buffer/api/memseg/MemSegBuffer.java b/buffer-memseg/src/main/java/io/netty/buffer/api/memseg/MemSegBuffer.java index c4856c0..f2e5253 100644 --- a/buffer-memseg/src/main/java/io/netty/buffer/api/memseg/MemSegBuffer.java +++ b/buffer-memseg/src/main/java/io/netty/buffer/api/memseg/MemSegBuffer.java @@ -96,7 +96,7 @@ class MemSegBuffer extends AdaptableBuffer implements Buffer, Read private boolean constBuffer; MemSegBuffer(MemorySegment base, MemorySegment view, Drop drop, AllocatorControl control) { - super(new MakeInaccisbleOnDrop(ArcDrop.wrap(drop))); + super(ArcDrop.wrap(drop)); this.control = control; this.base = base; seg = view; @@ -108,7 +108,7 @@ class MemSegBuffer extends AdaptableBuffer implements Buffer, Read * Constructor for {@linkplain BufferAllocator#constBufferSupplier(byte[]) const buffers}. */ MemSegBuffer(MemSegBuffer parent) { - super(new MakeInaccisbleOnDrop(new ArcDrop<>(ArcDrop.acquire(parent.unsafeGetDrop())))); + super(new ArcDrop<>(ArcDrop.acquire(parent.unsafeGetDrop()))); control = parent.control; base = parent.base; seg = parent.seg; @@ -119,42 +119,14 @@ class MemSegBuffer extends AdaptableBuffer implements Buffer, Read constBuffer = true; } - private static final class MakeInaccisbleOnDrop implements Drop { - final Drop delegate; - - private MakeInaccisbleOnDrop(Drop delegate) { - this.delegate = delegate; - } - - @Override - public void drop(MemSegBuffer buf) { - try { - delegate.drop(buf); - } finally { - buf.makeInaccessible(); - } - } - - @Override - public void attach(MemSegBuffer buf) { - delegate.attach(buf); - } - - @Override - public String toString() { - return "MemSegDrop(" + delegate + ')'; - } - } - @Override protected Drop unsafeGetDrop() { - MakeInaccisbleOnDrop drop = (MakeInaccisbleOnDrop) super.unsafeGetDrop(); - return drop.delegate; + return super.unsafeGetDrop(); } @Override protected void unsafeSetDrop(Drop replacement) { - super.unsafeSetDrop(new MakeInaccisbleOnDrop(replacement)); + super.unsafeSetDrop(replacement); } @Override @@ -1121,7 +1093,6 @@ class MemSegBuffer extends AdaptableBuffer implements Buffer, Read var isConst = constBuffer; MemorySegment transferSegment = seg; MemorySegment base = this.base; - makeInaccessible(); return new Owned() { @Override public MemSegBuffer transferOwnership(Drop drop) { @@ -1138,7 +1109,7 @@ class MemSegBuffer extends AdaptableBuffer implements Buffer, Read }; } - void makeInaccessible() { + protected void makeInaccessible() { base = CLOSED_SEGMENT; seg = CLOSED_SEGMENT; wseg = CLOSED_SEGMENT;