OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
764 // Makes a new symbol object | 764 // Makes a new symbol object |
765 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 765 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
766 // failed. | 766 // failed. |
767 // Please note this function does not perform a garbage collection. | 767 // Please note this function does not perform a garbage collection. |
768 static Object* CreateSymbol(const char* str, int length, int hash); | 768 static Object* CreateSymbol(const char* str, int length, int hash); |
769 static Object* CreateSymbol(String* str); | 769 static Object* CreateSymbol(String* str); |
770 | 770 |
771 // Write barrier support for address[offset] = o. | 771 // Write barrier support for address[offset] = o. |
772 static inline void RecordWrite(Address address, int offset); | 772 static inline void RecordWrite(Address address, int offset); |
773 | 773 |
| 774 // Write barrier support for address[start : start + len[ = o. |
| 775 static inline void RecordWrites(Address address, int start, int len); |
| 776 |
774 // Given an address occupied by a live code object, return that object. | 777 // Given an address occupied by a live code object, return that object. |
775 static Object* FindCodeObject(Address a); | 778 static Object* FindCodeObject(Address a); |
776 | 779 |
777 // Invoke Shrink on shrinkable spaces. | 780 // Invoke Shrink on shrinkable spaces. |
778 static void Shrink(); | 781 static void Shrink(); |
779 | 782 |
780 enum HeapState { NOT_IN_GC, SCAVENGE, MARK_COMPACT }; | 783 enum HeapState { NOT_IN_GC, SCAVENGE, MARK_COMPACT }; |
781 static inline HeapState gc_state() { return gc_state_; } | 784 static inline HeapState gc_state() { return gc_state_; } |
782 | 785 |
783 #ifdef DEBUG | 786 #ifdef DEBUG |
(...skipping 947 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1731 | 1734 |
1732 // To speed up scavenge collections new space string are kept | 1735 // To speed up scavenge collections new space string are kept |
1733 // separate from old space strings. | 1736 // separate from old space strings. |
1734 static List<Object*> new_space_strings_; | 1737 static List<Object*> new_space_strings_; |
1735 static List<Object*> old_space_strings_; | 1738 static List<Object*> old_space_strings_; |
1736 }; | 1739 }; |
1737 | 1740 |
1738 } } // namespace v8::internal | 1741 } } // namespace v8::internal |
1739 | 1742 |
1740 #endif // V8_HEAP_H_ | 1743 #endif // V8_HEAP_H_ |
OLD | NEW |