Remove method calls on invalid "this" pointer.

https://codereview.appspot.com/7198050/


git-svn-id: http://skia.googlecode.com/svn/trunk@7366 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
bungeman@google.com 2013-01-24 16:38:23 +00:00
parent e2bfd8b7b1
commit b77b69f89f
2 changed files with 4 additions and 12 deletions

View File

@ -89,7 +89,7 @@ SkRegion::~SkRegion() {
}
void SkRegion::freeRuns() {
if (fRunHead->isComplex()) {
if (this->isComplex()) {
SkASSERT(fRunHead->fRefCnt >= 1);
if (sk_atomic_dec(&fRunHead->fRefCnt) == 1) {
//SkASSERT(gRgnAllocCounter > 0);
@ -152,7 +152,7 @@ bool SkRegion::setRegion(const SkRegion& src) {
fBounds = src.fBounds;
fRunHead = src.fRunHead;
if (fRunHead->isComplex()) {
if (this->isComplex()) {
sk_atomic_inc(&fRunHead->fRefCnt);
}
}
@ -277,7 +277,7 @@ bool SkRegion::setRuns(RunType runs[], int count) {
// if we get here, we need to become a complex region
if (!fRunHead->isComplex() || fRunHead->fRunCount != count) {
if (!this->isComplex() || fRunHead->fRunCount != count) {
this->freeRuns();
this->allocateRuns(count);
}
@ -518,7 +518,7 @@ bool SkRegion::operator==(const SkRegion& b) const {
return true;
}
// now we insist that both are complex (but different ptrs)
if (!ah->isComplex() || !bh->isComplex()) {
if (!this->isComplex() || !b.isComplex()) {
return false;
}
return ah->fRunCount == bh->fRunCount &&

View File

@ -84,24 +84,16 @@ public:
return head;
}
bool isComplex() const {
return this != SkRegion_gEmptyRunHeadPtr && this != SkRegion_gRectRunHeadPtr;
}
SkRegion::RunType* writable_runs() {
SkASSERT(this->isComplex());
SkASSERT(fRefCnt == 1);
return (SkRegion::RunType*)(this + 1);
}
const SkRegion::RunType* readonly_runs() const {
SkASSERT(this->isComplex());
return (const SkRegion::RunType*)(this + 1);
}
RunHead* ensureWritable() {
SkASSERT(this->isComplex());
RunHead* writable = this;
if (fRefCnt > 1) {
// We need to alloc & copy the current region before we call