From 2a971620d636baff4fe263fe19d20af3670ca284 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Mon, 9 Jan 2023 19:22:33 -0600 Subject: [PATCH] Inline usage of SkIsPow2 (flutter/engine#38722) * Inline usage of SkIsPow2 * static --- engine/src/flutter/display_list/display_list_builder.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/engine/src/flutter/display_list/display_list_builder.cc b/engine/src/flutter/display_list/display_list_builder.cc index b5b1c0e2b9e..b091e6d2b49 100644 --- a/engine/src/flutter/display_list/display_list_builder.cc +++ b/engine/src/flutter/display_list/display_list_builder.cc @@ -26,12 +26,16 @@ static void CopyV(void* dst, const S* src, int n, Rest&&... rest) { CopyV(SkTAddOffset(dst, n * sizeof(S)), std::forward(rest)...); } +static constexpr inline bool is_power_of_two(int value) { + return (value & (value - 1)) == 0; +} + template void* DisplayListBuilder::Push(size_t pod, int render_op_inc, Args&&... args) { size_t size = SkAlignPtr(sizeof(T) + pod); FML_DCHECK(size < (1 << 24)); if (used_ + size > allocated_) { - static_assert(SkIsPow2(DL_BUILDER_PAGE), + static_assert(is_power_of_two(DL_BUILDER_PAGE), "This math needs updating for non-pow2."); // Next greater multiple of DL_BUILDER_PAGE. allocated_ = (used_ + size + DL_BUILDER_PAGE) & ~(DL_BUILDER_PAGE - 1);