Reviewers: fschneider, Description: Merge fix for incorrect overlap check in mark compact collector to 3.2 branch.
Bleeding edge revision 8704. Please review this at http://codereview.chromium.org/7464023/ SVN Base: http://v8.googlecode.com/svn/branches/3.2/ Affected files: M src/heap-inl.h M src/version.cc Index: src/heap-inl.h =================================================================== --- src/heap-inl.h (revision 8666) +++ src/heap-inl.h (working copy) @@ -367,11 +367,7 @@ int size_in_words = byte_size / kPointerSize; - if ((dst < src) || (dst >= (src + size_in_words))) { - ASSERT((dst >= (src + size_in_words)) || - ((OffsetFrom(reinterpret_cast<Address>(src)) - - OffsetFrom(reinterpret_cast<Address>(dst))) >= kPointerSize)); - + if ((dst < src) || (dst >= (src + byte_size))) { Object** src_slot = reinterpret_cast<Object**>(src); Object** dst_slot = reinterpret_cast<Object**>(dst); Object** end_slot = src_slot + size_in_words; @@ -389,8 +385,7 @@ Address src, int byte_size) { ASSERT(IsAligned(byte_size, kPointerSize)); - ASSERT((dst >= (src + byte_size)) || - ((OffsetFrom(src) - OffsetFrom(dst)) >= kPointerSize)); + ASSERT((dst < src) || (dst >= (src + byte_size))); CopyBlockToOldSpaceAndUpdateRegionMarks(dst, src, byte_size); } Index: src/version.cc =================================================================== --- src/version.cc (revision 8666) +++ src/version.cc (working copy) @@ -35,7 +35,7 @@ #define MAJOR_VERSION 3 #define MINOR_VERSION 2 #define BUILD_NUMBER 10 -#define PATCH_LEVEL 30 +#define PATCH_LEVEL 31 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) #define IS_CANDIDATE_VERSION 0 -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
