57 lines
1.4 KiB
Diff
57 lines
1.4 KiB
Diff
From d1ea2ffa600fd2a7b14e415b68ceedba3325c5db Mon Sep 17 00:00:00 2001
|
|
From: Tim Allen <screwtape@froup.com>
|
|
Date: Sat, 12 Feb 2022 21:35:33 +1100
|
|
Subject: [PATCH] Make Color::validate_alpha() a constexpr function.
|
|
|
|
We call it from a constexpr constructor, so it needs to be constexpr itself.
|
|
|
|
Fixes #4544.
|
|
---
|
|
src/color.cc | 7 -------
|
|
src/color.hh | 7 ++++++-
|
|
2 files changed, 6 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/src/color.cc b/src/color.cc
|
|
index b355b9cf13..dfe2e955b2 100644
|
|
--- a/src/color.cc
|
|
+++ b/src/color.cc
|
|
@@ -34,13 +34,6 @@ bool is_color_name(StringView color)
|
|
return contains(color_names, color);
|
|
}
|
|
|
|
-void Color::validate_alpha()
|
|
-{
|
|
- static_assert(RGB == 17);
|
|
- if (a < RGB)
|
|
- throw runtime_error("Colors alpha must be > 16");
|
|
-}
|
|
-
|
|
Color str_to_color(StringView color)
|
|
{
|
|
auto it = find_if(color_names, [&](const char* c){ return color == c; });
|
|
diff --git a/src/color.hh b/src/color.hh
|
|
index 943678edfb..85babd9800 100644
|
|
--- a/src/color.hh
|
|
+++ b/src/color.hh
|
|
@@ -1,6 +1,7 @@
|
|
#ifndef color_hh_INCLUDED
|
|
#define color_hh_INCLUDED
|
|
|
|
+#include "exception.hh"
|
|
#include "hash.hh"
|
|
#include "meta.hh"
|
|
#include "assert.hh"
|
|
@@ -55,7 +56,11 @@ struct Color
|
|
}
|
|
|
|
private:
|
|
- void validate_alpha();
|
|
+ constexpr void validate_alpha() {
|
|
+ static_assert(RGB == 17);
|
|
+ if (a < RGB)
|
|
+ throw runtime_error("Colors alpha must be > 16");
|
|
+ }
|
|
};
|
|
|
|
constexpr bool operator==(Color lhs, Color rhs)
|