Home | History | Annotate | Download | only in core

Lines Matching refs:fRec

242     if (fRec != &gEmptyRec) {
243 SkASSERT(fRec->fLength > 0);
244 SkASSERT(fRec->fRefCnt > 0);
245 SkASSERT(0 == fRec->data()[fRec->fLength]);
253 SkString::SkString() : fRec(const_cast<Rec*>(&gEmptyRec)) {
255 fStr = fRec->data();
260 fRec = AllocRec(NULL, len);
262 fStr = fRec->data();
269 fRec = AllocRec(text, len);
271 fStr = fRec->data();
276 fRec = AllocRec(text, len);
278 fStr = fRec->data();
285 fRec = RefRec(src.fRec);
287 fStr = fRec->data();
294 if (fRec->fLength) {
295 SkASSERT(fRec->fRefCnt > 0);
296 if (sk_atomic_dec(&fRec->fRefCnt) == 1) {
297 sk_free(fRec);
303 return fRec == src.fRec || this->equals(src.c_str(), src.size());
313 return fRec->fLength == len && !memcmp(fRec->data(), text, len);
319 if (fRec != src.fRec) {
338 if (fRec->fLength) {
339 SkASSERT(fRec->fRefCnt > 0);
340 if (sk_atomic_dec(&fRec->fRefCnt) == 1) {
341 sk_free(fRec);
345 fRec = const_cast<Rec*>(&gEmptyRec);
347 fStr = fRec->data();
354 if (fRec->fLength) {
355 if (fRec->fRefCnt > 1) {
356 Rec* rec = AllocRec(fRec->data(), fRec->fLength);
357 if (sk_atomic_dec(&fRec->fRefCnt) == 1) {
360 // data (fRec and rec), so we need to delete one of them.
361 sk_free(fRec);
363 fRec = rec;
365 fStr = fRec->data();
369 return fRec->data();
381 } else if (1 == fRec->fRefCnt && len <= fRec->fLength) {
389 fRec->fLength = SkToU32(len);
390 } else if (1 == fRec->fRefCnt && (fRec->fLength >> 2) == (len >> 2)) {
397 fRec->fLength = SkToU32(len);
418 } else if (count <= fRec->fLength) {
420 if (count < fRec->fLength) {
445 size_t length = fRec->fLength;
466 if (1 == fRec->fRefCnt && (length >> 2) == ((length + len) >> 2)) {
475 fRec->fLength = SkToU32(length + len);
480 SkString tmp(fRec->fLength + len);
484 memcpy(dst, fRec->data(), offset);
487 if (offset < fRec->fLength) {
488 memcpy(dst + offset + len, fRec->data() + offset,
489 fRec->fLength - offset);
621 SkTSwap<Rec*>(fRec, other.fRec);