diff options
author | Chad Austin <chad@imvu.com> | 2013-03-19 16:43:03 -0700 |
---|---|---|
committer | Jukka Jylänki <jujjyl@gmail.com> | 2013-04-12 14:26:22 +0300 |
commit | 6f219fd0caad22aadad34dd46bc8043d299b4299 (patch) | |
tree | 11400c8421a89b8498699c9a1f8e0f21aceff6f1 /system | |
parent | fe2bcf89921105ad3719655ec59905cc63be5c3d (diff) |
Change EMSCRIPTEN_BINDINGS syntax and allow for out-of-order registration of value_tuple elements.
Diffstat (limited to 'system')
-rwxr-xr-x | system/include/emscripten/bind.h | 26 | ||||
-rwxr-xr-x | system/lib/embind/bind.cpp | 4 |
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");
-}));
+}
|