3333#include " hash_map.h"
3434#include " list.h"
3535
36- #if defined(__GNUC__) && !defined(__clang__)
37- #define ADDRESS_DIAGNOSTIC_WARNING_DISABLE \
38- _Pragma (" GCC diagnostic push" ); \
39- _Pragma (" GCC diagnostic ignored \" -Waddress\" " );
40-
41- #define ADDRESS_DIAGNOSTIC_POP \
42- _Pragma (" GCC diagnostic pop" );
43- #else
44- #define ADDRESS_DIAGNOSTIC_WARNING_DISABLE
45- #define ADDRESS_DIAGNOSTIC_POP
46- #endif
47-
4836template <typename TKey, typename TData, typename Hasher = HashMapHasherDefault, typename Comparator = HashMapComparatorDefault<TKey>, void (*BeforeEvict)(TKey &, TData &) = nullptr >
4937class LRUCache {
5038public:
@@ -72,23 +60,23 @@ class LRUCache {
7260 Element n = _list.push_front (Pair (p_key, p_value));
7361
7462 if (e) {
75- ADDRESS_DIAGNOSTIC_WARNING_DISABLE;
63+ GODOT_GCC_WARNING_PUSH_AND_IGNORE ( " -Waddress " )
7664 if constexpr (BeforeEvict != nullptr ) {
7765 BeforeEvict ((*e)->get ().key , (*e)->get ().data );
7866 }
79- ADDRESS_DIAGNOSTIC_POP;
67+ GODOT_GCC_WARNING_POP
8068 _list.erase (*e);
8169 _map.erase (p_key);
8270 }
8371 _map[p_key] = _list.front ();
8472
8573 while (_map.size () > capacity) {
8674 Element d = _list.back ();
87- ADDRESS_DIAGNOSTIC_WARNING_DISABLE
75+ GODOT_GCC_WARNING_PUSH_AND_IGNORE ( " -Waddress " )
8876 if constexpr (BeforeEvict != nullptr ) {
8977 BeforeEvict (d->get ().key , d->get ().data );
9078 }
91- ADDRESS_DIAGNOSTIC_POP
79+ GODOT_GCC_WARNING_POP
9280 _map.erase (d->get ().key );
9381 _list.pop_back ();
9482 }
@@ -141,11 +129,11 @@ class LRUCache {
141129 capacity = p_capacity;
142130 while (_map.size () > capacity) {
143131 Element d = _list.back ();
144- ADDRESS_DIAGNOSTIC_WARNING_DISABLE;
132+ GODOT_GCC_WARNING_PUSH_AND_IGNORE ( " -Waddress " )
145133 if constexpr (BeforeEvict != nullptr ) {
146134 BeforeEvict (d->get ().key , d->get ().data );
147135 }
148- ADDRESS_DIAGNOSTIC_POP;
136+ GODOT_GCC_WARNING_POP
149137 _map.erase (d->get ().key );
150138 _list.pop_back ();
151139 }
@@ -160,6 +148,3 @@ class LRUCache {
160148 capacity = p_capacity;
161149 }
162150};
163-
164- #undef ADDRESS_DIAGNOSTIC_WARNING_DISABLE
165- #undef ADDRESS_DIAGNOSTIC_POP
0 commit comments