diff --git a/capnp/helpers/rpcHelper.h b/capnp/helpers/rpcHelper.h index 5885dc4..a7d54bd 100644 --- a/capnp/helpers/rpcHelper.h +++ b/capnp/helpers/rpcHelper.h @@ -20,7 +20,7 @@ public: // ~PyRestorer() { // Py_DECREF(py_restorer); // } - + capnp::Capability::Client restore(capnp::AnyPointer::Reader objectId) override { GILAcquire gil; capnp::Capability::Client * ret = call_py_restorer(py_restorer, objectId); @@ -64,11 +64,13 @@ capnp::Capability::Client restoreHelper(capnp::RpcSystem& client) { - capnp::MallocMessageBuilder message; - capnp::rpc::SturdyRef::Builder ref = message.getRoot(); - auto hostId = ref.getHostId().initAs(); + capnp::MallocMessageBuilder hostIdMessage(8); + auto hostId = hostIdMessage.initRoot(); hostId.setSide(capnp::rpc::twoparty::Side::SERVER); - return client.restore(hostId, ref.getObjectId()); + + capnp::MallocMessageBuilder blankMessage(8); + auto objectId = blankMessage.getRoot(); + return client.restore(hostId, objectId); } template makeRpcClientWithRestorer( capnp::VatNetwork& network, PyRestorer& restorer) { using namespace capnp; - return RpcSystem(network, - kj::Maybe&>(restorer)); + return RpcSystem(network, restorer); } struct ServerContext {