Merge pull request #1122 from svart-riddare/issue-1108

Suggestion for issue #1108
This commit is contained in:
Milo Yip 2018-01-26 10:59:11 +08:00 committed by GitHub
commit 7641af690e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 3 deletions

View File

@ -165,7 +165,12 @@ public:
GenericPointer(const Token* tokens, size_t tokenCount) : allocator_(), ownAllocator_(), nameBuffer_(), tokens_(const_cast<Token*>(tokens)), tokenCount_(tokenCount), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) {} GenericPointer(const Token* tokens, size_t tokenCount) : allocator_(), ownAllocator_(), nameBuffer_(), tokens_(const_cast<Token*>(tokens)), tokenCount_(tokenCount), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) {}
//! Copy constructor. //! Copy constructor.
GenericPointer(const GenericPointer& rhs, Allocator* allocator = 0) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) { GenericPointer(const GenericPointer& rhs) : allocator_(rhs.allocator_), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) {
*this = rhs;
}
//! Copy constructor.
GenericPointer(const GenericPointer& rhs, Allocator* allocator) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) {
*this = rhs; *this = rhs;
} }

View File

@ -462,7 +462,8 @@ TEST(Pointer, ConstructorWithToken) {
TEST(Pointer, CopyConstructor) { TEST(Pointer, CopyConstructor) {
{ {
Pointer p("/foo/0"); CrtAllocator allocator;
Pointer p("/foo/0", &allocator);
Pointer q(p); Pointer q(p);
EXPECT_TRUE(q.IsValid()); EXPECT_TRUE(q.IsValid());
EXPECT_EQ(2u, q.GetTokenCount()); EXPECT_EQ(2u, q.GetTokenCount());
@ -471,6 +472,7 @@ TEST(Pointer, CopyConstructor) {
EXPECT_EQ(1u, q.GetTokens()[1].length); EXPECT_EQ(1u, q.GetTokens()[1].length);
EXPECT_STREQ("0", q.GetTokens()[1].name); EXPECT_STREQ("0", q.GetTokens()[1].name);
EXPECT_EQ(0u, q.GetTokens()[1].index); EXPECT_EQ(0u, q.GetTokens()[1].index);
EXPECT_EQ(&p.GetAllocator(), &q.GetAllocator());
} }
// Static tokens // Static tokens
@ -489,7 +491,8 @@ TEST(Pointer, CopyConstructor) {
TEST(Pointer, Assignment) { TEST(Pointer, Assignment) {
{ {
Pointer p("/foo/0"); CrtAllocator allocator;
Pointer p("/foo/0", &allocator);
Pointer q; Pointer q;
q = p; q = p;
EXPECT_TRUE(q.IsValid()); EXPECT_TRUE(q.IsValid());
@ -499,6 +502,7 @@ TEST(Pointer, Assignment) {
EXPECT_EQ(1u, q.GetTokens()[1].length); EXPECT_EQ(1u, q.GetTokens()[1].length);
EXPECT_STREQ("0", q.GetTokens()[1].name); EXPECT_STREQ("0", q.GetTokens()[1].name);
EXPECT_EQ(0u, q.GetTokens()[1].index); EXPECT_EQ(0u, q.GetTokens()[1].index);
EXPECT_NE(&p.GetAllocator(), &q.GetAllocator());
q = q; q = q;
EXPECT_TRUE(q.IsValid()); EXPECT_TRUE(q.IsValid());
EXPECT_EQ(2u, q.GetTokenCount()); EXPECT_EQ(2u, q.GetTokenCount());
@ -507,6 +511,7 @@ TEST(Pointer, Assignment) {
EXPECT_EQ(1u, q.GetTokens()[1].length); EXPECT_EQ(1u, q.GetTokens()[1].length);
EXPECT_STREQ("0", q.GetTokens()[1].name); EXPECT_STREQ("0", q.GetTokens()[1].name);
EXPECT_EQ(0u, q.GetTokens()[1].index); EXPECT_EQ(0u, q.GetTokens()[1].index);
EXPECT_NE(&p.GetAllocator(), &q.GetAllocator());
} }
// Static tokens // Static tokens