Skip to content

Commit c74e7ee

Browse files
committed
nodejs_6: backport upstream fix for builds with gcc 7.1
See: nodejs/node#13574 Signed-off-by: Peter A. Bigot <[email protected]>
1 parent eec531e commit c74e7ee

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
From 11c7e0164af7f6b33df13a658fc1c0effb502662 Mon Sep 17 00:00:00 2001
2+
From: Zuzana Svetlikova <[email protected]>
3+
Date: Fri, 9 Jun 2017 14:07:19 +0200
4+
Subject: [PATCH] v8: fix build errors with g++ 7
5+
6+
This is a local patch because upstream fixed it differently by moving
7+
large chunks of code out of objects.h. We cannot easily back-port
8+
those changes due to their size and invasiveness.
9+
10+
Fixes: https://github.com/nodejs/node/issues/10388
11+
PR-URL: https://github.com/nodejs/node/pull/12392
12+
Backport-PR-URL: https://github.com/nodejs/node/pull/13574
13+
Reviewed-By: Anna Henningsen <[email protected]>
14+
Reviewed-By: Benjamin Gruenbaum <[email protected]>
15+
Reviewed-By: Daniel Bevenius <[email protected]>
16+
Reviewed-By: James M Snell <[email protected]>
17+
---
18+
deps/v8/src/objects-body-descriptors.h | 2 +-
19+
deps/v8/src/objects-inl.h | 21 +++++++++++++++++++++
20+
deps/v8/src/objects.h | 20 ++++----------------
21+
3 files changed, 26 insertions(+), 17 deletions(-)
22+
23+
diff --git a/deps/v8/src/objects-body-descriptors.h b/deps/v8/src/objects-body-descriptors.h
24+
index 91cb8883be8..a1c3634bd76 100644
25+
--- a/deps/v8/src/objects-body-descriptors.h
26+
+++ b/deps/v8/src/objects-body-descriptors.h
27+
@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public BodyDescriptorBase {
28+
29+
template <typename StaticVisitor>
30+
static inline void IterateBody(HeapObject* obj, int object_size) {
31+
- IterateBody(obj);
32+
+ IterateBody<StaticVisitor>(obj);
33+
}
34+
};
35+
36+
diff --git a/deps/v8/src/objects-inl.h b/deps/v8/src/objects-inl.h
37+
index 11f4d7498d7..72208c2f00f 100644
38+
--- a/deps/v8/src/objects-inl.h
39+
+++ b/deps/v8/src/objects-inl.h
40+
@@ -36,6 +36,27 @@
41+
namespace v8 {
42+
namespace internal {
43+
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+
+
65+
PropertyDetails::PropertyDetails(Smi* smi) {
66+
value_ = smi->value();
67+
}
68+
diff --git a/deps/v8/src/objects.h b/deps/v8/src/objects.h
69+
index d1632c9deb2..47b02dadcff 100644
70+
--- a/deps/v8/src/objects.h
71+
+++ b/deps/v8/src/objects.h
72+
@@ -3261,22 +3261,10 @@ class HashTableBase : public FixedArray {
73+
template <typename Derived, typename Shape, typename Key>
74+
class HashTable : public HashTableBase {
75+
public:
76+
- // Wrapper methods
77+
- inline uint32_t Hash(Key key) {
78+
- if (Shape::UsesSeed) {
79+
- return Shape::SeededHash(key, GetHeap()->HashSeed());
80+
- } else {
81+
- return Shape::Hash(key);
82+
- }
83+
- }
84+
-
85+
- inline uint32_t HashForObject(Key key, Object* object) {
86+
- if (Shape::UsesSeed) {
87+
- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
88+
- } else {
89+
- return Shape::HashForObject(key, object);
90+
- }
91+
- }
92+
+ // Wrapper methods. Defined in src/objects-inl.h
93+
+ // to break a cycle with src/heap/heap.h.
94+
+ inline uint32_t Hash(Key key);
95+
+ inline uint32_t HashForObject(Key key, Object* object);
96+
97+
// Returns a new HashTable object.
98+
MUST_USE_RESULT static Handle<Derived> New(

0 commit comments

Comments
 (0)