aboutsummaryrefslogtreecommitdiff
path: root/system
diff options
context:
space:
mode:
authorChad Austin <chad@imvu.com>2013-03-19 16:43:03 -0700
committerJukka Jylänki <jujjyl@gmail.com>2013-04-12 14:26:22 +0300
commit6f219fd0caad22aadad34dd46bc8043d299b4299 (patch)
tree11400c8421a89b8498699c9a1f8e0f21aceff6f1 /system
parentfe2bcf89921105ad3719655ec59905cc63be5c3d (diff)
Change EMSCRIPTEN_BINDINGS syntax and allow for out-of-order registration of value_tuple elements.
Diffstat (limited to 'system')
-rwxr-xr-xsystem/include/emscripten/bind.h26
-rwxr-xr-xsystem/lib/embind/bind.cpp4
2 files changed, 19 insertions, 11 deletions
diff --git a/system/include/emscripten/bind.h b/system/include/emscripten/bind.h
index a1b2a015..b7b17f20 100755
--- a/system/include/emscripten/bind.h
+++ b/system/include/emscripten/bind.h
@@ -169,14 +169,6 @@ namespace emscripten {
GenericFunction constructor,
GenericFunction destructor);
}
-
- class BindingsDefinition {
- public:
- template<typename Function>
- BindingsDefinition(Function fn) {
- fn();
- }
- };
}
}
@@ -1155,4 +1147,20 @@ namespace emscripten {
};
}
-#define EMSCRIPTEN_BINDINGS(fn) static emscripten::internal::BindingsDefinition anon_symbol(fn);
+namespace emscripten {
+ namespace internal {
+ class BindingsDefinition {
+ public:
+ template<typename Function>
+ BindingsDefinition(Function fn) {
+ fn();
+ }
+ };
+ }
+}
+
+#define EMSCRIPTEN_BINDINGS(name) \
+ static struct BindingInitializer_##name { \
+ BindingInitializer_##name(); \
+ } BindingInitializer_##name##_instance; \
+ BindingInitializer_##name::BindingInitializer_##name()
diff --git a/system/lib/embind/bind.cpp b/system/lib/embind/bind.cpp
index e844e52e..6994ef0c 100755
--- a/system/lib/embind/bind.cpp
+++ b/system/lib/embind/bind.cpp
@@ -38,7 +38,7 @@ namespace emscripten {
}
}
-EMSCRIPTEN_BINDINGS(([]() {
+EMSCRIPTEN_BINDINGS(native_and_builtin_types) {
using namespace emscripten::internal;
_embind_register_void(TypeID<void>::get(), "void");
@@ -60,4 +60,4 @@ EMSCRIPTEN_BINDINGS(([]() {
_embind_register_cstring(TypeID<std::string>::get(), "std::string");
_embind_register_emval(TypeID<val>::get(), "emscripten::val");
-}));
+}