org.jruby.Ruby.isSiphashEnabled()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(9.1k)|赞(0)|评价(0)|浏览(95)

本文整理了Java中org.jruby.Ruby.isSiphashEnabled方法的一些代码示例,展示了Ruby.isSiphashEnabled的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Ruby.isSiphashEnabled方法的具体详情如下:
包路径:org.jruby.Ruby
类名称:Ruby
方法名:isSiphashEnabled

Ruby.isSiphashEnabled介绍

暂无

代码示例

代码示例来源:origin: org.jruby/jruby-complete

public static long hashStart(Ruby runtime, long value) {
  long hash = value +
      (runtime.isSiphashEnabled() ?
          runtime.getHashSeedK1() :
          runtime.getHashSeedK0());
  return hash;
}

代码示例来源:origin: org.jruby/jruby-core

public static long hashStart(Ruby runtime, long value) {
  long hash = value +
      (runtime.isSiphashEnabled() ?
          runtime.getHashSeedK1() :
          runtime.getHashSeedK0());
  return hash;
}

代码示例来源:origin: org.jruby/jruby-complete

/**
 * Generate a hash for the String, without a seed.
 *
 * @param runtime
 * @return
 */
public int unseededStrHashCode(Ruby runtime) {
  final ByteList value = this.value;
  final Encoding enc = value.getEncoding();
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(0, 0, value.getUnsafeBytes(),
      value.getBegin(), value.getRealSize()) : PerlHash.hash(0, value.getUnsafeBytes(),
      value.getBegin(), value.getRealSize());
  hash ^= (enc.isAsciiCompatible() && scanForCodeRange() == CR_7BIT ? 0 : enc.getIndex());
  return (int) hash;
}

代码示例来源:origin: org.jruby/jruby-core

/**
 * Generate a hash for the String, without a seed.
 *
 * @param runtime
 * @return
 */
public int unseededStrHashCode(Ruby runtime) {
  final ByteList value = this.value;
  final Encoding enc = value.getEncoding();
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(0, 0, value.getUnsafeBytes(),
      value.getBegin(), value.getRealSize()) : PerlHash.hash(0, value.getUnsafeBytes(),
      value.getBegin(), value.getRealSize());
  hash ^= (enc.isAsciiCompatible() && scanForCodeRange() == CR_7BIT ? 0 : enc.getIndex());
  return (int) hash;
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

/**
 * Generate a hash for the String, without a seed.
 *
 * @param runtime
 * @return
 */
public int unseededStrHashCode(Ruby runtime) {
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(0, 0, value.getUnsafeBytes(),
      value.getBegin(), value.getRealSize()) : PerlHash.hash(0, value.getUnsafeBytes(),
      value.getBegin(), value.getRealSize());
  if (runtime.is1_9()) {
    hash ^= (value.getEncoding().isAsciiCompatible() && scanForCodeRange() == CR_7BIT ? 0
        : value.getEncoding().getIndex());
  }
  return (int) hash;
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

/**
 * Generate a hash for the String, without a seed.
 *
 * @param runtime
 * @return
 */
public int unseededStrHashCode(Ruby runtime) {
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(0, 0, value.getUnsafeBytes(),
      value.getBegin(), value.getRealSize()) : PerlHash.hash(0, value.getUnsafeBytes(),
      value.getBegin(), value.getRealSize());
  if (runtime.is1_9()) {
    hash ^= (value.getEncoding().isAsciiCompatible() && scanForCodeRange() == CR_7BIT ? 0
        : value.getEncoding().getIndex());
  }
  return (int) hash;
}

代码示例来源:origin: org.jruby/jruby-complete

/**
 * Generate a hash for the String, using its associated Ruby instance's hash seed.
 *
 * @param runtime
 * @return
 */
public int strHashCode(Ruby runtime) {
  final ByteList value = this.value;
  final Encoding enc = value.getEncoding();
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(runtime.getHashSeedK0(),
      runtime.getHashSeedK1(), value.getUnsafeBytes(), value.getBegin(),
      value.getRealSize()) : PerlHash.hash(runtime.getHashSeedK0(),
      value.getUnsafeBytes(), value.getBegin(), value.getRealSize());
  hash ^= (enc.isAsciiCompatible() && scanForCodeRange() == CR_7BIT ? 0 : enc.getIndex());
  return (int) hash;
}

代码示例来源:origin: org.jruby/jruby-core

/**
 * Generate a hash for the String, using its associated Ruby instance's hash seed.
 *
 * @param runtime
 * @return
 */
public int strHashCode(Ruby runtime) {
  final ByteList value = this.value;
  final Encoding enc = value.getEncoding();
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(runtime.getHashSeedK0(),
      runtime.getHashSeedK1(), value.getUnsafeBytes(), value.getBegin(),
      value.getRealSize()) : PerlHash.hash(runtime.getHashSeedK0(),
      value.getUnsafeBytes(), value.getBegin(), value.getRealSize());
  hash ^= (enc.isAsciiCompatible() && scanForCodeRange() == CR_7BIT ? 0 : enc.getIndex());
  return (int) hash;
}

代码示例来源:origin: org.jruby/jruby-complete

/**
 *
 * @param runtime
 * @param internedSymbol the String value of the new Symbol. This <em>must</em>
 *                       have been previously interned
 */
private RubySymbol(Ruby runtime, String internedSymbol, ByteList symbolBytes) {
  super(runtime, runtime.getSymbol(), false);
  // symbol string *must* be interned
  //        assert internedSymbol == internedSymbol.intern() : internedSymbol + " is not interned";
  this.symbol = internedSymbol;
  if (codeRangeScan(symbolBytes.getEncoding(), symbolBytes) == CR_7BIT) {
    symbolBytes = symbolBytes.dup();
    symbolBytes.setEncoding(USASCIIEncoding.INSTANCE);
  }
  this.symbolBytes = symbolBytes;
  this.id = runtime.allocSymbolId();
  long k0 = Helpers.hashStart(runtime, id);
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(
      k0, 0, symbolBytes.getUnsafeBytes(),
      symbolBytes.getBegin(), symbolBytes.getRealSize()) :
      PerlHash.hash(k0, symbolBytes.getUnsafeBytes(),
      symbolBytes.getBegin(), symbolBytes.getRealSize());
  this.hashCode = (int) hash;
  setFrozen(true);
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

/**
 * Generate a hash for the String, using its associated Ruby instance's hash seed.
 *
 * @param runtime
 * @return
 */
public int strHashCode(Ruby runtime) {
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(runtime.getHashSeedK0(),
      runtime.getHashSeedK1(), value.getUnsafeBytes(), value.getBegin(),
      value.getRealSize()) : PerlHash.hash(runtime.getHashSeedK0(),
      value.getUnsafeBytes(), value.getBegin(), value.getRealSize());
  if (runtime.is1_9()) {
    hash ^= (value.getEncoding().isAsciiCompatible() && scanForCodeRange() == CR_7BIT ? 0
        : value.getEncoding().getIndex());
  }
  return (int) hash;
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

/**
 * Generate a hash for the String, using its associated Ruby instance's hash seed.
 *
 * @param runtime
 * @return
 */
public int strHashCode(Ruby runtime) {
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(runtime.getHashSeedK0(),
      runtime.getHashSeedK1(), value.getUnsafeBytes(), value.getBegin(),
      value.getRealSize()) : PerlHash.hash(runtime.getHashSeedK0(),
      value.getUnsafeBytes(), value.getBegin(), value.getRealSize());
  if (runtime.is1_9()) {
    hash ^= (value.getEncoding().isAsciiCompatible() && scanForCodeRange() == CR_7BIT ? 0
        : value.getEncoding().getIndex());
  }
  return (int) hash;
}

代码示例来源:origin: org.jruby/jruby-core

/**
 *
 * @param runtime
 * @param internedSymbol the String value of the new Symbol. This <em>must</em>
 *                       have been previously interned
 */
private RubySymbol(Ruby runtime, String internedSymbol, ByteList symbolBytes) {
  super(runtime, runtime.getSymbol(), false);
  // symbol string *must* be interned
  //        assert internedSymbol == internedSymbol.intern() : internedSymbol + " is not interned";
  this.symbol = internedSymbol;
  if (codeRangeScan(symbolBytes.getEncoding(), symbolBytes) == CR_7BIT) {
    symbolBytes = symbolBytes.dup();
    symbolBytes.setEncoding(USASCIIEncoding.INSTANCE);
  }
  this.symbolBytes = symbolBytes;
  this.id = runtime.allocSymbolId();
  long k0 = Helpers.hashStart(runtime, id);
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(
      k0, 0, symbolBytes.getUnsafeBytes(),
      symbolBytes.getBegin(), symbolBytes.getRealSize()) :
      PerlHash.hash(k0, symbolBytes.getUnsafeBytes(),
      symbolBytes.getBegin(), symbolBytes.getRealSize());
  this.hashCode = (int) hash;
  setFrozen(true);
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

/**
 * 
 * @param runtime
 * @param internedSymbol the String value of the new Symbol. This <em>must</em>
 *                       have been previously interned
 */
private RubySymbol(Ruby runtime, String internedSymbol, ByteList symbolBytes) {
  super(runtime, runtime.getSymbol(), false);
  // symbol string *must* be interned
  //        assert internedSymbol == internedSymbol.intern() : internedSymbol + " is not interned";
  if (!runtime.is1_9()) {
    int length = symbolBytes.getBegin() + symbolBytes.getRealSize();
    for (int i = symbolBytes.getBegin(); i < length; i++) {
      if (symbolBytes.getUnsafeBytes()[i] == 0) {
        throw runtime.newSyntaxError("symbol cannot contain '\\0'");
      }
    }
  }
  this.symbol = internedSymbol;
  this.symbolBytes = symbolBytes;
  this.id = runtime.allocSymbolId();
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(
      symbolHashSeedK0, 0, symbolBytes.getUnsafeBytes(),
      symbolBytes.getBegin(), symbolBytes.getRealSize()) :
      PerlHash.hash(symbolHashSeedK0, symbolBytes.getUnsafeBytes(),
      symbolBytes.getBegin(), symbolBytes.getRealSize());
  this.hashCode = (int) hash;
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

/**
 * 
 * @param runtime
 * @param internedSymbol the String value of the new Symbol. This <em>must</em>
 *                       have been previously interned
 */
private RubySymbol(Ruby runtime, String internedSymbol, ByteList symbolBytes) {
  super(runtime, runtime.getSymbol(), false);
  // symbol string *must* be interned
  //        assert internedSymbol == internedSymbol.intern() : internedSymbol + " is not interned";
  if (!runtime.is1_9()) {
    int length = symbolBytes.getBegin() + symbolBytes.getRealSize();
    for (int i = symbolBytes.getBegin(); i < length; i++) {
      if (symbolBytes.getUnsafeBytes()[i] == 0) {
        throw runtime.newSyntaxError("symbol cannot contain '\\0'");
      }
    }
  }
  this.symbol = internedSymbol;
  this.symbolBytes = symbolBytes;
  this.id = runtime.allocSymbolId();
  long hash = runtime.isSiphashEnabled() ? SipHashInline.hash24(
      symbolHashSeedK0, 0, symbolBytes.getUnsafeBytes(),
      symbolBytes.getBegin(), symbolBytes.getRealSize()) :
      PerlHash.hash(symbolHashSeedK0, symbolBytes.getUnsafeBytes(),
      symbolBytes.getBegin(), symbolBytes.getRealSize());
  this.hashCode = (int) hash;
}

相关文章

微信公众号

最新文章

更多

Ruby类方法