io.netty.util.internal.PlatformDependent#setMemory ( )源码实例Demo

下面列出了io.netty.util.internal.PlatformDependent#setMemory ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: activemq-artemis   文件: ByteUtil.java
private static void uncheckedZeros(final ByteBuffer buffer, int offset, int bytes) {
   if (buffer.isReadOnly()) {
      throw new ReadOnlyBufferException();
   }
   final byte zero = (byte) 0;
   if (buffer.isDirect() && PlatformDependent.hasUnsafe()) {
      PlatformDependent.setMemory(PlatformDependent.directBufferAddress(buffer) + offset, bytes, zero);
   } else if (buffer.hasArray()) {
      //SIMD OPTIMIZATION
      final int arrayOffset = buffer.arrayOffset();
      final int start = arrayOffset + offset;
      Arrays.fill(buffer.array(), start, start + bytes, zero);
   } else {
      //slow path
      for (int i = 0; i < bytes; i++) {
         buffer.put(i + offset, zero);
      }
   }
}
 
源代码2 项目: netty-4.1.22   文件: UnsafeByteBufUtil.java
static void setZero(long addr, int length) {
    if (length == 0) {
        return;
    }

    PlatformDependent.setMemory(addr, length, ZERO);
}
 
@Override
public void clearBuffer(final ByteBuffer buffer) {
   if (buffer.isDirect()) {
      PlatformDependent.setMemory(PlatformDependent.directBufferAddress(buffer), buffer.limit(), (byte) 0);
   } else {
      Arrays.fill(buffer.array(), buffer.arrayOffset(), buffer.limit(), (byte) 0);
   }
}
 
源代码4 项目: netty-4.1.22   文件: UnsafeByteBufUtil.java
static void setZero(byte[] array, int index, int length) {
    if (length == 0) {
        return;
    }
    PlatformDependent.setMemory(array, index, length, ZERO);
}