diff options
author | Chad Austin <chad@imvu.com> | 2014-05-08 23:05:56 -0700 |
---|---|---|
committer | Bruce Mitchener <bruce.mitchener@gmail.com> | 2014-05-21 22:59:08 +0700 |
commit | e25a0f0af05a12705bacf35e4d94bcdc9cd334e9 (patch) | |
tree | 22ecb898b8e056b33259cb991c8d05d1858b04b9 /tests/embind | |
parent | 3147a2175cc90c1ceca368979bad72870b02561b (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.cpp | 6 |
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()) |