diff options
author | Michaƫl Zasso <targos@protonmail.com> | 2017-06-20 17:06:59 +0200 |
---|---|---|
committer | Myles Borins <mylesborins@google.com> | 2017-08-01 15:23:16 -0500 |
commit | 5651a6f65b4d08abe61fcd61d1f349b7ca76712e (patch) | |
tree | 22a6cc2d2ef1981e59053a9f68d3cb99cbfe95f1 /deps/v8 | |
parent | ed30842440267d8b8c66cd5a315344dc9de855ee (diff) | |
download | node-new-5651a6f65b4d08abe61fcd61d1f349b7ca76712e.tar.gz |
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 <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46045}
Refs: https://github.com/nodejs/node/pull/13517
Fixes: https://github.com/nodejs/node/issues/10388
Refs: https://github.com/nodejs/node/pull/12392
PR-URL: https://github.com/nodejs/node/pull/14004
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'deps/v8')
-rw-r--r-- | deps/v8/BUILD.gn | 1 | ||||
-rw-r--r-- | deps/v8/src/objects-body-descriptors.h | 2 | ||||
-rw-r--r-- | deps/v8/src/objects-inl.h | 1 | ||||
-rw-r--r-- | deps/v8/src/objects/hash-table-inl.h | 34 | ||||
-rw-r--r-- | deps/v8/src/objects/hash-table.h | 20 | ||||
-rw-r--r-- | deps/v8/src/v8.gyp | 1 |
6 files changed, 42 insertions, 17 deletions
diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 80d6f34133..2060cb1981 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -1748,6 +1748,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/intl-objects.cc", "src/objects/intl-objects.h", diff --git a/deps/v8/src/objects-body-descriptors.h b/deps/v8/src/objects-body-descriptors.h index 499c48a930..3eb3bb539e 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 <typename StaticVisitor> static inline void IterateBody(HeapObject* obj, int object_size) { - IterateBody(obj); + IterateBody<StaticVisitor>(obj); } static inline int SizeOf(Map* map, HeapObject* object) { return kSize; } diff --git a/deps/v8/src/objects-inl.h b/deps/v8/src/objects-inl.h index 406f49d996..9afd19c8ca 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 0000000000..7b2db38495 --- /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 <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); + } +} + +} // 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 f3c68a82c5..0eac3a2342 100644 --- a/deps/v8/src/objects/hash-table.h +++ b/deps/v8/src/objects/hash-table.h @@ -138,22 +138,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<Derived> New( diff --git a/deps/v8/src/v8.gyp b/deps/v8/src/v8.gyp index e7e19f5059..8015a6bda6 100644 --- a/deps/v8/src/v8.gyp +++ b/deps/v8/src/v8.gyp @@ -1228,6 +1228,7 @@ 'objects/dictionary.h', 'objects/frame-array.h', 'objects/frame-array-inl.h', + 'objects/hash-table-inl.h', 'objects/hash-table.h', 'objects/intl-objects.cc', 'objects/intl-objects.h', |