Revision: 23401
Author: [email protected]
Date: Tue Aug 26 13:07:18 2014 UTC
Log: Fix and re-enable test-api/InitializeAndDispose.
[email protected]
TEST=cctest/test-api/InitializeAndDispose
Review URL: https://codereview.chromium.org/504093002
https://code.google.com/p/v8/source/detail?r=23401
Modified:
/branches/bleeding_edge/src/api.cc
/branches/bleeding_edge/src/assembler.cc
/branches/bleeding_edge/src/bootstrapper.cc
/branches/bleeding_edge/src/compiler/instruction.cc
/branches/bleeding_edge/src/elements.cc
/branches/bleeding_edge/src/isolate.cc
/branches/bleeding_edge/src/lithium.cc
/branches/bleeding_edge/src/sampler.cc
/branches/bleeding_edge/src/v8.cc
/branches/bleeding_edge/test/cctest/cctest.status
/branches/bleeding_edge/test/cctest/test-api.cc
=======================================
--- /branches/bleeding_edge/src/api.cc Tue Aug 26 09:19:24 2014 UTC
+++ /branches/bleeding_edge/src/api.cc Tue Aug 26 13:07:18 2014 UTC
@@ -413,6 +413,7 @@
delete re;
re = next;
}
+ first_extension_ = NULL;
}
=======================================
--- /branches/bleeding_edge/src/assembler.cc Fri Aug 22 11:43:39 2014 UTC
+++ /branches/bleeding_edge/src/assembler.cc Tue Aug 26 13:07:18 2014 UTC
@@ -937,8 +937,11 @@
void ExternalReference::TearDownMathExpData() {
delete[] math_exp_constants_array;
+ math_exp_constants_array = NULL;
delete[] math_exp_log_table_array;
+ math_exp_log_table_array = NULL;
delete math_exp_data_mutex;
+ math_exp_data_mutex = NULL;
}
=======================================
--- /branches/bleeding_edge/src/bootstrapper.cc Tue Aug 26 09:19:24 2014 UTC
+++ /branches/bleeding_edge/src/bootstrapper.cc Tue Aug 26 13:07:18 2014 UTC
@@ -99,10 +99,15 @@
void Bootstrapper::TearDownExtensions() {
delete free_buffer_extension_;
+ free_buffer_extension_ = NULL;
delete gc_extension_;
+ gc_extension_ = NULL;
delete externalize_string_extension_;
+ externalize_string_extension_ = NULL;
delete statistics_extension_;
+ statistics_extension_ = NULL;
delete trigger_failure_extension_;
+ trigger_failure_extension_ = NULL;
}
=======================================
--- /branches/bleeding_edge/src/compiler/instruction.cc Wed Aug 6 11:49:02
2014 UTC
+++ /branches/bleeding_edge/src/compiler/instruction.cc Tue Aug 26 13:07:18
2014 UTC
@@ -75,6 +75,7 @@
template <InstructionOperand::Kind kOperandKind, int kNumCachedOperands>
void SubKindOperand<kOperandKind, kNumCachedOperands>::TearDownCache() {
delete[] cache;
+ cache = NULL;
}
=======================================
--- /branches/bleeding_edge/src/elements.cc Thu Aug 21 09:34:47 2014 UTC
+++ /branches/bleeding_edge/src/elements.cc Tue Aug 26 13:07:18 2014 UTC
@@ -120,7 +120,7 @@
#undef ELEMENTS_TRAITS
-ElementsAccessor** ElementsAccessor::elements_accessors_;
+ElementsAccessor** ElementsAccessor::elements_accessors_ = NULL;
static bool HasKey(Handle<FixedArray> array, Handle<Object> key_handle) {
@@ -1735,6 +1735,7 @@
void ElementsAccessor::TearDown() {
+ if (elements_accessors_ == NULL) return;
#define ACCESSOR_DELETE(Class, Kind, Store) delete
elements_accessors_[Kind];
ELEMENTS_LIST(ACCESSOR_DELETE)
#undef ACCESSOR_DELETE
=======================================
--- /branches/bleeding_edge/src/isolate.cc Tue Aug 26 09:19:24 2014 UTC
+++ /branches/bleeding_edge/src/isolate.cc Tue Aug 26 13:07:18 2014 UTC
@@ -1592,6 +1592,7 @@
void Isolate::GlobalTearDown() {
delete thread_data_table_;
+ thread_data_table_ = NULL;
}
=======================================
--- /branches/bleeding_edge/src/lithium.cc Wed Aug 6 17:48:31 2014 UTC
+++ /branches/bleeding_edge/src/lithium.cc Tue Aug 26 13:07:18 2014 UTC
@@ -145,6 +145,7 @@
template<LOperand::Kind kOperandKind, int kNumCachedOperands>
void LSubKindOperand<kOperandKind, kNumCachedOperands>::TearDownCache() {
delete[] cache;
+ cache = NULL;
}
=======================================
--- /branches/bleeding_edge/src/sampler.cc Mon Aug 4 11:34:54 2014 UTC
+++ /branches/bleeding_edge/src/sampler.cc Tue Aug 26 13:07:18 2014 UTC
@@ -276,7 +276,7 @@
class SignalHandler : public AllStatic {
public:
static void SetUp() { if (!mutex_) mutex_ = new base::Mutex(); }
- static void TearDown() { delete mutex_; }
+ static void TearDown() { delete mutex_; mutex_ = NULL; }
static void IncreaseSamplerCount() {
base::LockGuard<base::Mutex> lock_guard(mutex_);
=======================================
--- /branches/bleeding_edge/src/v8.cc Tue Aug 26 11:00:57 2014 UTC
+++ /branches/bleeding_edge/src/v8.cc Tue Aug 26 13:07:18 2014 UTC
@@ -52,7 +52,6 @@
ExternalReference::TearDownMathExpData();
RegisteredExtension::UnregisterAll();
Isolate::GlobalTearDown();
-
Sampler::TearDown();
FlagList::ResetAllFlags(); // Frees memory held by string arguments.
}
=======================================
--- /branches/bleeding_edge/test/cctest/cctest.status Mon Aug 25 16:39:25
2014 UTC
+++ /branches/bleeding_edge/test/cctest/cctest.status Tue Aug 26 13:07:18
2014 UTC
@@ -35,10 +35,6 @@
# BUG(382): Weird test. Can't guarantee that it never times out.
'test-api/ApplyInterruption': [PASS, TIMEOUT],
- # TODO(mstarzinger): Fail gracefully on multiple V8::Dispose calls.
- 'test-api/InitializeAndDisposeOnce': [SKIP],
- 'test-api/InitializeAndDisposeMultiple': [SKIP],
-
# These tests always fail. They are here to test test.py. If
# they don't fail then test.py has failed.
'test-serialize/TestThatAlwaysFails': [FAIL],
=======================================
--- /branches/bleeding_edge/test/cctest/test-api.cc Tue Aug 26 09:19:24
2014 UTC
+++ /branches/bleeding_edge/test/cctest/test-api.cc Tue Aug 26 13:07:18
2014 UTC
@@ -130,19 +130,18 @@
// Tests that call v8::V8::Dispose() cannot be threaded.
-TEST(InitializeAndDisposeOnce) {
+UNINITIALIZED_TEST(InitializeAndDisposeOnce) {
CHECK(v8::V8::Initialize());
CHECK(v8::V8::Dispose());
}
// Tests that call v8::V8::Dispose() cannot be threaded.
-TEST(InitializeAndDisposeMultiple) {
+UNINITIALIZED_TEST(InitializeAndDisposeMultiple) {
for (int i = 0; i < 3; ++i) CHECK(v8::V8::Dispose());
for (int i = 0; i < 3; ++i) CHECK(v8::V8::Initialize());
for (int i = 0; i < 3; ++i) CHECK(v8::V8::Dispose());
- // TODO(mstarzinger): This should fail gracefully instead of asserting.
- // for (int i = 0; i < 3; ++i) CHECK(v8::V8::Initialize());
+ for (int i = 0; i < 3; ++i) CHECK(v8::V8::Initialize());
for (int i = 0; i < 3; ++i) CHECK(v8::V8::Dispose());
}
--
--
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.