| OLD | NEW |
| 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 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 heap->MaxExecutableSize())); | 351 heap->MaxExecutableSize())); |
| 352 TestMemoryAllocatorScope test_scope(isolate, memory_allocator); | 352 TestMemoryAllocatorScope test_scope(isolate, memory_allocator); |
| 353 | 353 |
| 354 NewSpace new_space(heap); | 354 NewSpace new_space(heap); |
| 355 | 355 |
| 356 CHECK(new_space.SetUp(CcTest::heap()->ReservedSemiSpaceSize(), | 356 CHECK(new_space.SetUp(CcTest::heap()->ReservedSemiSpaceSize(), |
| 357 CcTest::heap()->ReservedSemiSpaceSize())); | 357 CcTest::heap()->ReservedSemiSpaceSize())); |
| 358 CHECK(new_space.HasBeenSetUp()); | 358 CHECK(new_space.HasBeenSetUp()); |
| 359 | 359 |
| 360 while (new_space.Available() >= Page::kMaxRegularHeapObjectSize) { | 360 while (new_space.Available() >= Page::kMaxRegularHeapObjectSize) { |
| 361 Object* obj = new_space.AllocateRaw( | 361 Object* obj = |
| 362 Page::kMaxRegularHeapObjectSize).ToObjectChecked(); | 362 new_space.AllocateRawUnaligned(Page::kMaxRegularHeapObjectSize) |
| 363 .ToObjectChecked(); |
| 363 CHECK(new_space.Contains(HeapObject::cast(obj))); | 364 CHECK(new_space.Contains(HeapObject::cast(obj))); |
| 364 } | 365 } |
| 365 | 366 |
| 366 new_space.TearDown(); | 367 new_space.TearDown(); |
| 367 memory_allocator->TearDown(); | 368 memory_allocator->TearDown(); |
| 368 delete memory_allocator; | 369 delete memory_allocator; |
| 369 } | 370 } |
| 370 | 371 |
| 371 | 372 |
| 372 TEST(OldSpace) { | 373 TEST(OldSpace) { |
| 373 Isolate* isolate = CcTest::i_isolate(); | 374 Isolate* isolate = CcTest::i_isolate(); |
| 374 Heap* heap = isolate->heap(); | 375 Heap* heap = isolate->heap(); |
| 375 MemoryAllocator* memory_allocator = new MemoryAllocator(isolate); | 376 MemoryAllocator* memory_allocator = new MemoryAllocator(isolate); |
| 376 CHECK(memory_allocator->SetUp(heap->MaxReserved(), | 377 CHECK(memory_allocator->SetUp(heap->MaxReserved(), |
| 377 heap->MaxExecutableSize())); | 378 heap->MaxExecutableSize())); |
| 378 TestMemoryAllocatorScope test_scope(isolate, memory_allocator); | 379 TestMemoryAllocatorScope test_scope(isolate, memory_allocator); |
| 379 | 380 |
| 380 OldSpace* s = new OldSpace(heap, heap->MaxOldGenerationSize(), OLD_SPACE, | 381 OldSpace* s = new OldSpace(heap, heap->MaxOldGenerationSize(), OLD_SPACE, |
| 381 NOT_EXECUTABLE); | 382 NOT_EXECUTABLE); |
| 382 CHECK(s != NULL); | 383 CHECK(s != NULL); |
| 383 | 384 |
| 384 CHECK(s->SetUp()); | 385 CHECK(s->SetUp()); |
| 385 | 386 |
| 386 while (s->Available() > 0) { | 387 while (s->Available() > 0) { |
| 387 s->AllocateRaw(Page::kMaxRegularHeapObjectSize).ToObjectChecked(); | 388 s->AllocateRawUnaligned(Page::kMaxRegularHeapObjectSize).ToObjectChecked(); |
| 388 } | 389 } |
| 389 | 390 |
| 390 s->TearDown(); | 391 s->TearDown(); |
| 391 delete s; | 392 delete s; |
| 392 memory_allocator->TearDown(); | 393 memory_allocator->TearDown(); |
| 393 delete memory_allocator; | 394 delete memory_allocator; |
| 394 } | 395 } |
| 395 | 396 |
| 396 | 397 |
| 397 TEST(LargeObjectSpace) { | 398 TEST(LargeObjectSpace) { |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 478 // configuration. | 479 // configuration. |
| 479 if (new_space->InitialTotalCapacity() == Page::kPageSize) { | 480 if (new_space->InitialTotalCapacity() == Page::kPageSize) { |
| 480 CHECK(new_space->CommittedMemory() == new_space->InitialTotalCapacity()); | 481 CHECK(new_space->CommittedMemory() == new_space->InitialTotalCapacity()); |
| 481 | 482 |
| 482 // Fill up the first (and only) page of the semi space. | 483 // Fill up the first (and only) page of the semi space. |
| 483 FillCurrentPage(new_space); | 484 FillCurrentPage(new_space); |
| 484 | 485 |
| 485 // Try to allocate out of the new space. A new page should be added and | 486 // Try to allocate out of the new space. A new page should be added and |
| 486 // the | 487 // the |
| 487 // allocation should succeed. | 488 // allocation should succeed. |
| 488 v8::internal::AllocationResult allocation = new_space->AllocateRaw(80); | 489 v8::internal::AllocationResult allocation = |
| 490 new_space->AllocateRawUnaligned(80); |
| 489 CHECK(!allocation.IsRetry()); | 491 CHECK(!allocation.IsRetry()); |
| 490 CHECK(new_space->CommittedMemory() == 2 * Page::kPageSize); | 492 CHECK(new_space->CommittedMemory() == 2 * Page::kPageSize); |
| 491 | 493 |
| 492 // Turn the allocation into a proper object so isolate teardown won't | 494 // Turn the allocation into a proper object so isolate teardown won't |
| 493 // crash. | 495 // crash. |
| 494 HeapObject* free_space = NULL; | 496 HeapObject* free_space = NULL; |
| 495 CHECK(allocation.To(&free_space)); | 497 CHECK(allocation.To(&free_space)); |
| 496 new_space->heap()->CreateFillerObjectAt(free_space->address(), 80); | 498 new_space->heap()->CreateFillerObjectAt(free_space->address(), 80); |
| 497 } | 499 } |
| 498 } | 500 } |
| 499 isolate->Dispose(); | 501 isolate->Dispose(); |
| 500 } | 502 } |
| OLD | NEW |