Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
v8: fix build errors with g++ 7
This is a local patch because upstream fixed it differently by moving
large chunks of code out of objects.h.  We cannot easily back-port
those changes due to their size and invasiveness.

Fixes: #10388
PR-URL: #12392
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
Zuzana Svetlikova committed Jun 12, 2017
commit 4960259ef7f7ce4775ea66ed26a76794cf3aa794
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 @@ -36,6 +36,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.h
Original file line number Diff line number Diff line change
Expand Up @@ -3261,22 +3261,10 @@ class HashTableBase : public FixedArray {
template <typename Derived, typename Shape, typename Key>
class HashTable : public HashTableBase {
public:
// 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