summarylogtreecommitdiffstats
path: root/gcc7.patch
diff options
context:
space:
mode:
authorMarco Pompili2017-08-04 16:35:37 +0200
committerMarco Pompili2017-08-04 16:36:01 +0200
commit3bd1540d3de247333eeebc5de5e1534f710da314 (patch)
treedabcb3fddcc5cc7f6a2188a0a3a24612a23c8235 /gcc7.patch
parenteee5828731bb3199850c329781e3ea9ae4d536a3 (diff)
downloadaur-3bd1540d3de247333eeebc5de5e1534f710da314.tar.gz
Version 6.0.286.52-1
Diffstat (limited to 'gcc7.patch')
-rw-r--r--gcc7.patch76
1 files changed, 76 insertions, 0 deletions
diff --git a/gcc7.patch b/gcc7.patch
new file mode 100644
index 000000000000..bfaeb28ddfd1
--- /dev/null
+++ b/gcc7.patch
@@ -0,0 +1,76 @@
+diff --git a/src/objects-body-descriptors.h b/src/objects-body-descriptors.h
+index 499c48a930..3eb3bb539e 100644
+--- a/src/objects-body-descriptors.h
++++ b/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/src/objects-inl.h b/src/objects-inl.h
+index 406f49d996..a2e7a6d1fc 100644
+--- a/src/objects-inl.h
++++ b/src/objects-inl.h
+@@ -47,6 +47,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();
+ }
+diff --git a/src/objects/hash-table.h b/src/objects/hash-table.h
+index f3c68a82c5..71ce2a5613 100644
+--- a/src/objects/hash-table.h
++++ b/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-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(