Reviewers: mvstanton,
Message:
Committed patchset #2 manually as r20853 (presubmit successful).
Description:
Initialize elements pointer in BuildCloneShallowArray when allocation
folding is
turned off for arrays with lenght larger than zero.
BUG=
[email protected]
Committed: https://code.google.com/p/v8/source/detail?r=20853
Please review this at https://codereview.chromium.org/240933003/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+9, -9 lines):
M src/hydrogen.cc
Index: src/hydrogen.cc
diff --git a/src/hydrogen.cc b/src/hydrogen.cc
index
4448d0206b53b232cd1b495ae0621c7f0dc30717..f3bd68f643937a1b858c65870fdc4bac4fe1c1d3
100644
--- a/src/hydrogen.cc
+++ b/src/hydrogen.cc
@@ -2620,16 +2620,16 @@ HValue*
HGraphBuilder::BuildCloneShallowArray(HValue* boilerplate,
object, Add<HConstant>(JSArray::kSize), allocation_site);
}
- // We have to initialize the elements pointer if allocation folding is
- // turned off.
- if (!FLAG_use_gvn || !FLAG_use_allocation_folding) {
- HConstant* empty_fixed_array = Add<HConstant>(
- isolate()->factory()->empty_fixed_array());
- Add<HStoreNamedField>(object, HObjectAccess::ForElementsPointer(),
- empty_fixed_array, INITIALIZING_STORE);
- }
-
if (length > 0) {
+ // We have to initialize the elements pointer if allocation folding is
+ // turned off.
+ if (!FLAG_use_gvn || !FLAG_use_allocation_folding) {
+ HConstant* empty_fixed_array = Add<HConstant>(
+ isolate()->factory()->empty_fixed_array());
+ Add<HStoreNamedField>(object, HObjectAccess::ForElementsPointer(),
+ empty_fixed_array, INITIALIZING_STORE);
+ }
+
HValue* boilerplate_elements = AddLoadElements(boilerplate);
HValue* object_elements;
if (IsFastDoubleElementsKind(kind)) {
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.