Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: src/heap/heap.h

Issue 581223004: Support large objects in the serializer/deserializer. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/heap/heap-inl.h » ('j') | src/serialize.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_HEAP_HEAP_H_ 5 #ifndef V8_HEAP_HEAP_H_
6 #define V8_HEAP_HEAP_H_ 6 #define V8_HEAP_HEAP_H_
7 7
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 1644 matching lines...) Expand 10 before | Expand all | Expand 10 after
1655 return (pretenure == TENURED) ? preferred_old_space : NEW_SPACE; 1655 return (pretenure == TENURED) ? preferred_old_space : NEW_SPACE;
1656 } 1656 }
1657 1657
1658 // Allocate an uninitialized object. The memory is non-executable if the 1658 // Allocate an uninitialized object. The memory is non-executable if the
1659 // hardware and OS allow. This is the single choke-point for allocations 1659 // hardware and OS allow. This is the single choke-point for allocations
1660 // performed by the runtime and should not be bypassed (to extend this to 1660 // performed by the runtime and should not be bypassed (to extend this to
1661 // inlined allocations, use the Heap::DisableInlineAllocation() support). 1661 // inlined allocations, use the Heap::DisableInlineAllocation() support).
1662 MUST_USE_RESULT inline AllocationResult AllocateRaw( 1662 MUST_USE_RESULT inline AllocationResult AllocateRaw(
1663 int size_in_bytes, AllocationSpace space, AllocationSpace retry_space); 1663 int size_in_bytes, AllocationSpace space, AllocationSpace retry_space);
1664 1664
1665 inline HeapObject* ForceAllocateLargeObject(int size_in_bytes,
1666 Executability executable);
1667
1665 // Allocates a heap object based on the map. 1668 // Allocates a heap object based on the map.
1666 MUST_USE_RESULT AllocationResult 1669 MUST_USE_RESULT AllocationResult
1667 Allocate(Map* map, AllocationSpace space, 1670 Allocate(Map* map, AllocationSpace space,
1668 AllocationSite* allocation_site = NULL); 1671 AllocationSite* allocation_site = NULL);
1669 1672
1670 // Allocates a partial map for bootstrapping. 1673 // Allocates a partial map for bootstrapping.
1671 MUST_USE_RESULT AllocationResult 1674 MUST_USE_RESULT AllocationResult
1672 AllocatePartialMap(InstanceType instance_type, int instance_size); 1675 AllocatePartialMap(InstanceType instance_type, int instance_size);
1673 1676
1674 // Initializes a JSObject based on its map. 1677 // Initializes a JSObject based on its map.
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
2014 2017
2015 VisitorDispatchTable<ScavengingCallback> scavenging_visitors_table_; 2018 VisitorDispatchTable<ScavengingCallback> scavenging_visitors_table_;
2016 2019
2017 MemoryChunk* chunks_queued_for_free_; 2020 MemoryChunk* chunks_queued_for_free_;
2018 2021
2019 base::Mutex relocation_mutex_; 2022 base::Mutex relocation_mutex_;
2020 2023
2021 int gc_callbacks_depth_; 2024 int gc_callbacks_depth_;
2022 2025
2023 friend class AlwaysAllocateScope; 2026 friend class AlwaysAllocateScope;
2027 friend class Deserializer;
2024 friend class Factory; 2028 friend class Factory;
2025 friend class GCCallbacksScope; 2029 friend class GCCallbacksScope;
2026 friend class GCTracer; 2030 friend class GCTracer;
2027 friend class HeapIterator; 2031 friend class HeapIterator;
2028 friend class Isolate; 2032 friend class Isolate;
2029 friend class MarkCompactCollector; 2033 friend class MarkCompactCollector;
2030 friend class MarkCompactMarkingVisitor; 2034 friend class MarkCompactMarkingVisitor;
2031 friend class MapCompact; 2035 friend class MapCompact;
2032 #ifdef VERIFY_HEAP 2036 #ifdef VERIFY_HEAP
2033 friend class NoWeakObjectVerificationScope; 2037 friend class NoWeakObjectVerificationScope;
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
2492 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. 2496 DisallowHeapAllocation no_allocation; // i.e. no gc allowed.
2493 2497
2494 private: 2498 private:
2495 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); 2499 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer);
2496 }; 2500 };
2497 #endif // DEBUG 2501 #endif // DEBUG
2498 } 2502 }
2499 } // namespace v8::internal 2503 } // namespace v8::internal
2500 2504
2501 #endif // V8_HEAP_HEAP_H_ 2505 #endif // V8_HEAP_HEAP_H_
OLDNEW
« no previous file with comments | « no previous file | src/heap/heap-inl.h » ('j') | src/serialize.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698