[beast/devel: 6/26] BSE: fix Rapicorn generated code to properly use shared_from_this()
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast/devel: 6/26] BSE: fix Rapicorn generated code to properly use shared_from_this()
- Date: Mon, 13 Oct 2014 02:26:37 +0000 (UTC)
commit e6ea3f57449eb9e70dff8455cf2536c93888baee
Author: Tim Janik <timj gnu org>
Date: Sat Oct 11 06:45:53 2014 +0200
BSE: fix Rapicorn generated code to properly use shared_from_this()
bse/Makefile.am | 7 +++++--
bse/patch-bseserverapi.cc.diff | 19 +++++++++++++++++++
2 files changed, 24 insertions(+), 2 deletions(-)
---
diff --git a/bse/Makefile.am b/bse/Makefile.am
index 66fd888..195cdf1 100644
--- a/bse/Makefile.am
+++ b/bse/Makefile.am
@@ -303,12 +303,15 @@ bseclientapi.cc: $(srcdir)/../bse/bseapi.idl $(AUXTYPES_PY)
GENERATED += bseclientapi.cc
bseserverapi.hh: $(srcdir)/bseapi.idl $(AUXTYPES_PY)
$(AM_V_GEN)
- $(Q) ${AIDACC} -x CxxStub -x $(AUXTYPES_PY) -G serverhh -G cppguard=__BST_BSESERVERAPI_HH_ $< -o
xgen-$(@F)
+ $(Q) ${AIDACC} -x CxxStub -x $(AUXTYPES_PY) -G serverhh -G cppguard=__BST_BSESERVERAPI_HH_ \
+ -G iface-base=BseImplicitBase $< -o xgen-$(@F)
$(Q) mv xgen-$(@F) $@
GENERATED += bseserverapi.hh
bseserverapi.cc: $(srcdir)/bseapi.idl $(AUXTYPES_PY)
$(AM_V_GEN)
- $(Q) ${AIDACC} -x CxxStub -x $(AUXTYPES_PY) -G servercc -G cppguard=__BST_BSESERVERAPI_CC_ $< -o
xgen-$(@F)
+ $(Q) ${AIDACC} -x CxxStub -x $(AUXTYPES_PY) -G servercc -G cppguard=__BST_BSESERVERAPI_CC_ \
+ -G iface-base=BseImplicitBase $< -o xgen-$(@F)
+ $(Q) patch < patch-bseserverapi.cc.diff
$(Q) mv xgen-$(@F) $@
GENERATED += bseserverapi.cc
diff --git a/bse/patch-bseserverapi.cc.diff b/bse/patch-bseserverapi.cc.diff
new file mode 100644
index 0000000..5c7c0f9
--- /dev/null
+++ b/bse/patch-bseserverapi.cc.diff
@@ -0,0 +1,19 @@
+--- xgen-bseserverapi.cc
++++ xgen-bseserverapi.cc
+@@ -43,14 +43,14 @@ interface_to_remote_handle ($AIDA_iface_base$ *ibase)
+ SMH target;
+ struct CastingServerConnection : ServerConnection { using ServerConnection::cast_interface_handle; };
+ CastingServerConnection *cs_con = (CastingServerConnection*) server_connection;
+- cs_con->cast_interface_handle (target, Rapicorn::BaseObject::shared_ptr (ibase));
++ cs_con->cast_interface_handle (target, ibase ? ibase->shared_from_this() : ImplicitBaseP());
+ return target;
+ }
+
+ template<class Target> static inline void
+ field_buffer_add_interface (Rapicorn::Aida::FieldBuffer &fb, Target *instane)
+ {
+- server_connection->add_interface (fb, Rapicorn::BaseObject::shared_ptr (instane));
++ server_connection->add_interface (fb, instane ? instane->shared_from_this() : ImplicitBaseP());
+ }
+
+ template<class Target> static inline Target*
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]