File 0f3e69db.patch of Package nodejs6.5180
commit 0f3e69db41c2b6a1863f2454b028f3b3b28a9613
Author: Zuzana Svetlikova <zsvetlik@redhat.com>
Date: Wed Apr 26 18:04:40 2017 +0200
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>
Index: node-v6.10.3/deps/v8/src/objects-inl.h
===================================================================
--- node-v6.10.3.orig/deps/v8/src/objects-inl.h
+++ node-v6.10.3/deps/v8/src/objects-inl.h
@@ -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();
}
Index: node-v6.10.3/deps/v8/src/objects.h
===================================================================
--- node-v6.10.3.orig/deps/v8/src/objects.h
+++ node-v6.10.3/deps/v8/src/objects.h
@@ -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(
Index: node-v6.10.3/deps/v8/src/objects-body-descriptors.h
===================================================================
--- node-v6.10.3.orig/deps/v8/src/objects-body-descriptors.h
+++ node-v6.10.3/deps/v8/src/objects-body-descriptors.h
@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public
template <typename StaticVisitor>
static inline void IterateBody(HeapObject* obj, int object_size) {
- IterateBody(obj);
+ IterateBody<StaticVisitor>(obj);
}
};