Fix bug in NodeCache::GetCachedNodes
authortitzer@chromium.org <titzer@chromium.org>
Wed, 15 Oct 2014 13:07:18 +0000 (13:07 +0000)
committertitzer@chromium.org <titzer@chromium.org>
Wed, 15 Oct 2014 13:07:18 +0000 (13:07 +0000)
TBR=dcarney@chromium.org
BUG=

Review URL: https://codereview.chromium.org/656033003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/compiler/node-cache.cc
test/cctest/compiler/test-js-constant-cache.cc

index 2049de5..35d03ce 100644 (file)
@@ -94,7 +94,7 @@ Node** NodeCache<Key, Hash, Pred>::Find(Zone* zone, Key key) {
 template <typename Key, typename Hash, typename Pred>
 void NodeCache<Key, Hash, Pred>::GetCachedNodes(NodeVector* nodes) {
   if (entries_) {
-    for (size_t i = 0; i < size_; i++) {
+    for (size_t i = 0; i < size_ + kLinearProbe; i++) {
       if (entries_[i].value_ != NULL) nodes->push_back(entries_[i].value_);
     }
   }
index 07301af..2a591c1 100644 (file)
@@ -329,8 +329,10 @@ TEST(JSGraph_GetCachedNodes1) {
 TEST(JSGraph_GetCachedNodes_int32) {
   JSConstantCacheTester T;
 
-  int32_t constants[] = {0, 11, 12, 13, 14, 55, -55, -44, -33, -22, -11,
-                         0, 11, 11, 12, 12, 11, 11,  -33, -33, -22, -11};
+  int32_t constants[] = {0,  1,  1,   1,   1,   2,   3,   4,  11, 12, 13,
+                         14, 55, -55, -44, -33, -22, -11, 16, 16, 17, 17,
+                         18, 18, 19,  19,  20,  20,  21,  21, 22, 23, 24,
+                         25, 15, 30,  31,  45,  46,  47,  48};
 
   for (size_t i = 0; i < arraysize(constants); i++) {
     int count_before = T.graph()->NodeCount();
@@ -372,8 +374,9 @@ TEST(JSGraph_GetCachedNodes_float64) {
 TEST(JSGraph_GetCachedNodes_int64) {
   JSConstantCacheTester T;
 
-  int32_t constants[] = {0, 11, 12, 13, 14, 55, -55, -44, -33, -22, -11,
-                         0, 11, 11, 12, 12, 11, 11,  -33, -33, -22, -11};
+  int32_t constants[] = {0,   11,  12, 13, 14, 55, -55, -44, -33,
+                         -22, -11, 16, 16, 17, 17, 18,  18,  19,
+                         19,  20,  20, 21, 21, 22, 23,  24,  25};
 
   for (size_t i = 0; i < arraysize(constants); i++) {
     int count_before = T.graph()->NodeCount();