aboutsummaryrefslogtreecommitdiff
path: root/tests/embind
diff options
context:
space:
mode:
authorChad Austin <chad@imvu.com>2014-05-08 23:05:56 -0700
committerBruce Mitchener <bruce.mitchener@gmail.com>2014-05-21 22:59:08 +0700
commite25a0f0af05a12705bacf35e4d94bcdc9cd334e9 (patch)
tree22ecb898b8e056b33259cb991c8d05d1858b04b9 /tests/embind
parent3147a2175cc90c1ceca368979bad72870b02561b (diff)
Make returning JavaScript instances work in the presence of base class pointer fixups.
Diffstat (limited to 'tests/embind')
-rw-r--r--tests/embind/embind_test.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/tests/embind/embind_test.cpp b/tests/embind/embind_test.cpp
index d7999b6f..c387781e 100644
--- a/tests/embind/embind_test.cpp
+++ b/tests/embind/embind_test.cpp
@@ -1181,7 +1181,7 @@ std::string callAbstractMethod2(AbstractClassWithConstructor& ac) {
return ac.abstractMethod();
}
-struct HeldAbstractClass {
+struct HeldAbstractClass : public PolyBase, public PolySecondBase {
virtual void method() = 0;
};
struct HeldAbstractClassWrapper : wrapper<HeldAbstractClass> {
@@ -1192,7 +1192,7 @@ struct HeldAbstractClassWrapper : wrapper<HeldAbstractClass> {
}
};
-std::shared_ptr<HeldAbstractClass> passHeldAbstractClass(std::shared_ptr<HeldAbstractClass> p) {
+std::shared_ptr<PolySecondBase> passHeldAbstractClass(std::shared_ptr<HeldAbstractClass> p) {
return p;
}
@@ -1224,7 +1224,7 @@ EMSCRIPTEN_BINDINGS(interface_tests) {
;
function("callAbstractMethod2", &callAbstractMethod2);
- class_<HeldAbstractClass>("HeldAbstractClass")
+ class_<HeldAbstractClass, base<PolySecondBase>>("HeldAbstractClass")
.smart_ptr<std::shared_ptr<HeldAbstractClass>>("shared_ptr<HeldAbstractClass>")
.allow_subclass<HeldAbstractClassWrapper, std::shared_ptr<HeldAbstractClassWrapper>>("HeldAbstractClassWrapper")
.function("method", &HeldAbstractClass::method, pure_virtual())