Skip to content

Commit b07e1a8

Browse files
Zuzana Svetlikovaaddaleax
Zuzana Svetlikova
authored andcommitted
v8: fix gcc 7 build errors
Porting #12392 to master Ref: #12392 Fixes: #10388 PR-URL: #12676 Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Anna Henningsen <[email protected]>
1 parent 97ec72b commit b07e1a8

File tree

3 files changed

+26
-17
lines changed

3 files changed

+26
-17
lines changed

deps/v8/src/objects-body-descriptors.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public BodyDescriptorBase {
9999

100100
template <typename StaticVisitor>
101101
static inline void IterateBody(HeapObject* obj, int object_size) {
102-
IterateBody(obj);
102+
IterateBody<StaticVisitor>(obj);
103103
}
104104
};
105105

deps/v8/src/objects-inl.h

+21
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,27 @@
4141
namespace v8 {
4242
namespace internal {
4343

44+
template <typename Derived, typename Shape, typename Key>
45+
uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
46+
if (Shape::UsesSeed) {
47+
return Shape::SeededHash(key, GetHeap()->HashSeed());
48+
} else {
49+
return Shape::Hash(key);
50+
}
51+
}
52+
53+
54+
template <typename Derived, typename Shape, typename Key>
55+
uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
56+
Object* object) {
57+
if (Shape::UsesSeed) {
58+
return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
59+
} else {
60+
return Shape::HashForObject(key, object);
61+
}
62+
}
63+
64+
4465
PropertyDetails::PropertyDetails(Smi* smi) {
4566
value_ = smi->value();
4667
}

deps/v8/src/objects.h

+4-16
Original file line numberDiff line numberDiff line change
@@ -3499,22 +3499,10 @@ class HashTable : public HashTableBase {
34993499
public:
35003500
typedef Shape ShapeT;
35013501

3502-
// Wrapper methods
3503-
inline uint32_t Hash(Key key) {
3504-
if (Shape::UsesSeed) {
3505-
return Shape::SeededHash(key, GetHeap()->HashSeed());
3506-
} else {
3507-
return Shape::Hash(key);
3508-
}
3509-
}
3510-
3511-
inline uint32_t HashForObject(Key key, Object* object) {
3512-
if (Shape::UsesSeed) {
3513-
return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
3514-
} else {
3515-
return Shape::HashForObject(key, object);
3516-
}
3517-
}
3502+
// Wrapper methods. Defined in src/objects-inl.h
3503+
// to break a cycle with src/heap/heap.h.
3504+
inline uint32_t Hash(Key key);
3505+
inline uint32_t HashForObject(Key key, Object* object);
35183506

35193507
// Returns a new HashTable object.
35203508
MUST_USE_RESULT static Handle<Derived> New(

0 commit comments

Comments
 (0)