Fix CallbackBase for stub 31/280531/2
authorSangyoon Jang <jeremy.jang@samsung.com>
Wed, 31 Aug 2022 08:14:34 +0000 (17:14 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Thu, 1 Sep 2022 02:09:45 +0000 (11:09 +0900)
Change-Id: Ic0b64cdf31f7855b1ccf0bcca162228c821873ce
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
idlc/gen_cion/cs_cion_gen_base.cc
idlc/gen_cion/cs_cion_gen_base_cb.h

index 419f456911212ceb30fe3e73395c16e8b9de9e9f..e6a8c21b73a60e3b883ece08bf6755a022dd8ab8 100644 (file)
@@ -365,7 +365,7 @@ std::string CsCionGeneratorBase::ConvertTypeToDeserializer(
 
     if (IsDelegateType(type)) {
       ret += id + " = new " + n
-          + "(peerInfo, new WeakReference(b));\n";
+          + "(peerInfo, new WeakReference(b), new WeakReference(this));\n";
       ret += "CallbackBase.";
     } else {
       ret += id + " = new " + n +"();\n";
index 994f884507053f86e36fd5fca48c1959b940f172..7bcd81ec967a68059b85001ba805ee3e452e481d 100644 (file)
@@ -67,11 +67,11 @@ R"__cs_cb(                public $$(bool once = false) : base((int)DelegateId.$$
 )__cs_cb";
 
 const char CB_CALLBACK_CTOR_STUB[] =
-R"__cs_cb(                internal $$(PeerInfo peerInfo, WeakReference service) : base((int)DelegateId.$$, false)
+R"__cs_cb(                internal $$(PeerInfo peerInfo, WeakReference service, WeakReference serverBase) : base((int)DelegateId.$$, false)
                 {
                     _peerInfo = peerInfo;
                     _service = service;
-                    _serverBase = ($$)service.Target;
+                    _serverBase = ($$)serverBase.Target;
                 }
 )__cs_cb";