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

Reply via email to