-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkakoune-gcc12_2-validate-alpha-constexpr-function.patch
56 lines (49 loc) · 1.44 KB
/
kakoune-gcc12_2-validate-alpha-constexpr-function.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
From d1ea2ffa600fd2a7b14e415b68ceedba3325c5db Mon Sep 17 00:00:00 2001
From: Tim Allen <[email protected]>
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)