本文整理了Java中org.jruby.Ruby.allocSymbolId
方法的一些代码示例,展示了Ruby.allocSymbolId
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Ruby.allocSymbolId
方法的具体详情如下:
包路径:org.jruby.Ruby
类名称: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;
}
内容来源于网络,如有侵权,请联系作者删除!