Skip to content

Commit

Permalink
v8: fix gcc 7 build errors
Browse files Browse the repository at this point in the history
Porting #12392 to V8 5.9

Ref: #12392
Fixes: #10388
PR-URL: #13515
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
  • Loading branch information
targos authored and addaleax committed Jun 24, 2017
1 parent 05a34cc commit 547ca9a
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 17 deletions.
2 changes: 1 addition & 1 deletion deps/v8/src/objects-body-descriptors.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public BodyDescriptorBase {

template <typename StaticVisitor>
static inline void IterateBody(HeapObject* obj, int object_size) {
IterateBody(obj);
IterateBody<StaticVisitor>(obj);
}
};

Expand Down
21 changes: 21 additions & 0 deletions deps/v8/src/objects-inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,27 @@
namespace v8 {
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) {
value_ = smi->value();
}
Expand Down
20 changes: 4 additions & 16 deletions deps/v8/src/objects/hash-table.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,22 +135,10 @@ class HashTable : public HashTableBase {
public:
typedef Shape ShapeT;

// Wrapper methods
inline uint32_t Hash(Key key) {
if (Shape::UsesSeed) {
return Shape::SeededHash(key, GetHeap()->HashSeed());
} 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);
}
}
// Wrapper methods. Defined in src/objects-inl.h
// to break a cycle with src/heap/heap.h.
inline uint32_t Hash(Key key);
inline uint32_t HashForObject(Key key, Object* object);

// Returns a new HashTable object.
MUST_USE_RESULT static Handle<Derived> New(
Expand Down

0 comments on commit 547ca9a

Please sign in to comment.