Reviewers: Søren Gjesse,

Description:
Fix AddBlock invocations in CpuProfilesCollection.

It was a bad idea not to check the count of numbers to add.

Also fix a rollover: the comment in platform-linux.

Please review this at http://codereview.chromium.org/2418001/show

Affected files:
  M src/platform-linux.cc
  M src/profile-generator.cc


Index: src/platform-linux.cc
diff --git a/src/platform-linux.cc b/src/platform-linux.cc
index ff1ecb13ce8c55e32f28fceca6a510022456a417..7e8a5586f80e45b8529e77e8bcff7ab8a38aeae9 100644
--- a/src/platform-linux.cc
+++ b/src/platform-linux.cc
@@ -177,7 +177,8 @@ LinuxKernelMemoryBarrierFunc pLinuxKernelMemoryBarrier __attribute__((weak)) =
 #endif

 void OS::ReleaseStore(volatile AtomicWord* ptr, AtomicWord value) {
-#if defined(V8_TARGET_ARCH_ARM) && defined(__arm__) // don't use on a simulator
+#if defined(V8_TARGET_ARCH_ARM) && defined(__arm__)
+  // Only use on ARM hardware.
   pLinuxKernelMemoryBarrier();
 #else
   __asm__ __volatile__("" : : : "memory");
Index: src/profile-generator.cc
diff --git a/src/profile-generator.cc b/src/profile-generator.cc
index ad8867ced1c0b8646de9d13bb839585f92fff94d..105c1a8435c3fbf4280b09ed2144318ee50f215e 100644
--- a/src/profile-generator.cc
+++ b/src/profile-generator.cc
@@ -572,7 +572,8 @@ int CpuProfilesCollection::TokenToIndex(int security_token_id) {
 List<CpuProfile*>* CpuProfilesCollection::GetProfilesList(
     int security_token_id) {
   const int index = TokenToIndex(security_token_id);
- profiles_by_token_.AddBlock(NULL, profiles_by_token_.length() - index + 1);
+  const int lists_to_add = index - profiles_by_token_.length() + 1;
+  if (lists_to_add > 0) profiles_by_token_.AddBlock(NULL, lists_to_add);
   List<CpuProfile*>* unabridged_list =
       profiles_by_token_[TokenToIndex(CodeEntry::kNoSecurityToken)];
   const int current_count = unabridged_list->length();
@@ -580,7 +581,8 @@ List<CpuProfile*>* CpuProfilesCollection::GetProfilesList(
     profiles_by_token_[index] = new List<CpuProfile*>(current_count);
   }
   List<CpuProfile*>* list = profiles_by_token_[index];
-  list->AddBlock(NULL, current_count - list->length());
+  const int profiles_to_add = current_count - list->length();
+  if (profiles_to_add > 0) list->AddBlock(NULL, profiles_to_add);
   return list;
 }



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

Reply via email to