Zuzana Svetlikova
8 years ago
committed by
Anna Henningsen
No known key found for this signature in database
GPG Key ID: D8B9F5AEAE84E4CF
3 changed files with
26 additions and
17 deletions
-
deps/v8/src/objects-body-descriptors.h
-
deps/v8/src/objects-inl.h
-
deps/v8/src/objects.h
|
@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public BodyDescriptorBase { |
|
|
|
|
|
|
|
|
template <typename StaticVisitor> |
|
|
template <typename StaticVisitor> |
|
|
static inline void IterateBody(HeapObject* obj, int object_size) { |
|
|
static inline void IterateBody(HeapObject* obj, int object_size) { |
|
|
IterateBody(obj); |
|
|
IterateBody<StaticVisitor>(obj); |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
@ -41,6 +41,27 @@ |
|
|
namespace v8 { |
|
|
namespace v8 { |
|
|
namespace internal { |
|
|
namespace internal { |
|
|
|
|
|
|
|
|
|
|
|
template <typename Derived, typename Shape, typename Key> |
|
|
|
|
|
uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) { |
|
|
|
|
|
if (Shape::UsesSeed) { |
|
|
|
|
|
return Shape::SeededHash(key, GetHeap()->HashSeed()); |
|
|
|
|
|
} else { |
|
|
|
|
|
return Shape::Hash(key); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <typename Derived, typename Shape, typename Key> |
|
|
|
|
|
uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key, |
|
|
|
|
|
Object* object) { |
|
|
|
|
|
if (Shape::UsesSeed) { |
|
|
|
|
|
return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); |
|
|
|
|
|
} else { |
|
|
|
|
|
return Shape::HashForObject(key, object); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PropertyDetails::PropertyDetails(Smi* smi) { |
|
|
PropertyDetails::PropertyDetails(Smi* smi) { |
|
|
value_ = smi->value(); |
|
|
value_ = smi->value(); |
|
|
} |
|
|
} |
|
|
|
@ -3499,22 +3499,10 @@ class HashTable : public HashTableBase { |
|
|
public: |
|
|
public: |
|
|
typedef Shape ShapeT; |
|
|
typedef Shape ShapeT; |
|
|
|
|
|
|
|
|
// Wrapper methods
|
|
|
// Wrapper methods. Defined in src/objects-inl.h
|
|
|
inline uint32_t Hash(Key key) { |
|
|
// to break a cycle with src/heap/heap.h.
|
|
|
if (Shape::UsesSeed) { |
|
|
inline uint32_t Hash(Key key); |
|
|
return Shape::SeededHash(key, GetHeap()->HashSeed()); |
|
|
inline uint32_t HashForObject(Key key, Object* object); |
|
|
} else { |
|
|
|
|
|
return Shape::Hash(key); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
inline uint32_t HashForObject(Key key, Object* object) { |
|
|
|
|
|
if (Shape::UsesSeed) { |
|
|
|
|
|
return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); |
|
|
|
|
|
} else { |
|
|
|
|
|
return Shape::HashForObject(key, object); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Returns a new HashTable object.
|
|
|
// Returns a new HashTable object.
|
|
|
MUST_USE_RESULT static Handle<Derived> New( |
|
|
MUST_USE_RESULT static Handle<Derived> New( |
|
|