summaryrefslogtreecommitdiffstats
path: root/development/nodejs/chromium-v8-gcc7.patch
diff options
context:
space:
mode:
Diffstat (limited to 'development/nodejs/chromium-v8-gcc7.patch')
-rw-r--r--development/nodejs/chromium-v8-gcc7.patch69
1 files changed, 69 insertions, 0 deletions
diff --git a/development/nodejs/chromium-v8-gcc7.patch b/development/nodejs/chromium-v8-gcc7.patch
new file mode 100644
index 0000000000..03d6c2b494
--- /dev/null
+++ b/development/nodejs/chromium-v8-gcc7.patch
@@ -0,0 +1,69 @@
+diff -up chromium-56.0.2924.87/v8/src/objects-body-descriptors.h.gcc7 chromium-56.0.2924.87/v8/src/objects-body-descriptors.h
+--- chromium-56.0.2924.87/v8/src/objects-body-descriptors.h.gcc7 2017-02-28 16:00:27.313172210 -0500
++++ chromium-56.0.2924.87/v8/src/objects-body-descriptors.h 2017-02-28 16:00:46.016804708 -0500
+@@ -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);
+ }
+ };
+
+--- deps/v8/src/objects.h.orig 2017-05-11 17:42:34.296905432 +0700
++++ deps/v8/src/objects.h 2017-05-11 17:44:23.790189039 +0700
+@@ -3261,22 +3261,11 @@
+ 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(
+--- deps/v8/src/objects-inl.h.orig 2017-05-11 17:44:47.550817371 +0700
++++ deps/v8/src/objects-inl.h 2017-05-11 17:45:13.290415065 +0700
+@@ -36,6 +36,25 @@
+ 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();
+ }