sk_sp<SkFlattenable> SkDashImpl::CreateProc(SkReadBuffer& buffer) { const SkScalar phase = buffer.readScalar(); uint32_t count = buffer.getArrayCount(); // Don't allocate gigantic buffers if there's not data for them. if (count > buffer.size() / sizeof(SkScalar)) { return nullptr; } SkAutoSTArray<32, SkScalar> intervals(count); if (buffer.readScalarArray(intervals.get(), count)) { return SkDashPathEffect::Make(intervals.get(), SkToInt(count), phase); } return nullptr; }