OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 1651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1662 | 1662 |
1663 | 1663 |
1664 // HeapObject is the superclass for all classes describing heap allocated | 1664 // HeapObject is the superclass for all classes describing heap allocated |
1665 // objects. | 1665 // objects. |
1666 class HeapObject: public Object { | 1666 class HeapObject: public Object { |
1667 public: | 1667 public: |
1668 // [map]: Contains a map which contains the object's reflective | 1668 // [map]: Contains a map which contains the object's reflective |
1669 // information. | 1669 // information. |
1670 inline Map* map() const; | 1670 inline Map* map() const; |
1671 inline void set_map(Map* value); | 1671 inline void set_map(Map* value); |
| 1672 |
| 1673 inline HeapObject** map_slot(); |
| 1674 |
1672 // The no-write-barrier version. This is OK if the object is white and in | 1675 // The no-write-barrier version. This is OK if the object is white and in |
1673 // new space, or if the value is an immortal immutable object, like the maps | 1676 // new space, or if the value is an immortal immutable object, like the maps |
1674 // of primitive (non-JS) objects like strings, heap numbers etc. | 1677 // of primitive (non-JS) objects like strings, heap numbers etc. |
1675 inline void set_map_no_write_barrier(Map* value); | 1678 inline void set_map_no_write_barrier(Map* value); |
1676 | 1679 |
1677 // Get the map using acquire load. | 1680 // Get the map using acquire load. |
1678 inline Map* synchronized_map(); | 1681 inline Map* synchronized_map(); |
1679 inline MapWord synchronized_map_word() const; | 1682 inline MapWord synchronized_map_word() const; |
1680 | 1683 |
1681 // Set the map using release store | 1684 // Set the map using release store |
(...skipping 8520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10202 } | 10205 } |
10203 }; | 10206 }; |
10204 | 10207 |
10205 | 10208 |
10206 } // NOLINT, false-positive due to second-order macros. | 10209 } // NOLINT, false-positive due to second-order macros. |
10207 } // NOLINT, false-positive due to second-order macros. | 10210 } // NOLINT, false-positive due to second-order macros. |
10208 | 10211 |
10209 #include "src/objects/object-macros-undef.h" | 10212 #include "src/objects/object-macros-undef.h" |
10210 | 10213 |
10211 #endif // V8_OBJECTS_H_ | 10214 #endif // V8_OBJECTS_H_ |
OLD | NEW |