diff options
author | Herb Derby <herb@google.com> | 2023-02-21 14:08:53 -0500 |
---|---|---|
committer | SkCQ <skcq-be@skia-corp.google.com.iam.gserviceaccount.com> | 2023-02-21 20:20:40 +0000 |
commit | 76b07ef2253efaedd84b10c713bc998592312018 (patch) | |
tree | 7a32bc997534a32f54e65f87815a7166014b7078 /src | |
parent | a18d44682d954e32c390eb33f0945e6be5395f54 (diff) | |
download | skia-76b07ef2253efaedd84b10c713bc998592312018.tar.gz |
Copy span into a SubRunAllocator
Change-Id: I8a7176a2fdc7ee4b2b89354aeb2da05dd69bc46d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/646819
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/text/gpu/SubRunAllocator.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/text/gpu/SubRunAllocator.h b/src/text/gpu/SubRunAllocator.h index 955bd59b84..5ce36736a1 100644 --- a/src/text/gpu/SubRunAllocator.h +++ b/src/text/gpu/SubRunAllocator.h @@ -255,6 +255,18 @@ public: return reinterpret_cast<T*>(fAlloc.template allocateBytesFor<T>(n)); } + template<typename T> + SkSpan<T> makePODSpan(SkSpan<const T> s) { + static_assert(HasNoDestructor<T>, "This is not POD. Use makeUniqueArray."); + if (s.empty()) { + return SkSpan<T>{}; + } + + T* result = this->makePODArray<T>(SkTo<int>(s.size())); + memcpy(result, s.data(), s.size_bytes()); + return {result, s.size()}; + } + template<typename T, typename Src, typename Map> SkSpan<T> makePODArray(const Src& src, Map map) { static_assert(HasNoDestructor<T>, "This is not POD. Use makeUniqueArray."); |