aboutsummaryrefslogtreecommitdiff
path: root/system
diff options
context:
space:
mode:
Diffstat (limited to 'system')
-rwxr-xr-xsystem/include/emscripten/bind.h27
-rwxr-xr-xsystem/include/emscripten/wire.h5
2 files changed, 14 insertions, 18 deletions
diff --git a/system/include/emscripten/bind.h b/system/include/emscripten/bind.h
index 7c59a0ce..08118259 100755
--- a/system/include/emscripten/bind.h
+++ b/system/include/emscripten/bind.h
@@ -48,7 +48,6 @@ namespace emscripten {
void _embind_register_function(
const char* name,
- TYPEID returnType,
unsigned argCount,
TYPEID argTypes[],
GenericFunction invoker,
@@ -126,7 +125,6 @@ namespace emscripten {
void _embind_register_class_method(
TYPEID classType,
const char* methodName,
- TYPEID returnType,
unsigned argCount,
TYPEID argTypes[],
GenericFunction invoker,
@@ -157,7 +155,6 @@ namespace emscripten {
void _embind_register_class_classmethod(
TYPEID classType,
const char* methodName,
- TYPEID returnType,
unsigned argCount,
TYPEID argTypes[],
GenericFunction invoker,
@@ -165,7 +162,6 @@ namespace emscripten {
void _embind_register_class_operator_call(
TYPEID classType,
- TYPEID returnType,
unsigned argCount,
TYPEID argTypes[],
GenericFunction invoker
@@ -206,7 +202,11 @@ namespace emscripten {
template<int Index>
struct arg {
- static constexpr int index = Index;
+ static constexpr int index = Index + 1;
+ };
+
+ struct ret_val {
+ static constexpr int index = 0;
};
template<typename Slot>
@@ -282,10 +282,9 @@ namespace emscripten {
registerStandardTypes();
- typename WithPolicies<Policies...>::template ArgTypeList<Args...> args;
+ typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, Args...> args;
_embind_register_function(
name,
- TypeID<ReturnType>::get(),
args.count,
args.types,
reinterpret_cast<GenericFunction>(&Invoker<ReturnType, Args...>::invoke),
@@ -661,7 +660,7 @@ namespace emscripten {
class_& constructor(Policies...) {
using namespace internal;
- typename WithPolicies<Policies...>::template ArgTypeList<ConstructorArgs...> args;
+ typename WithPolicies<Policies...>::template ArgTypeList<void, ConstructorArgs...> args;
_embind_register_class_constructor(
TypeID<ClassType>::get(),
args.count,
@@ -674,11 +673,10 @@ namespace emscripten {
class_& method(const char* methodName, ReturnType (ClassType::*memberFunction)(Args...), Policies...) {
using namespace internal;
- typename WithPolicies<Policies...>::template ArgTypeList<Args...> args;
+ typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, Args...> args;
_embind_register_class_method(
TypeID<ClassType>::get(),
methodName,
- TypeID<ReturnType>::get(),
args.count,
args.types,
reinterpret_cast<GenericFunction>(&MethodInvoker<ClassType, ReturnType, Args...>::invoke),
@@ -691,11 +689,10 @@ namespace emscripten {
class_& method(const char* methodName, ReturnType (ClassType::*memberFunction)(Args...) const, Policies...) {
using namespace internal;
- typename WithPolicies<Policies...>::template ArgTypeList<Args...> args;
+ typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, Args...> args;
_embind_register_class_method(
TypeID<ClassType>::get(),
methodName,
- TypeID<ReturnType>::get(),
args.count,
args.types,
reinterpret_cast<GenericFunction>(&ConstMethodInvoker<ClassType, ReturnType, Args...>::invoke),
@@ -723,11 +720,10 @@ namespace emscripten {
class_& classmethod(const char* methodName, ReturnType (*classMethod)(Args...), Policies...) {
using namespace internal;
- typename WithPolicies<Policies...>::template ArgTypeList<Args...> args;
+ typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, Args...> args;
_embind_register_class_classmethod(
TypeID<ClassType>::get(),
methodName,
- TypeID<ReturnType>::get(),
args.count,
args.types,
reinterpret_cast<internal::GenericFunction>(&internal::Invoker<ReturnType, Args...>::invoke),
@@ -739,10 +735,9 @@ namespace emscripten {
class_& calloperator(Policies...) {
using namespace internal;
- typename WithPolicies<Policies...>::template ArgTypeList<Args...> args;
+ typename WithPolicies<Policies...>::template ArgTypeList<ReturnType, Args...> args;
_embind_register_class_operator_call(
TypeID<ClassType>::get(),
- TypeID<ReturnType>::get(),
args.count,
args.types,
reinterpret_cast<internal::GenericFunction>(&internal::FunctorInvoker<ClassType, ReturnType, Args...>::invoke));
diff --git a/system/include/emscripten/wire.h b/system/include/emscripten/wire.h
index 99c4f926..bb70f26c 100755
--- a/system/include/emscripten/wire.h
+++ b/system/include/emscripten/wire.h
@@ -104,7 +104,6 @@ namespace emscripten {
template<typename... Policies>
static void fill(TYPEID* argTypes) {
typedef typename ExecutePolicies<Policies...>::template With<T, Index>::type TransformT;
-
*argTypes = TypeID<TransformT>::get();
return ArgTypes<Index + 1, Remaining...>::template fill<Policies...>(argTypes + 1);
}
@@ -204,7 +203,9 @@ namespace emscripten {
template<typename T>
struct BindingType<T*> {
typedef T* WireType;
-
+ static WireType toWireType(T* p) {
+ return p;
+ }
static T* fromWireType(WireType wt) {
return wt;
}