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:
@@ -222,7 +222,7 @@ class scoped_refptr {
|
||||
swap(&r.ptr_);
|
||||
}
|
||||
|
||||
private:
|
||||
protected:
|
||||
T* ptr_;
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário