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

Side by Side Diff: src/spaces.h

Issue 9231009: More spelling changes. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 8 years, 11 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 | « src/serialize.h ('k') | src/spaces-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 return true; 288 return true;
289 } 289 }
290 }; 290 };
291 291
292 292
293 class SkipList; 293 class SkipList;
294 class SlotsBuffer; 294 class SlotsBuffer;
295 295
296 // MemoryChunk represents a memory region owned by a specific space. 296 // MemoryChunk represents a memory region owned by a specific space.
297 // It is divided into the header and the body. Chunk start is always 297 // It is divided into the header and the body. Chunk start is always
298 // 1MB aligned. Start of the body is aligned so it can accomodate 298 // 1MB aligned. Start of the body is aligned so it can accommodate
299 // any heap object. 299 // any heap object.
300 class MemoryChunk { 300 class MemoryChunk {
301 public: 301 public:
302 // Only works if the pointer is in the first kPageSize of the MemoryChunk. 302 // Only works if the pointer is in the first kPageSize of the MemoryChunk.
303 static MemoryChunk* FromAddress(Address a) { 303 static MemoryChunk* FromAddress(Address a) {
304 return reinterpret_cast<MemoryChunk*>(OffsetFrom(a) & ~kAlignmentMask); 304 return reinterpret_cast<MemoryChunk*>(OffsetFrom(a) & ~kAlignmentMask);
305 } 305 }
306 306
307 // Only works for addresses in pointer spaces, not data or code spaces. 307 // Only works for addresses in pointer spaces, not data or code spaces.
308 static inline MemoryChunk* FromAnyPointerAddress(Address addr); 308 static inline MemoryChunk* FromAnyPointerAddress(Address addr);
(...skipping 865 matching lines...) Expand 10 before | Expand all | Expand 10 after
1174 #ifdef DEBUG 1174 #ifdef DEBUG
1175 bool VerifyPagedAllocation() { 1175 bool VerifyPagedAllocation() {
1176 return (Page::FromAllocationTop(top) == Page::FromAllocationTop(limit)) 1176 return (Page::FromAllocationTop(top) == Page::FromAllocationTop(limit))
1177 && (top <= limit); 1177 && (top <= limit);
1178 } 1178 }
1179 #endif 1179 #endif
1180 }; 1180 };
1181 1181
1182 1182
1183 // An abstraction of the accounting statistics of a page-structured space. 1183 // An abstraction of the accounting statistics of a page-structured space.
1184 // The 'capacity' of a space is the number of object-area bytes (ie, not 1184 // The 'capacity' of a space is the number of object-area bytes (i.e., not
1185 // including page bookkeeping structures) currently in the space. The 'size' 1185 // including page bookkeeping structures) currently in the space. The 'size'
1186 // of a space is the number of allocated bytes, the 'waste' in the space is 1186 // of a space is the number of allocated bytes, the 'waste' in the space is
1187 // the number of bytes that are not allocated and not available to 1187 // the number of bytes that are not allocated and not available to
1188 // allocation without reorganizing the space via a GC (eg, small blocks due 1188 // allocation without reorganizing the space via a GC (e.g. small blocks due
1189 // to internal fragmentation, top of page areas in map space), and the bytes 1189 // to internal fragmentation, top of page areas in map space), and the bytes
1190 // 'available' is the number of unallocated bytes that are not waste. The 1190 // 'available' is the number of unallocated bytes that are not waste. The
1191 // capacity is the sum of size, waste, and available. 1191 // capacity is the sum of size, waste, and available.
1192 // 1192 //
1193 // The stats are only set by functions that ensure they stay balanced. These 1193 // The stats are only set by functions that ensure they stay balanced. These
1194 // functions increase or decrease one of the non-capacity stats in 1194 // functions increase or decrease one of the non-capacity stats in
1195 // conjunction with capacity, or else they always balance increases and 1195 // conjunction with capacity, or else they always balance increases and
1196 // decreases to the non-capacity stats. 1196 // decreases to the non-capacity stats.
1197 class AllocationStats BASE_EMBEDDED { 1197 class AllocationStats BASE_EMBEDDED {
1198 public: 1198 public:
1199 AllocationStats() { Clear(); } 1199 AllocationStats() { Clear(); }
1200 1200
1201 // Zero out all the allocation statistics (ie, no capacity). 1201 // Zero out all the allocation statistics (i.e., no capacity).
1202 void Clear() { 1202 void Clear() {
1203 capacity_ = 0; 1203 capacity_ = 0;
1204 size_ = 0; 1204 size_ = 0;
1205 waste_ = 0; 1205 waste_ = 0;
1206 } 1206 }
1207 1207
1208 void ClearSizeWaste() { 1208 void ClearSizeWaste() {
1209 size_ = capacity_; 1209 size_ = capacity_;
1210 waste_ = 0; 1210 waste_ = 0;
1211 } 1211 }
1212 1212
1213 // Reset the allocation statistics (ie, available = capacity with no 1213 // Reset the allocation statistics (i.e., available = capacity with no
1214 // wasted or allocated bytes). 1214 // wasted or allocated bytes).
1215 void Reset() { 1215 void Reset() {
1216 size_ = 0; 1216 size_ = 0;
1217 waste_ = 0; 1217 waste_ = 0;
1218 } 1218 }
1219 1219
1220 // Accessors for the allocation statistics. 1220 // Accessors for the allocation statistics.
1221 intptr_t Capacity() { return capacity_; } 1221 intptr_t Capacity() { return capacity_; }
1222 intptr_t Size() { return size_; } 1222 intptr_t Size() { return size_; }
1223 intptr_t Waste() { return waste_; } 1223 intptr_t Waste() { return waste_; }
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1334 // Clear the free list. 1334 // Clear the free list.
1335 void Reset(); 1335 void Reset();
1336 1336
1337 // Return the number of bytes available on the free list. 1337 // Return the number of bytes available on the free list.
1338 intptr_t available() { return available_; } 1338 intptr_t available() { return available_; }
1339 1339
1340 // Place a node on the free list. The block of size 'size_in_bytes' 1340 // Place a node on the free list. The block of size 'size_in_bytes'
1341 // starting at 'start' is placed on the free list. The return value is the 1341 // starting at 'start' is placed on the free list. The return value is the
1342 // number of bytes that have been lost due to internal fragmentation by 1342 // number of bytes that have been lost due to internal fragmentation by
1343 // freeing the block. Bookkeeping information will be written to the block, 1343 // freeing the block. Bookkeeping information will be written to the block,
1344 // ie, its contents will be destroyed. The start address should be word 1344 // i.e., its contents will be destroyed. The start address should be word
1345 // aligned, and the size should be a non-zero multiple of the word size. 1345 // aligned, and the size should be a non-zero multiple of the word size.
1346 int Free(Address start, int size_in_bytes); 1346 int Free(Address start, int size_in_bytes);
1347 1347
1348 // Allocate a block of size 'size_in_bytes' from the free list. The block 1348 // Allocate a block of size 'size_in_bytes' from the free list. The block
1349 // is unitialized. A failure is returned if no block is available. The 1349 // is unitialized. A failure is returned if no block is available. The
1350 // number of bytes lost to fragmentation is returned in the output parameter 1350 // number of bytes lost to fragmentation is returned in the output parameter
1351 // 'wasted_bytes'. The size should be a non-zero multiple of the word size. 1351 // 'wasted_bytes'. The size should be a non-zero multiple of the word size.
1352 MUST_USE_RESULT HeapObject* Allocate(int size_in_bytes); 1352 MUST_USE_RESULT HeapObject* Allocate(int size_in_bytes);
1353 1353
1354 #ifdef DEBUG 1354 #ifdef DEBUG
(...skipping 1288 matching lines...) Expand 10 before | Expand all | Expand 10 after
2643 } 2643 }
2644 // Must be small, since an iteration is used for lookup. 2644 // Must be small, since an iteration is used for lookup.
2645 static const int kMaxComments = 64; 2645 static const int kMaxComments = 64;
2646 }; 2646 };
2647 #endif 2647 #endif
2648 2648
2649 2649
2650 } } // namespace v8::internal 2650 } } // namespace v8::internal
2651 2651
2652 #endif // V8_SPACES_H_ 2652 #endif // V8_SPACES_H_
OLDNEW
« no previous file with comments | « src/serialize.h ('k') | src/spaces-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698