Fix memleak and simplify dynamic client api

This commit is contained in:
Jason Paryani
2013-10-17 19:15:40 -07:00
parent a5d0abb49f
commit 7f7b28f328
5 changed files with 91 additions and 117 deletions

View File

@@ -12,8 +12,14 @@ class PythonInterfaceDynamicImpl final: public capnp::DynamicCapability::Server
public:
PyObject * py_server;
PythonInterfaceDynamicImpl(capnp::InterfaceSchema & schema, PyObject * py_server)
: capnp::DynamicCapability::Server(schema), py_server(py_server) {}
PythonInterfaceDynamicImpl(capnp::InterfaceSchema & schema, PyObject * _py_server)
: capnp::DynamicCapability::Server(schema), py_server(_py_server) {
Py_INCREF(_py_server);
}
~PythonInterfaceDynamicImpl() {
Py_DECREF(py_server);
}
kj::Promise<void> call(capnp::InterfaceSchema::Method method,
capnp::CallContext< capnp::DynamicStruct, capnp::DynamicStruct> context) {