SkPath1DPathEffect::SkPath1DPathEffect(SkFlattenableReadBuffer& buffer) { fAdvance = buffer.readScalar(); if (fAdvance > 0) { buffer.readPath(&fPath); fInitialOffset = buffer.readScalar(); fStyle = (Style) buffer.readU8(); } else { SkDEBUGF(("SkPath1DPathEffect can't use advance <= 0\n")); // Make Coverity happy. fInitialOffset = 0; fStyle = kStyleCount; } }
SkPathHeap::SkPathHeap(SkFlattenableReadBuffer& buffer) : fHeap(kPathCount * sizeof(SkPath)) { const int count = buffer.readInt(); fPaths.setCount(count); SkPath** ptr = fPaths.begin(); SkPath* p = (SkPath*)fHeap.allocThrow(count * sizeof(SkPath)); for (int i = 0; i < count; i++) { new (p) SkPath; buffer.readPath(p); *ptr++ = p; // record the pointer p++; // move to the next storage location } }
SkPath2DPathEffect::SkPath2DPathEffect(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { buffer.readPath(&fPath); }