Reviewers: danno,

Description:
Merge r9153 into 3.5 branch. This fixes a possible crash in
FixedDoubleArray::Initialize().

BUG=95113

Please review this at http://codereview.chromium.org/7779048/

SVN Base: http://v8.googlecode.com/svn/branches/3.5/

Affected files:
  M     src/objects-inl.h
  M     src/version.cc
  A  +  test/mjsunit/regress/regress-95113.js


### BEGIN SVN COPY METADATA
#$ cp branches/bleeding_edge/test/mjsunit/regress/regress-95113.js test/mjsunit/regress/regress-95113.js
### END SVN COPY METADATA
Index: src/objects-inl.h
===================================================================
--- src/objects-inl.h   (revision 9148)
+++ src/objects-inl.h   (working copy)
@@ -1749,9 +1749,15 @@
 void FixedDoubleArray::Initialize(FixedDoubleArray* from) {
   int old_length = from->length();
   ASSERT(old_length < length());
-  OS::MemCopy(FIELD_ADDR(this, kHeaderSize),
-              FIELD_ADDR(from, kHeaderSize),
-              old_length * kDoubleSize);
+  if (old_length * kDoubleSize >= OS::kMinComplexMemCopy) {
+    OS::MemCopy(FIELD_ADDR(this, kHeaderSize),
+                FIELD_ADDR(from, kHeaderSize),
+                old_length * kDoubleSize);
+  } else {
+    for (int i = 0; i < old_length; ++i) {
+      set(i, from->get_scalar(i));
+    }
+  }
   int offset = kHeaderSize + old_length * kDoubleSize;
   for (int current = from->length(); current < length(); ++current) {
     WRITE_DOUBLE_FIELD(this, offset, hole_nan_as_double());
Index: src/version.cc
===================================================================
--- src/version.cc      (revision 9148)
+++ src/version.cc      (working copy)
@@ -35,7 +35,7 @@
 #define MAJOR_VERSION     3
 #define MINOR_VERSION     5
 #define BUILD_NUMBER      10
-#define PATCH_LEVEL       3
+#define PATCH_LEVEL       4
 // Use 1 for candidates and 0 otherwise.
 // (Boolean macro values are not supported by all preprocessors.)
 #define IS_CANDIDATE_VERSION 0
Index: test/mjsunit/regress/regress-95113.js


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to