]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Reduce code duplication in REGISTER_STAT
authorterencehill <piuntn@gmail.com>
Thu, 31 Oct 2024 22:01:05 +0000 (23:01 +0100)
committerterencehill <piuntn@gmail.com>
Thu, 31 Oct 2024 22:01:05 +0000 (23:01 +0100)
This change slightly improves compilation performance since it avoids generating about 120KB of completely useless qc code both from server and client code

qcsrc/lib/stats.qh

index af695b7ba82f617201623107668d6512023c2edb..074f9fcc1fe818cba7381164637971caa5097bcb 100644 (file)
@@ -66,6 +66,14 @@ int g_magic_stats_hole = 0;
 #define type_VECTOR  vector
 #define type_VECTORI vector
 
+#define _REGISTRY_RESERVE_INT(Stats, m_id, id)
+#define _REGISTRY_RESERVE_BOOL(Stats, m_id, id)
+#define _REGISTRY_RESERVE_FLOAT(Stats, m_id, id)
+#define _REGISTRY_RESERVE_VECTOR(Stats, m_id, id) \
+       REGISTRY_RESERVE(Stats, m_id, STAT_##id, y); \
+       REGISTRY_RESERVE(Stats, m_id, STAT_##id, z);
+#define _REGISTRY_RESERVE_VECTORI(Stats, m_id, id) _REGISTRY_RESERVE_VECTOR(Stats, m_id, id)
+
 #define REGISTER_STAT(...) EVAL_REGISTER_STAT(OVERLOAD(REGISTER_STAT, __VA_ARGS__))
 #define EVAL_REGISTER_STAT(...) __VA_ARGS__
 #if defined(CSQC)
@@ -88,10 +96,7 @@ int g_magic_stats_hole = 0;
                /* T CAT(_STAT(id), _prev); */ \
                REGISTER(Stats, STAT_##id, m_id, new_pure(stat)) \
                { \
-                       if (#T == "VECTOR" || #T == "VECTORI") { \
-                               REGISTRY_RESERVE(Stats, m_id, STAT_##id, y); \
-                               REGISTRY_RESERVE(Stats, m_id, STAT_##id, z); \
-                       } \
+                       _REGISTRY_RESERVE_##T(Stats, m_id, id) \
                } \
                ACCUMULATE void stats_get() \
                { \
@@ -146,10 +151,7 @@ int g_magic_stats_hole = 0;
                .type_##T _STAT(id); \
                REGISTER(Stats, STAT_##id, m_id, new_pure(stat)) \
                { \
-                       if (#T == "VECTOR" || #T == "VECTORI") { \
-                               REGISTRY_RESERVE(Stats, m_id, STAT_##id, y); \
-                               REGISTRY_RESERVE(Stats, m_id, STAT_##id, z); \
-                       } \
+                       _REGISTRY_RESERVE_##T(Stats, m_id, id) \
                } \
                ACCUMULATE void stats_add() \
                { \