Fix for changes in upstream C++ Cap'n Proto

This commit is contained in:
Jason Paryani
2014-11-03 22:24:38 -08:00
parent b7fd9b526d
commit 2565db3500

View File

@@ -20,7 +20,7 @@ public:
// ~PyRestorer() { // ~PyRestorer() {
// Py_DECREF(py_restorer); // Py_DECREF(py_restorer);
// } // }
capnp::Capability::Client restore(capnp::AnyPointer::Reader objectId) override { capnp::Capability::Client restore(capnp::AnyPointer::Reader objectId) override {
GILAcquire gil; GILAcquire gil;
capnp::Capability::Client * ret = call_py_restorer(py_restorer, objectId); capnp::Capability::Client * ret = call_py_restorer(py_restorer, objectId);
@@ -64,11 +64,13 @@ capnp::Capability::Client restoreHelper(capnp::RpcSystem<capnp::rpc::twoparty::S
} }
capnp::Capability::Client restoreHelper(capnp::RpcSystem<capnp::rpc::twoparty::SturdyRefHostId>& client) { capnp::Capability::Client restoreHelper(capnp::RpcSystem<capnp::rpc::twoparty::SturdyRefHostId>& client) {
capnp::MallocMessageBuilder message; capnp::MallocMessageBuilder hostIdMessage(8);
capnp::rpc::SturdyRef::Builder ref = message.getRoot<capnp::rpc::SturdyRef>(); auto hostId = hostIdMessage.initRoot<capnp::rpc::twoparty::SturdyRefHostId>();
auto hostId = ref.getHostId().initAs<capnp::rpc::twoparty::SturdyRefHostId>();
hostId.setSide(capnp::rpc::twoparty::Side::SERVER); hostId.setSide(capnp::rpc::twoparty::Side::SERVER);
return client.restore(hostId, ref.getObjectId());
capnp::MallocMessageBuilder blankMessage(8);
auto objectId = blankMessage.getRoot<capnp::AnyPointer>();
return client.restore(hostId, objectId);
} }
template <typename SturdyRefHostId, typename ProvisionId, template <typename SturdyRefHostId, typename ProvisionId,
@@ -77,8 +79,7 @@ capnp::RpcSystem<SturdyRefHostId> makeRpcClientWithRestorer(
capnp::VatNetwork<SturdyRefHostId, ProvisionId, RecipientId, ThirdPartyCapId, JoinAnswer>& network, capnp::VatNetwork<SturdyRefHostId, ProvisionId, RecipientId, ThirdPartyCapId, JoinAnswer>& network,
PyRestorer& restorer) { PyRestorer& restorer) {
using namespace capnp; using namespace capnp;
return RpcSystem<SturdyRefHostId>(network, return RpcSystem<SturdyRefHostId>(network, restorer);
kj::Maybe<SturdyRefRestorer<AnyPointer>&>(restorer));
} }
struct ServerContext { struct ServerContext {