Browse Source

v8: fix gcc 7 build errors

Porting https://github.com/nodejs/node/pull/12392 to master

Ref: https://github.com/nodejs/node/pull/12392
Fixes: https://github.com/nodejs/node/issues/10388
PR-URL: https://github.com/nodejs/node/pull/12676
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
v6
Zuzana Svetlikova 8 years ago
committed by Anna Henningsen
parent
commit
b07e1a828c
No known key found for this signature in database GPG Key ID: D8B9F5AEAE84E4CF
  1. 2
      deps/v8/src/objects-body-descriptors.h
  2. 21
      deps/v8/src/objects-inl.h
  3. 20
      deps/v8/src/objects.h

2
deps/v8/src/objects-body-descriptors.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);
} }
}; };

21
deps/v8/src/objects-inl.h

@ -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();
} }

20
deps/v8/src/objects.h

@ -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(

Loading…
Cancel
Save