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

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

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

Ruby.allocSymbolId介绍

暂无

代码示例

代码示例来源: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: 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: 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;
}

代码示例来源: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;
}

相关文章

微信公众号

最新文章

更多

Ruby类方法