From 2f76132ae8440b7c0884499733055e737ebdcb7c Mon Sep 17 00:00:00 2001 From: "vegorov@chromium.org" Date: Wed, 18 Aug 2010 15:24:52 +0000 Subject: [PATCH] Fix two-phase lookup problem in FlexibleBodyVisitor and FixedBodyVisitor. In FlexibleBodyVisitor and FixedBodyVisitor, the calls to IteratePointers, which lives in the base class BodyVisitorBase, needs to be qualified with the dependent base class to be able to be bound during two-phase lookup. Review URL: http://codereview.chromium.org/3119026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/objects-visiting.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/objects-visiting.h b/src/objects-visiting.h index 335a4be..95dc66c 100644 --- a/src/objects-visiting.h +++ b/src/objects-visiting.h @@ -199,14 +199,16 @@ class FlexibleBodyVisitor : public BodyVisitorBase { public: static inline ReturnType Visit(Map* map, HeapObject* object) { int object_size = BodyDescriptor::SizeOf(map, object); - IteratePointers(object, BodyDescriptor::kStartOffset, object_size); + BodyVisitorBase::IteratePointers( + object, BodyDescriptor::kStartOffset, object_size); return static_cast(object_size); } template static inline ReturnType VisitSpecialized(Map* map, HeapObject* object) { ASSERT(BodyDescriptor::SizeOf(map, object) == object_size); - IteratePointers(object, BodyDescriptor::kStartOffset, object_size); + BodyVisitorBase::IteratePointers( + object, BodyDescriptor::kStartOffset, object_size); return static_cast(object_size); } }; @@ -216,9 +218,8 @@ template class FixedBodyVisitor : public BodyVisitorBase { public: static inline ReturnType Visit(Map* map, HeapObject* object) { - IteratePointers(object, - BodyDescriptor::kStartOffset, - BodyDescriptor::kEndOffset); + BodyVisitorBase::IteratePointers( + object, BodyDescriptor::kStartOffset, BodyDescriptor::kEndOffset); return static_cast(BodyDescriptor::kSize); } }; -- 2.7.4