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

Side by Side Diff: Source/platform/heap/HeapTest.cpp

Issue 271703002: Simplify and speed up address-to-page cache for conservative stack scanning. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 1823 matching lines...) Expand 10 before | Expand all | Expand 10 after
1834 1834
1835 TEST(HeapTest, LargeObjects) 1835 TEST(HeapTest, LargeObjects)
1836 { 1836 {
1837 HeapStats initialHeapSize; 1837 HeapStats initialHeapSize;
1838 clearOutOldGarbage(&initialHeapSize); 1838 clearOutOldGarbage(&initialHeapSize);
1839 IntWrapper::s_destructorCalls = 0; 1839 IntWrapper::s_destructorCalls = 0;
1840 LargeObject::s_destructorCalls = 0; 1840 LargeObject::s_destructorCalls = 0;
1841 { 1841 {
1842 int slack = 8; // LargeObject points to an IntWrapper that is also alloc ated. 1842 int slack = 8; // LargeObject points to an IntWrapper that is also alloc ated.
1843 Persistent<LargeObject> object = LargeObject::create(); 1843 Persistent<LargeObject> object = LargeObject::create();
1844 EXPECT_TRUE(ThreadState::current()->contains(object));
1845 EXPECT_TRUE(ThreadState::current()->contains(reinterpret_cast<char*>(obj ect.get()) + sizeof(LargeObject) - 1));
1846 #if ENABLE(GC_TRACING)
1847 const GCInfo* info = ThreadState::current()->findGCInfo(reinterpret_cast <Address>(object.get()));
1848 EXPECT_NE(reinterpret_cast<const GCInfo*>(0), info);
1849 EXPECT_EQ(info, ThreadState::current()->findGCInfo(reinterpret_cast<Addr ess>(object.get()) + sizeof(LargeObject) - 1));
1850 EXPECT_NE(info, ThreadState::current()->findGCInfo(reinterpret_cast<Addr ess>(object.get()) + sizeof(LargeObject)));
1851 EXPECT_NE(info, ThreadState::current()->findGCInfo(reinterpret_cast<Addr ess>(object.get()) - 1));
1852 #endif
1844 HeapStats afterAllocation; 1853 HeapStats afterAllocation;
1845 clearOutOldGarbage(&afterAllocation); 1854 clearOutOldGarbage(&afterAllocation);
1846 { 1855 {
1847 object->set(0, 'a'); 1856 object->set(0, 'a');
1848 EXPECT_EQ('a', object->get(0)); 1857 EXPECT_EQ('a', object->get(0));
1849 object->set(object->length() - 1, 'b'); 1858 object->set(object->length() - 1, 'b');
1850 EXPECT_EQ('b', object->get(object->length() - 1)); 1859 EXPECT_EQ('b', object->get(object->length() - 1));
1851 size_t expectedObjectSpace = sizeof(LargeObject) + sizeof(IntWrapper ); 1860 size_t expectedObjectSpace = sizeof(LargeObject) + sizeof(IntWrapper );
1852 size_t actualObjectSpace = 1861 size_t actualObjectSpace =
1853 afterAllocation.totalObjectSpace() - initialHeapSize.totalObject Space(); 1862 afterAllocation.totalObjectSpace() - initialHeapSize.totalObject Space();
(...skipping 2020 matching lines...) Expand 10 before | Expand all | Expand 10 after
3874 { 3883 {
3875 Persistent<MixinB> b = obj; 3884 Persistent<MixinB> b = obj;
3876 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); 3885 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack);
3877 EXPECT_EQ(0, IntWrapper::s_destructorCalls); 3886 EXPECT_EQ(0, IntWrapper::s_destructorCalls);
3878 } 3887 }
3879 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); 3888 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack);
3880 EXPECT_EQ(3, IntWrapper::s_destructorCalls); 3889 EXPECT_EQ(3, IntWrapper::s_destructorCalls);
3881 } 3890 }
3882 3891
3883 } // WebCore namespace 3892 } // WebCore namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698