| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/assert-scope.h" | 9 #include "src/assert-scope.h" |
| 10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
| (...skipping 1722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1733 | 1733 |
| 1734 // Iterates over all pointers contained in the object except the | 1734 // Iterates over all pointers contained in the object except the |
| 1735 // first map pointer. The object type is given in the first | 1735 // first map pointer. The object type is given in the first |
| 1736 // parameter. This function does not access the map pointer in the | 1736 // parameter. This function does not access the map pointer in the |
| 1737 // object, and so is safe to call while the map pointer is modified. | 1737 // object, and so is safe to call while the map pointer is modified. |
| 1738 void IterateBody(InstanceType type, int object_size, ObjectVisitor* v); | 1738 void IterateBody(InstanceType type, int object_size, ObjectVisitor* v); |
| 1739 | 1739 |
| 1740 // Returns the heap object's size in bytes | 1740 // Returns the heap object's size in bytes |
| 1741 inline int Size(); | 1741 inline int Size(); |
| 1742 | 1742 |
| 1743 // Returns true if this heap object may contain pointers to objects in new | 1743 // Returns true if this heap object may contain raw values, i.e., values that |
| 1744 // space. | 1744 // look like pointers to heap objects. |
| 1745 inline bool MayContainNewSpacePointers(); | 1745 inline bool MayContainRawValues(); |
| 1746 | 1746 |
| 1747 // Given a heap object's map pointer, returns the heap size in bytes | 1747 // Given a heap object's map pointer, returns the heap size in bytes |
| 1748 // Useful when the map pointer field is used for other purposes. | 1748 // Useful when the map pointer field is used for other purposes. |
| 1749 // GC internal. | 1749 // GC internal. |
| 1750 inline int SizeFromMap(Map* map); | 1750 inline int SizeFromMap(Map* map); |
| 1751 | 1751 |
| 1752 // Returns the field at offset in obj, as a read/write Object* reference. | 1752 // Returns the field at offset in obj, as a read/write Object* reference. |
| 1753 // Does no checking, and is safe to use during GC, while maps are invalid. | 1753 // Does no checking, and is safe to use during GC, while maps are invalid. |
| 1754 // Does not invoke write barrier, so should only be assigned to | 1754 // Does not invoke write barrier, so should only be assigned to |
| 1755 // during marking GC. | 1755 // during marking GC. |
| (...skipping 9399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11155 } else { | 11155 } else { |
| 11156 value &= ~(1 << bit_position); | 11156 value &= ~(1 << bit_position); |
| 11157 } | 11157 } |
| 11158 return value; | 11158 return value; |
| 11159 } | 11159 } |
| 11160 }; | 11160 }; |
| 11161 | 11161 |
| 11162 } } // namespace v8::internal | 11162 } } // namespace v8::internal |
| 11163 | 11163 |
| 11164 #endif // V8_OBJECTS_H_ | 11164 #endif // V8_OBJECTS_H_ |
| OLD | NEW |