Revert "Remove the SharedVariant pointer from StringData."

Esse commit está contido em:
aravind
2013-07-09 12:55:40 -07:00
commit de Sara Golemon
commit 58c4c797c5
2 arquivos alterados com 15 adições e 5 exclusões
+4 -3
Ver Arquivo
@@ -308,9 +308,10 @@ HOT_FUNC
StringData::StringData(SharedVariant *shared)
: _count(0) {
assert(shared && size_t(shared->stringLength()) <= size_t(MaxSize));
m_hash = shared->stringHash();
m_hash = 0;
m_len = shared->stringLength();
m_cdata = shared->stringData();
m_big.shared = shared;
m_big.cap = m_len | IsShared;
}
@@ -923,8 +924,8 @@ int StringData::compare(const StringData *v2) const {
HOT_FUNC
strhash_t StringData::hashHelper() const {
assert(!isShared());
strhash_t h = hash_string_inline(m_data, m_len);
strhash_t h = isShared() ? m_big.shared->stringHash() :
hash_string_inline(m_data, m_len);
assert(h >= 0);
m_hash |= h;
return h;