summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkosak@google.com <kosak@google.com@861a406c-534a-0410-8894-cb66d6ee9925>2015-07-14 22:44:39 +0000
committerkosak@google.com <kosak@google.com@861a406c-534a-0410-8894-cb66d6ee9925>2015-07-14 22:44:39 +0000
commitf3aba5a9f6b3e975740de5a117935243cb18671c (patch)
treec248402689dcf4ec01c363b362f96b0e67013ad2
parenteb80d05869807682f8f59b8f3251384a39adf16a (diff)
downloadgoogletest-f3aba5a9f6b3e975740de5a117935243cb18671c.tar.gz
Move the selection of the flag saver implementation into gtest-port.h and
custom/gtest-port.h. git-svn-id: http://googletest.googlecode.com/svn/trunk@723 861a406c-534a-0410-8894-cb66d6ee9925
-rw-r--r--include/gtest/gtest.h3
-rw-r--r--include/gtest/internal/gtest-port.h2
-rw-r--r--src/gtest.cc9
3 files changed, 8 insertions, 6 deletions
diff --git a/include/gtest/gtest.h b/include/gtest/gtest.h
index 71d552e..919df65 100644
--- a/include/gtest/gtest.h
+++ b/include/gtest/gtest.h
@@ -452,8 +452,7 @@ class GTEST_API_ Test {
// internal method to avoid clashing with names used in user TESTs.
void DeleteSelf_() { delete this; }
- // Uses a GTestFlagSaver to save and restore all Google Test flags.
- const internal::GTestFlagSaver* const gtest_flag_saver_;
+ const internal::scoped_ptr< GTEST_FLAG_SAVER_ > gtest_flag_saver_;
// Often a user misspells SetUp() as Setup() and spends a long time
// wondering why it is never called by Google Test. The declaration of
diff --git a/include/gtest/internal/gtest-port.h b/include/gtest/internal/gtest-port.h
index 83fa75d..b3830c5 100644
--- a/include/gtest/internal/gtest-port.h
+++ b/include/gtest/internal/gtest-port.h
@@ -2418,6 +2418,8 @@ typedef TypeWithSize<8>::Int TimeInMillis; // Represents time in milliseconds.
#endif // !defined(GTEST_FLAG)
#if !defined(GTEST_DECLARE_bool_)
+# define GTEST_FLAG_SAVER_ ::testing::internal::GTestFlagSaver
+
// Macros for declaring flags.
# define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name)
# define GTEST_DECLARE_int32_(name) \
diff --git a/src/gtest.cc b/src/gtest.cc
index 6dea6c6..bb00879 100644
--- a/src/gtest.cc
+++ b/src/gtest.cc
@@ -2179,14 +2179,15 @@ int TestResult::test_property_count() const {
// Creates a Test object.
-// The c'tor saves the values of all Google Test flags.
+// The c'tor saves the states of all flags.
Test::Test()
- : gtest_flag_saver_(new internal::GTestFlagSaver) {
+ : gtest_flag_saver_(new GTEST_FLAG_SAVER_) {
}
-// The d'tor restores the values of all Google Test flags.
+// The d'tor restores the states of all flags. The actual work is
+// done by the d'tor of the gtest_flag_saver_ field, and thus not
+// visible here.
Test::~Test() {
- delete gtest_flag_saver_;
}
// Sets up the test fixture.