From 522c29edba45f3a18e7eb4a624a28dfa96eff124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Tue, 20 Jun 2017 17:06:59 +0200 Subject: [PATCH] deps: backport c0f1ff2 from upstream V8 Original commit message: Fix GCC 7 build errors BUG=chromium:691681 R=franzih@chromium.org Change-Id: Id7e5698487f16dc217a804f6d3f24da7213c72b9 Reviewed-on: https://chromium-review.googlesource.com/530227 Commit-Queue: Toon Verwaest Reviewed-by: Toon Verwaest Cr-Commit-Position: refs/heads/master@{#46045} Fixes: https://github.com/nodejs/node/issues/10388 --- deps/v8/BUILD.gn | 1 + deps/v8/src/objects-body-descriptors.h | 2 +- deps/v8/src/objects-inl.h | 1 + deps/v8/src/objects/hash-table-inl.h | 34 ++++++++++++++++++++++++++ deps/v8/src/objects/hash-table.h | 20 +++------------ deps/v8/src/v8.gyp | 1 + 6 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 deps/v8/src/objects/hash-table-inl.h diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 80ff7340b1e87c..becf4177c19800 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -1717,6 +1717,7 @@ v8_source_set("v8_base") { "src/objects/dictionary.h", "src/objects/frame-array-inl.h", "src/objects/frame-array.h", + "src/objects/hash-table-inl.h", "src/objects/hash-table.h", "src/objects/literal-objects.cc", "src/objects/literal-objects.h", diff --git a/deps/v8/src/objects-body-descriptors.h b/deps/v8/src/objects-body-descriptors.h index 9f080eb7551bd6..b201c20fbb0294 100644 --- a/deps/v8/src/objects-body-descriptors.h +++ b/deps/v8/src/objects-body-descriptors.h @@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public BodyDescriptorBase { template static inline void IterateBody(HeapObject* obj, int object_size) { - IterateBody(obj); + IterateBody(obj); } }; diff --git a/deps/v8/src/objects-inl.h b/deps/v8/src/objects-inl.h index 4b819d43f44f45..66d258f1281f70 100644 --- a/deps/v8/src/objects-inl.h +++ b/deps/v8/src/objects-inl.h @@ -31,6 +31,7 @@ #include "src/lookup-cache-inl.h" #include "src/lookup.h" #include "src/objects.h" +#include "src/objects/hash-table-inl.h" #include "src/objects/literal-objects.h" #include "src/objects/module-info.h" #include "src/objects/regexp-match-info.h" diff --git a/deps/v8/src/objects/hash-table-inl.h b/deps/v8/src/objects/hash-table-inl.h new file mode 100644 index 00000000000000..7b2db384954d57 --- /dev/null +++ b/deps/v8/src/objects/hash-table-inl.h @@ -0,0 +1,34 @@ +// Copyright 2017 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef V8_OBJECTS_HASH_TABLE_INL_H_ +#define V8_OBJECTS_HASH_TABLE_INL_H_ + +#include "src/objects/hash-table.h" + +namespace v8 { +namespace internal { + +template +uint32_t HashTable::Hash(Key key) { + if (Shape::UsesSeed) { + return Shape::SeededHash(key, GetHeap()->HashSeed()); + } else { + return Shape::Hash(key); + } +} + +template +uint32_t HashTable::HashForObject(Key key, Object* object) { + if (Shape::UsesSeed) { + return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); + } else { + return Shape::HashForObject(key, object); + } +} + +} // namespace internal +} // namespace v8 + +#endif // V8_OBJECTS_HASH_TABLE_INL_H_ diff --git a/deps/v8/src/objects/hash-table.h b/deps/v8/src/objects/hash-table.h index 221598b711b568..b274d94cd4585a 100644 --- a/deps/v8/src/objects/hash-table.h +++ b/deps/v8/src/objects/hash-table.h @@ -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/hash-table-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 New( diff --git a/deps/v8/src/v8.gyp b/deps/v8/src/v8.gyp index 1f94a0680a5da5..a8efcdcf3f4000 100644 --- a/deps/v8/src/v8.gyp +++ b/deps/v8/src/v8.gyp @@ -1118,6 +1118,7 @@ 'objects/dictionary.h', 'objects/frame-array.h', 'objects/frame-array-inl.h', + 'objects/hash-table-inl.h', 'objects/hash-table.h', 'objects/literal-objects.cc', 'objects/literal-objects.h',