CHECK_EQ(11, error_location.end_pos);
// Should not crash.
const char* message = pre_impl->BuildMessage();
- pre_impl->BuildArgs();
+ i::Vector<const char*> args = pre_impl->BuildArgs();
CHECK_GT(strlen(message), 0);
+ args.Dispose();
+ i::DeleteArray(message);
+ delete error_preparse;
}
int kSuffixByteLen = i::StrLength(source_data[i].outer_suffix);
int kProgramSize = kPrefixLen + kInnerLen + kSuffixLen;
int kProgramByteSize = kPrefixByteLen + kInnerByteLen + kSuffixByteLen;
- i::Vector<char> program = i::Vector<char>::New(kProgramByteSize + 1);
+ i::ScopedVector<char> program(kProgramByteSize + 1);
i::OS::SNPrintF(program, "%s%s%s",
source_data[i].outer_prefix,
source_data[i].inner_source,
TEST(ProfileNodeFindOrAddChild) {
ProfileTree tree;
- ProfileNode node(&tree, NULL);
+ ProfileNode* node = tree.root();
CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
- ProfileNode* childNode1 = node.FindOrAddChild(&entry1);
+ ProfileNode* childNode1 = node->FindOrAddChild(&entry1);
CHECK_NE(NULL, childNode1);
- CHECK_EQ(childNode1, node.FindOrAddChild(&entry1));
+ CHECK_EQ(childNode1, node->FindOrAddChild(&entry1));
CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
- ProfileNode* childNode2 = node.FindOrAddChild(&entry2);
+ ProfileNode* childNode2 = node->FindOrAddChild(&entry2);
CHECK_NE(NULL, childNode2);
CHECK_NE(childNode1, childNode2);
- CHECK_EQ(childNode1, node.FindOrAddChild(&entry1));
- CHECK_EQ(childNode2, node.FindOrAddChild(&entry2));
+ CHECK_EQ(childNode1, node->FindOrAddChild(&entry1));
+ CHECK_EQ(childNode2, node->FindOrAddChild(&entry2));
CodeEntry entry3(i::Logger::FUNCTION_TAG, "ccc");
- ProfileNode* childNode3 = node.FindOrAddChild(&entry3);
+ ProfileNode* childNode3 = node->FindOrAddChild(&entry3);
CHECK_NE(NULL, childNode3);
CHECK_NE(childNode1, childNode3);
CHECK_NE(childNode2, childNode3);
- CHECK_EQ(childNode1, node.FindOrAddChild(&entry1));
- CHECK_EQ(childNode2, node.FindOrAddChild(&entry2));
- CHECK_EQ(childNode3, node.FindOrAddChild(&entry3));
+ CHECK_EQ(childNode1, node->FindOrAddChild(&entry1));
+ CHECK_EQ(childNode2, node->FindOrAddChild(&entry2));
+ CHECK_EQ(childNode3, node->FindOrAddChild(&entry3));
}
TEST(ProfileNodeFindOrAddChildForSameFunction) {
const char* aaa = "aaa";
ProfileTree tree;
- ProfileNode node(&tree, NULL);
+ ProfileNode* node = tree.root();
CodeEntry entry1(i::Logger::FUNCTION_TAG, aaa);
- ProfileNode* childNode1 = node.FindOrAddChild(&entry1);
+ ProfileNode* childNode1 = node->FindOrAddChild(&entry1);
CHECK_NE(NULL, childNode1);
- CHECK_EQ(childNode1, node.FindOrAddChild(&entry1));
+ CHECK_EQ(childNode1, node->FindOrAddChild(&entry1));
// The same function again.
CodeEntry entry2(i::Logger::FUNCTION_TAG, aaa);
- CHECK_EQ(childNode1, node.FindOrAddChild(&entry2));
+ CHECK_EQ(childNode1, node->FindOrAddChild(&entry2));
// Now with a different security token.
CodeEntry entry3(i::Logger::FUNCTION_TAG, aaa);
- CHECK_EQ(childNode1, node.FindOrAddChild(&entry3));
+ CHECK_EQ(childNode1, node->FindOrAddChild(&entry3));
}
const int kNThreads = 100;
i::List<ThreadIdValidationThread*> threads(kNThreads);
i::List<i::ThreadId> refs(kNThreads);
- i::Semaphore* semaphore = new i::Semaphore(0);
+ i::Semaphore semaphore(0);
ThreadIdValidationThread* prev = NULL;
for (int i = kNThreads - 1; i >= 0; i--) {
ThreadIdValidationThread* newThread =
- new ThreadIdValidationThread(prev, &refs, i, semaphore);
+ new ThreadIdValidationThread(prev, &refs, i, &semaphore);
threads.Add(newThread);
prev = newThread;
refs.Add(i::ThreadId::Invalid());
}
prev->Start();
for (int i = 0; i < kNThreads; i++) {
- semaphore->Wait();
+ semaphore.Wait();
}
for (int i = 0; i < kNThreads; i++) {
delete threads[i];