Changing access to scoped_refptr member variables from private to protected.

This is required to be able to extend the functionality of the class where existing public functionality does not offer sufficient access.

Review URL: http://codereview.chromium.org/17464

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7851 0039d316-1c4b-4281-b951-d872f2087c98
Esse commit está contido em:
tommi@chromium.org
2009-01-10 00:53:13 +00:00
commit 6b86b32550
2 arquivos alterados com 17 adições e 1 exclusões
+1 -1
Ver Arquivo
@@ -222,7 +222,7 @@ class scoped_refptr {
swap(&r.ptr_);
}
private:
protected:
T* ptr_;
};
+16
Ver Arquivo
@@ -5,9 +5,22 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "base/ref_counted.h"
namespace {
class SelfAssign : public base::RefCounted<SelfAssign> {
};
class CheckDerivedMemberAccess : public scoped_refptr<SelfAssign> {
public:
CheckDerivedMemberAccess() {
// This shouldn't compile if we don't have access to the member variable.
SelfAssign** pptr = &ptr_;
EXPECT_EQ(*pptr, ptr_);
}
};
} // end namespace
TEST(RefCountedUnitTest, TestSelfAssignment) {
SelfAssign* p = new SelfAssign;
scoped_refptr<SelfAssign> var = p;
@@ -15,3 +28,6 @@ TEST(RefCountedUnitTest, TestSelfAssignment) {
EXPECT_EQ(var.get(), p);
}
TEST(RefCountedUnitTest, ScopedRefPtrMemberAccess) {
CheckDerivedMemberAccess check;
}