}
void SkRegion::freeRuns() {
- if (fRunHead->isComplex()) {
+ if (this->isComplex()) {
SkASSERT(fRunHead->fRefCnt >= 1);
if (sk_atomic_dec(&fRunHead->fRefCnt) == 1) {
//SkASSERT(gRgnAllocCounter > 0);
fBounds = src.fBounds;
fRunHead = src.fRunHead;
- if (fRunHead->isComplex()) {
+ if (this->isComplex()) {
sk_atomic_inc(&fRunHead->fRefCnt);
}
}
// 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);
}
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 &&
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