summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--project2/common/scriptLoader.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/project2/common/scriptLoader.h b/project2/common/scriptLoader.h
index feb958b..2582a52 100644
--- a/project2/common/scriptLoader.h
+++ b/project2/common/scriptLoader.h
@@ -101,11 +101,15 @@ class LoaderBase {
const Glib::ustring ns;
};
+#define TOKENPASTE(x, y) x ## y
+#define TOKENPASTE2(x, y) TOKENPASTE(x, y)
#define DECLARE_CUSTOM_COMPONENT_LOADER(N, I, T, B) \
+namespace TOKENPASTE2(I, __LINE__) { \
static void init_loader_##I() __attribute__ ((constructor(201))); \
static void init_loader_##I() { LoaderBase::newLoader<B>(N, new T()); } \
static void kill_loader_##I() __attribute__ ((destructor(201))); \
- static void kill_loader_##I() { LoaderBase::removeLoader<B>(N); }
+ static void kill_loader_##I() { LoaderBase::removeLoader<B>(N); } \
+}
#define DECLARE_CUSTOM_LOADER(N, T) \
DECLARE_CUSTOM_COMPONENT_LOADER(N, T, T, ElementLoader)
#define DECLARE_COMPONENT_LOADER(N, T, B) \