1
+ //
2
+ // Created by Orange on 11/7/2024.
3
+ //
4
+ #pragma once
5
+ #include < CodeVirtualizer/VirtualizerSDK.h>
6
+ #ifdef _MSC_VER
7
+ # define CV_MACROS_FORCEINLINE __forceinline
8
+ #else
9
+ # define XORSTR_FORCEINLINE __attribute__ ((always_inline)) inline
10
+ #endif
11
+
12
+
13
+ #define CV_MAKE_MACROS_GUARD_DEF (name ) \
14
+ class MarcosGuard ##name \
15
+ { \
16
+ public: \
17
+ CV_MACROS_FORCEINLINE MarcosGuard##name() \
18
+ {\
19
+ VIRTUALIZER_##name##_START\
20
+ }\
21
+ \
22
+ CV_MACROS_FORCEINLINE ~MarcosGuard##name() \
23
+ {\
24
+ VIRTUALIZER_##name##_END\
25
+ }\
26
+ };
27
+
28
+ namespace CodeVirtualizer
29
+ {
30
+ CV_MAKE_MACROS_GUARD_DEF (TIGER_WHITE)
31
+ CV_MAKE_MACROS_GUARD_DEF (TIGER_RED)
32
+ CV_MAKE_MACROS_GUARD_DEF (TIGER_BLACK)
33
+
34
+ // Fish
35
+ CV_MAKE_MACROS_GUARD_DEF (FISH_WHITE)
36
+ CV_MAKE_MACROS_GUARD_DEF (FISH_RED)
37
+ CV_MAKE_MACROS_GUARD_DEF (FISH_BLACK)
38
+
39
+ // Puma
40
+ CV_MAKE_MACROS_GUARD_DEF (PUMA_WHITE)
41
+ CV_MAKE_MACROS_GUARD_DEF (PUMA_RED)
42
+ CV_MAKE_MACROS_GUARD_DEF (PUMA_BLACK)
43
+
44
+ // Shark
45
+ CV_MAKE_MACROS_GUARD_DEF (SHARK_WHITE)
46
+ CV_MAKE_MACROS_GUARD_DEF (SHARK_RED)
47
+ CV_MAKE_MACROS_GUARD_DEF (SHARK_BLACK)
48
+
49
+ // Dolphin
50
+ CV_MAKE_MACROS_GUARD_DEF (DOLPHIN_WHITE)
51
+ CV_MAKE_MACROS_GUARD_DEF (DOLPHIN_RED)
52
+ CV_MAKE_MACROS_GUARD_DEF (DOLPHIN_BLACK)
53
+
54
+ // Eagle
55
+ CV_MAKE_MACROS_GUARD_DEF (EAGLE_WHITE)
56
+ CV_MAKE_MACROS_GUARD_DEF (EAGLE_RED)
57
+ CV_MAKE_MACROS_GUARD_DEF (EAGLE_BLACK)
58
+
59
+ // Lion
60
+ CV_MAKE_MACROS_GUARD_DEF (LION_WHITE)
61
+ CV_MAKE_MACROS_GUARD_DEF (LION_RED)
62
+ CV_MAKE_MACROS_GUARD_DEF (LION_BLACK)
63
+
64
+ // Cobra
65
+ CV_MAKE_MACROS_GUARD_DEF (COBRA_WHITE)
66
+ CV_MAKE_MACROS_GUARD_DEF (COBRA_RED)
67
+ CV_MAKE_MACROS_GUARD_DEF (COBRA_BLACK)
68
+
69
+ // Wolf
70
+ CV_MAKE_MACROS_GUARD_DEF (WOLF_WHITE)
71
+ CV_MAKE_MACROS_GUARD_DEF (WOLF_RED)
72
+ CV_MAKE_MACROS_GUARD_DEF (WOLF_BLACK)
73
+
74
+ // Special types
75
+ CV_MAKE_MACROS_GUARD_DEF (MUTATE_ONLY)
76
+ CV_MAKE_MACROS_GUARD_DEF (FALCON_TINY)
77
+ }
78
+
79
+ #define CV_PLACE_GUARD_MACROS (name ) CodeVirtualizer::MarcosGuard##name cv_guard##__COUNTER__;
0 commit comments