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

Side by Side Diff: src/objects.cc

Issue 9903019: Reset function info counters after context disposal in incremental marking step. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Address comments Created 8 years, 8 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/objects.h ('k') | test/cctest/test-heap.cc » ('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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 1372 matching lines...) Expand 10 before | Expand all | Expand 10 after
1383 case EXTERNAL_PIXEL_ARRAY_TYPE: 1383 case EXTERNAL_PIXEL_ARRAY_TYPE:
1384 case EXTERNAL_BYTE_ARRAY_TYPE: 1384 case EXTERNAL_BYTE_ARRAY_TYPE:
1385 case EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE: 1385 case EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE:
1386 case EXTERNAL_SHORT_ARRAY_TYPE: 1386 case EXTERNAL_SHORT_ARRAY_TYPE:
1387 case EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE: 1387 case EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE:
1388 case EXTERNAL_INT_ARRAY_TYPE: 1388 case EXTERNAL_INT_ARRAY_TYPE:
1389 case EXTERNAL_UNSIGNED_INT_ARRAY_TYPE: 1389 case EXTERNAL_UNSIGNED_INT_ARRAY_TYPE:
1390 case EXTERNAL_FLOAT_ARRAY_TYPE: 1390 case EXTERNAL_FLOAT_ARRAY_TYPE:
1391 case EXTERNAL_DOUBLE_ARRAY_TYPE: 1391 case EXTERNAL_DOUBLE_ARRAY_TYPE:
1392 break; 1392 break;
1393 case SHARED_FUNCTION_INFO_TYPE: 1393 case SHARED_FUNCTION_INFO_TYPE: {
1394 SharedFunctionInfo::BodyDescriptor::IterateBody(this, v); 1394 SharedFunctionInfo* shared = reinterpret_cast<SharedFunctionInfo*>(this);
1395 shared->SharedFunctionInfoIterateBody(v);
1395 break; 1396 break;
1397 }
1396 1398
1397 #define MAKE_STRUCT_CASE(NAME, Name, name) \ 1399 #define MAKE_STRUCT_CASE(NAME, Name, name) \
1398 case NAME##_TYPE: 1400 case NAME##_TYPE:
1399 STRUCT_LIST(MAKE_STRUCT_CASE) 1401 STRUCT_LIST(MAKE_STRUCT_CASE)
1400 #undef MAKE_STRUCT_CASE 1402 #undef MAKE_STRUCT_CASE
1401 StructBodyDescriptor::IterateBody(this, object_size, v); 1403 StructBodyDescriptor::IterateBody(this, object_size, v);
1402 break; 1404 break;
1403 default: 1405 default:
1404 PrintF("Unknown type: %d\n", type); 1406 PrintF("Unknown type: %d\n", type);
1405 UNREACHABLE(); 1407 UNREACHABLE();
(...skipping 6513 matching lines...) Expand 10 before | Expand all | Expand 10 after
7919 // Resize the initial map and all maps in its transition tree. 7921 // Resize the initial map and all maps in its transition tree.
7920 map->TraverseTransitionTree(&ShrinkInstanceSize, &slack); 7922 map->TraverseTransitionTree(&ShrinkInstanceSize, &slack);
7921 7923
7922 // Give the correct expected_nof_properties to initial maps created later. 7924 // Give the correct expected_nof_properties to initial maps created later.
7923 ASSERT(expected_nof_properties() >= slack); 7925 ASSERT(expected_nof_properties() >= slack);
7924 set_expected_nof_properties(expected_nof_properties() - slack); 7926 set_expected_nof_properties(expected_nof_properties() - slack);
7925 } 7927 }
7926 } 7928 }
7927 7929
7928 7930
7931 void SharedFunctionInfo::SharedFunctionInfoIterateBody(ObjectVisitor* v) {
7932 v->VisitSharedFunctionInfo(this);
7933 SharedFunctionInfo::BodyDescriptor::IterateBody(this, v);
7934 }
7935
7936
7929 #define DECLARE_TAG(ignore1, name, ignore2) name, 7937 #define DECLARE_TAG(ignore1, name, ignore2) name,
7930 const char* const VisitorSynchronization::kTags[ 7938 const char* const VisitorSynchronization::kTags[
7931 VisitorSynchronization::kNumberOfSyncTags] = { 7939 VisitorSynchronization::kNumberOfSyncTags] = {
7932 VISITOR_SYNCHRONIZATION_TAGS_LIST(DECLARE_TAG) 7940 VISITOR_SYNCHRONIZATION_TAGS_LIST(DECLARE_TAG)
7933 }; 7941 };
7934 #undef DECLARE_TAG 7942 #undef DECLARE_TAG
7935 7943
7936 7944
7937 #define DECLARE_TAG(ignore1, ignore2, name) name, 7945 #define DECLARE_TAG(ignore1, ignore2, name) name,
7938 const char* const VisitorSynchronization::kTagNames[ 7946 const char* const VisitorSynchronization::kTagNames[
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
7976 ASSERT((RelocInfo::IsJSReturn(rinfo->rmode()) && 7984 ASSERT((RelocInfo::IsJSReturn(rinfo->rmode()) &&
7977 rinfo->IsPatchedReturnSequence()) || 7985 rinfo->IsPatchedReturnSequence()) ||
7978 (RelocInfo::IsDebugBreakSlot(rinfo->rmode()) && 7986 (RelocInfo::IsDebugBreakSlot(rinfo->rmode()) &&
7979 rinfo->IsPatchedDebugBreakSlotSequence())); 7987 rinfo->IsPatchedDebugBreakSlotSequence()));
7980 Object* target = Code::GetCodeFromTargetAddress(rinfo->call_address()); 7988 Object* target = Code::GetCodeFromTargetAddress(rinfo->call_address());
7981 Object* old_target = target; 7989 Object* old_target = target;
7982 VisitPointer(&target); 7990 VisitPointer(&target);
7983 CHECK_EQ(target, old_target); // VisitPointer doesn't change Code* *target. 7991 CHECK_EQ(target, old_target); // VisitPointer doesn't change Code* *target.
7984 } 7992 }
7985 7993
7986
7987 void ObjectVisitor::VisitEmbeddedPointer(RelocInfo* rinfo) { 7994 void ObjectVisitor::VisitEmbeddedPointer(RelocInfo* rinfo) {
7988 ASSERT(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT); 7995 ASSERT(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT);
7989 VisitPointer(rinfo->target_object_address()); 7996 VisitPointer(rinfo->target_object_address());
7990 } 7997 }
7991 7998
7992 void ObjectVisitor::VisitExternalReference(RelocInfo* rinfo) { 7999 void ObjectVisitor::VisitExternalReference(RelocInfo* rinfo) {
7993 Address* p = rinfo->target_reference_address(); 8000 Address* p = rinfo->target_reference_address();
7994 VisitExternalReferences(p, p + 1); 8001 VisitExternalReferences(p, p + 1);
7995 } 8002 }
7996 8003
(...skipping 4969 matching lines...) Expand 10 before | Expand all | Expand 10 after
12966 set_year(Smi::FromInt(year), SKIP_WRITE_BARRIER); 12973 set_year(Smi::FromInt(year), SKIP_WRITE_BARRIER);
12967 set_month(Smi::FromInt(month), SKIP_WRITE_BARRIER); 12974 set_month(Smi::FromInt(month), SKIP_WRITE_BARRIER);
12968 set_day(Smi::FromInt(day), SKIP_WRITE_BARRIER); 12975 set_day(Smi::FromInt(day), SKIP_WRITE_BARRIER);
12969 set_weekday(Smi::FromInt(weekday), SKIP_WRITE_BARRIER); 12976 set_weekday(Smi::FromInt(weekday), SKIP_WRITE_BARRIER);
12970 set_hour(Smi::FromInt(hour), SKIP_WRITE_BARRIER); 12977 set_hour(Smi::FromInt(hour), SKIP_WRITE_BARRIER);
12971 set_min(Smi::FromInt(min), SKIP_WRITE_BARRIER); 12978 set_min(Smi::FromInt(min), SKIP_WRITE_BARRIER);
12972 set_sec(Smi::FromInt(sec), SKIP_WRITE_BARRIER); 12979 set_sec(Smi::FromInt(sec), SKIP_WRITE_BARRIER);
12973 } 12980 }
12974 12981
12975 } } // namespace v8::internal 12982 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/objects.h ('k') | test/cctest/test-heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698