本文整理汇总了C++中Symbol::code方法的典型用法代码示例。如果您正苦于以下问题:C++ Symbol::code方法的具体用法?C++ Symbol::code怎么用?C++ Symbol::code使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symbol
的用法示例。
在下文中一共展示了Symbol::code方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HashNumber
static HashNumber
HashValue(const Value& v, const mozilla::HashCodeScrambler& hcs)
{
// HashableValue::setValue normalizes values so that the SameValue relation
// on HashableValues is the same as the == relationship on
// value.asRawBits(). So why not just return that? Security.
//
// To avoid revealing GC of atoms, string-based hash codes are computed
// from the string contents rather than any pointer; to avoid revealing
// addresses, pointer-based hash codes are computed using the
// HashCodeScrambler.
if (v.isString())
return v.toString()->asAtom().hash();
if (v.isSymbol()) {
Symbol* sym = v.toSymbol();
if (sym->isWellKnownSymbol())
return HashNumber(sym->code());
if (sym->code() == SymbolCode::InSymbolRegistry)
return sym->description()->hash();
return hcs.scramble(v.asRawBits());
}
if (v.isObject())
return hcs.scramble(v.asRawBits());
MOZ_ASSERT(!v.isGCThing(), "do not reveal pointers via hash codes");
return v.asRawBits();
}