aboutsummaryrefslogtreecommitdiff
path: root/system
diff options
context:
space:
mode:
Diffstat (limited to 'system')
-rwxr-xr-xsystem/include/emscripten/bind.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/system/include/emscripten/bind.h b/system/include/emscripten/bind.h
index 08118259..3dc6b5e7 100755
--- a/system/include/emscripten/bind.h
+++ b/system/include/emscripten/bind.h
@@ -114,6 +114,7 @@ namespace emscripten {
TYPEID pointerType,
TYPEID constPointerType,
const char* className,
+ GenericFunction getDynamicTypeInfo,
GenericFunction destructor);
void _embind_register_class_constructor(
@@ -265,12 +266,16 @@ namespace emscripten {
// FUNCTIONS
////////////////////////////////////////////////////////////////////////////////
-
template<typename FromType, typename ToType>
ToType& performCast(FromType& from) {
return *dynamic_cast<ToType*>(&from);
};
+ template<typename PointerType>
+ internal::TYPEID getDynamicPointerType(PointerType *p) {
+ return reinterpret_cast<internal::TYPEID>(&typeid(*p));
+ };
+
template<typename FromRawType, typename ToRawType>
std::shared_ptr<ToRawType> performPointerCast(std::shared_ptr<FromRawType> from) {
return std::shared_ptr<ToRawType>(from, dynamic_cast<ToRawType*>(from.get()));
@@ -653,6 +658,7 @@ namespace emscripten {
TypeID<AllowedRawPointer<ClassType>>::get(),
TypeID<AllowedRawPointer<const ClassType>>::get(),
name,
+ reinterpret_cast<GenericFunction>(&getDynamicPointerType<ClassType>),
reinterpret_cast<GenericFunction>(&raw_destructor<ClassType>));
}