Просмотр исходного кода

Make variant_op jumptable const

Not doing this was a bit of an oversight
Hein-Pieter van Braam 8 лет назад
Родитель
Сommit
758accdcc2
1 измененных файлов с 26 добавлено и 26 удалено
  1. 26 26
      core/variant_op.cpp

+ 26 - 26
core/variant_op.cpp

@@ -100,32 +100,32 @@
 }
 /* clang-format on */
 
-#define CASES(PREFIX) static void *switch_table_##PREFIX[25][27] = { \
-	TYPES(PREFIX, OP_EQUAL),                                         \
-	TYPES(PREFIX, OP_NOT_EQUAL),                                     \
-	TYPES(PREFIX, OP_LESS),                                          \
-	TYPES(PREFIX, OP_LESS_EQUAL),                                    \
-	TYPES(PREFIX, OP_GREATER),                                       \
-	TYPES(PREFIX, OP_GREATER_EQUAL),                                 \
-	TYPES(PREFIX, OP_ADD),                                           \
-	TYPES(PREFIX, OP_SUBTRACT),                                      \
-	TYPES(PREFIX, OP_MULTIPLY),                                      \
-	TYPES(PREFIX, OP_DIVIDE),                                        \
-	TYPES(PREFIX, OP_NEGATE),                                        \
-	TYPES(PREFIX, OP_POSITIVE),                                      \
-	TYPES(PREFIX, OP_MODULE),                                        \
-	TYPES(PREFIX, OP_STRING_CONCAT),                                 \
-	TYPES(PREFIX, OP_SHIFT_LEFT),                                    \
-	TYPES(PREFIX, OP_SHIFT_RIGHT),                                   \
-	TYPES(PREFIX, OP_BIT_AND),                                       \
-	TYPES(PREFIX, OP_BIT_OR),                                        \
-	TYPES(PREFIX, OP_BIT_XOR),                                       \
-	TYPES(PREFIX, OP_BIT_NEGATE),                                    \
-	TYPES(PREFIX, OP_AND),                                           \
-	TYPES(PREFIX, OP_OR),                                            \
-	TYPES(PREFIX, OP_XOR),                                           \
-	TYPES(PREFIX, OP_NOT),                                           \
-	TYPES(PREFIX, OP_IN),                                            \
+#define CASES(PREFIX) static const void *switch_table_##PREFIX[25][27] = { \
+	TYPES(PREFIX, OP_EQUAL),                                               \
+	TYPES(PREFIX, OP_NOT_EQUAL),                                           \
+	TYPES(PREFIX, OP_LESS),                                                \
+	TYPES(PREFIX, OP_LESS_EQUAL),                                          \
+	TYPES(PREFIX, OP_GREATER),                                             \
+	TYPES(PREFIX, OP_GREATER_EQUAL),                                       \
+	TYPES(PREFIX, OP_ADD),                                                 \
+	TYPES(PREFIX, OP_SUBTRACT),                                            \
+	TYPES(PREFIX, OP_MULTIPLY),                                            \
+	TYPES(PREFIX, OP_DIVIDE),                                              \
+	TYPES(PREFIX, OP_NEGATE),                                              \
+	TYPES(PREFIX, OP_POSITIVE),                                            \
+	TYPES(PREFIX, OP_MODULE),                                              \
+	TYPES(PREFIX, OP_STRING_CONCAT),                                       \
+	TYPES(PREFIX, OP_SHIFT_LEFT),                                          \
+	TYPES(PREFIX, OP_SHIFT_RIGHT),                                         \
+	TYPES(PREFIX, OP_BIT_AND),                                             \
+	TYPES(PREFIX, OP_BIT_OR),                                              \
+	TYPES(PREFIX, OP_BIT_XOR),                                             \
+	TYPES(PREFIX, OP_BIT_NEGATE),                                          \
+	TYPES(PREFIX, OP_AND),                                                 \
+	TYPES(PREFIX, OP_OR),                                                  \
+	TYPES(PREFIX, OP_XOR),                                                 \
+	TYPES(PREFIX, OP_NOT),                                                 \
+	TYPES(PREFIX, OP_IN),                                                  \
 }
 
 #define SWITCH(PREFIX, op, val) goto *switch_table_##PREFIX[op][val];