@Override public int indexOf(long offset, byte value) { return io.indexOf(base + offset, value, (int) size); }
@Override public int indexOf(long offset, byte value, int maxlen) { return ptr.indexOf(base + offset, value, maxlen); }
@Override public int indexOf(long offset, byte value, int maxlen) { return ptr.indexOf(base + offset, value, maxlen); }
@Override public int indexOf(long offset, byte value, int maxlen) { return ptr.indexOf(base + offset, value, maxlen); }
@Override public int indexOf(long offset, byte value) { return io.indexOf(base + offset, value, (int) size); }
@Override public int indexOf(long offset, byte value) { return io.indexOf(base + offset, value, (int) size); }
@Override public int indexOf(long offset, byte value, int maxlen) { checkBounds(size, offset, maxlen); return io.indexOf(base + offset, value, maxlen); }
@Override public int indexOf(long offset, byte value, int maxlen) { checkBounds(size, offset, maxlen); return io.indexOf(base + offset, value, maxlen); }
@Override public int indexOf(long offset, byte value, int maxlen) { checkBounds(size, offset, maxlen); return io.indexOf(base + offset, value, maxlen); }
@Override public String fromNative(Pointer pointer, FromNativeContext context) { if (pointer == null) { return null; } Search: for (int idx = 0; ; ) { idx += pointer.indexOf(idx, (byte) 0); for (int tcount = 1; tcount < terminatorWidth; tcount++) { if (pointer.getByte(idx + tcount) != 0) { idx += tcount; continue Search; } } byte[] bytes = new byte[idx]; pointer.get(0, bytes, 0, bytes.length); try { return getDecoder(charset, localDecoder).reset().decode(ByteBuffer.wrap(bytes)).toString(); } catch (CharacterCodingException cce) { throw new RuntimeException(cce); } } }
@Override public String fromNative(Pointer pointer, FromNativeContext context) { if (pointer == null) { return null; } Search: for (int idx = 0; ; ) { idx += pointer.indexOf(idx, (byte) 0); for (int tcount = 1; tcount < terminatorWidth; tcount++) { if (pointer.getByte(idx + tcount) != 0) { idx += tcount; continue Search; } } byte[] bytes = new byte[idx]; pointer.get(0, bytes, 0, bytes.length); try { return getDecoder(charset, localDecoder).reset().decode(ByteBuffer.wrap(bytes)).toString(); } catch (CharacterCodingException cce) { throw new RuntimeException(cce); } } }
@Override public String fromNative(Pointer pointer, FromNativeContext context) { if (pointer == null) { return null; } Search: for (int idx = 0; ; ) { idx += pointer.indexOf(idx, (byte) 0); for (int tcount = 1; tcount < terminatorWidth; tcount++) { if (pointer.getByte(idx + tcount) != 0) { idx += tcount; continue Search; } } byte[] bytes = new byte[idx]; pointer.get(0, bytes, 0, bytes.length); try { return getDecoder(charset, localDecoder).reset().decode(ByteBuffer.wrap(bytes)).toString(); } catch (CharacterCodingException cce) { throw new RuntimeException(cce); } } }
private static final int strlen(UTF8String str) { int end = str.getMemory().indexOf(str.offset(), (byte) 0); return end >= 0 ? end : str.length(); }
public byte[] crypt(byte[] key, byte[] salt) { Pointer ptr = libc().crypt(key, salt); if (ptr == null) return null; int end = ptr.indexOf(0, (byte)0); byte[] bytes = new byte[end + 1]; ptr.get(0, bytes, 0, end); return bytes; }
private static final int strlen(UTF8String str) { int end = str.getMemory().indexOf(str.offset(), (byte) 0); return end >= 0 ? end : str.length(); }
public byte[] crypt(byte[] key, byte[] salt) { Pointer ptr = libc().crypt(key, salt); if (ptr == null) return null; int end = ptr.indexOf(0, (byte)0); byte[] bytes = new byte[end + 1]; ptr.get(0, bytes, 0, end); return bytes; }
public byte[] crypt(byte[] key, byte[] salt) { Crypt crypt = crypt(); if (crypt == null) { return JavaLibCHelper.crypt(key, salt); } Pointer ptr = crypt().crypt(key, salt); if (ptr == null) return null; int end = ptr.indexOf(0, (byte)0); byte[] bytes = new byte[end + 1]; ptr.get(0, bytes, 0, end); return bytes; }