Mark pdfium::span<> as TRIVIAL_ABI and GSL_POINTER Unlike base::span<>, pdfium::span<> is based on UnownedPtr<>, and can benefit from being passed in registers despite having an actual destructor. Change-Id: I08bf1b342d246cb5f62eee5ff9722e5fb0471032 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/99231 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/third_party/base/span.h b/third_party/base/span.h index ec9f990..1c9c934 100644 --- a/third_party/base/span.h +++ b/third_party/base/span.h
@@ -15,6 +15,7 @@ #include "core/fxcrt/unowned_ptr.h" #include "third_party/base/check.h" +#include "third_party/base/compiler_specific.h" namespace pdfium { @@ -176,7 +177,7 @@ // [span], class template span template <typename T> -class span { +class TRIVIAL_ABI GSL_POINTER span { public: using value_type = typename std::remove_cv<T>::type; using pointer = T*;