aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHerb Derby <herb@google.com>2023-02-21 14:08:53 -0500
committerSkCQ <skcq-be@skia-corp.google.com.iam.gserviceaccount.com>2023-02-21 20:20:40 +0000
commit76b07ef2253efaedd84b10c713bc998592312018 (patch)
tree7a32bc997534a32f54e65f87815a7166014b7078 /src
parenta18d44682d954e32c390eb33f0945e6be5395f54 (diff)
downloadskia-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.h12
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.");