public abstract class oadd.io.netty.buffer.AbstractReferenceCountedByteBuf extends oadd.io.netty.buffer.AbstractByteBuf
{
private static final long REFCNT_FIELD_OFFSET;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater AIF_UPDATER;
private static final oadd.io.netty.util.internal.ReferenceCountUpdater updater;
private volatile int refCnt;
protected void <init>(int)
{
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
int v, v;
oadd.io.netty.util.internal.ReferenceCountUpdater v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
v := @parameter: int;
specialinvoke v.<oadd.io.netty.buffer.AbstractByteBuf: void <init>(int)>(v);
v = <oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: oadd.io.netty.util.internal.ReferenceCountUpdater updater>;
v = virtualinvoke v.<oadd.io.netty.util.internal.ReferenceCountUpdater: int initialValue()>();
v.<oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: int refCnt> = v;
return;
}
boolean isAccessible()
{
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
oadd.io.netty.util.internal.ReferenceCountUpdater v;
boolean v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
v = <oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: oadd.io.netty.util.internal.ReferenceCountUpdater updater>;
v = virtualinvoke v.<oadd.io.netty.util.internal.ReferenceCountUpdater: boolean isLiveNonVolatile(oadd.io.netty.util.ReferenceCounted)>(v);
return v;
}
public int refCnt()
{
int v;
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
oadd.io.netty.util.internal.ReferenceCountUpdater v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
v = <oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: oadd.io.netty.util.internal.ReferenceCountUpdater updater>;
v = virtualinvoke v.<oadd.io.netty.util.internal.ReferenceCountUpdater: int refCnt(oadd.io.netty.util.ReferenceCounted)>(v);
return v;
}
protected final void setRefCnt(int)
{
int v;
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
oadd.io.netty.util.internal.ReferenceCountUpdater v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
v := @parameter: int;
v = <oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: oadd.io.netty.util.internal.ReferenceCountUpdater updater>;
virtualinvoke v.<oadd.io.netty.util.internal.ReferenceCountUpdater: void setRefCnt(oadd.io.netty.util.ReferenceCounted,int)>(v, v);
return;
}
protected final void resetRefCnt()
{
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
oadd.io.netty.util.internal.ReferenceCountUpdater v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
v = <oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: oadd.io.netty.util.internal.ReferenceCountUpdater updater>;
virtualinvoke v.<oadd.io.netty.util.internal.ReferenceCountUpdater: void resetRefCnt(oadd.io.netty.util.ReferenceCounted)>(v);
return;
}
public oadd.io.netty.buffer.ByteBuf retain()
{
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
oadd.io.netty.util.ReferenceCounted v;
oadd.io.netty.util.internal.ReferenceCountUpdater v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
v = <oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: oadd.io.netty.util.internal.ReferenceCountUpdater updater>;
v = virtualinvoke v.<oadd.io.netty.util.internal.ReferenceCountUpdater: oadd.io.netty.util.ReferenceCounted retain(oadd.io.netty.util.ReferenceCounted)>(v);
return v;
}
public oadd.io.netty.buffer.ByteBuf retain(int)
{
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
int v;
oadd.io.netty.util.ReferenceCounted v;
oadd.io.netty.util.internal.ReferenceCountUpdater v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
v := @parameter: int;
v = <oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: oadd.io.netty.util.internal.ReferenceCountUpdater updater>;
v = virtualinvoke v.<oadd.io.netty.util.internal.ReferenceCountUpdater: oadd.io.netty.util.ReferenceCounted retain(oadd.io.netty.util.ReferenceCounted,int)>(v, v);
return v;
}
public oadd.io.netty.buffer.ByteBuf touch()
{
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
return v;
}
public oadd.io.netty.buffer.ByteBuf touch(java.lang.Object)
{
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
java.lang.Object v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
v := @parameter: java.lang.Object;
return v;
}
public boolean release()
{
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
oadd.io.netty.util.internal.ReferenceCountUpdater v;
boolean v, v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
v = <oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: oadd.io.netty.util.internal.ReferenceCountUpdater updater>;
v = virtualinvoke v.<oadd.io.netty.util.internal.ReferenceCountUpdater: boolean release(oadd.io.netty.util.ReferenceCounted)>(v);
v = specialinvoke v.<oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: boolean handleRelease(boolean)>(v);
return v;
}
public boolean release(int)
{
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
int v;
oadd.io.netty.util.internal.ReferenceCountUpdater v;
boolean v, v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
v := @parameter: int;
v = <oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: oadd.io.netty.util.internal.ReferenceCountUpdater updater>;
v = virtualinvoke v.<oadd.io.netty.util.internal.ReferenceCountUpdater: boolean release(oadd.io.netty.util.ReferenceCounted,int)>(v, v);
v = specialinvoke v.<oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: boolean handleRelease(boolean)>(v);
return v;
}
private boolean handleRelease(boolean)
{
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf v;
boolean v;
v := @this: oadd.io.netty.buffer.AbstractReferenceCountedByteBuf;
v := @parameter: boolean;
if v == 0 goto label;
virtualinvoke v.<oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: void deallocate()>();
label:
return v;
}
protected abstract void deallocate();
static void <clinit>()
{
java.util.concurrent.atomic.AtomicIntegerFieldUpdater v;
long v;
oadd.io.netty.buffer.AbstractReferenceCountedByteBuf$1 v;
v = staticinvoke <oadd.io.netty.util.internal.ReferenceCountUpdater: long getUnsafeOffset(java.lang.Class,java.lang.String)>(class "Loadd/io/netty/buffer/AbstractReferenceCountedByteBuf;", "refCnt");
<oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: long REFCNT_FIELD_OFFSET> = v;
v = staticinvoke <java.util.concurrent.atomic.AtomicIntegerFieldUpdater: java.util.concurrent.atomic.AtomicIntegerFieldUpdater newUpdater(java.lang.Class,java.lang.String)>(class "Loadd/io/netty/buffer/AbstractReferenceCountedByteBuf;", "refCnt");
<oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: java.util.concurrent.atomic.AtomicIntegerFieldUpdater AIF_UPDATER> = v;
v = new oadd.io.netty.buffer.AbstractReferenceCountedByteBuf$1;
specialinvoke v.<oadd.io.netty.buffer.AbstractReferenceCountedByteBuf$1: void <init>()>();
<oadd.io.netty.buffer.AbstractReferenceCountedByteBuf: oadd.io.netty.util.internal.ReferenceCountUpdater updater> = v;
return;
}
}