From 0f68366905425f04018c8f70f5cd16f4faef8d6b Mon Sep 17 00:00:00 2001 From: Jason Paryani Date: Wed, 13 Nov 2013 12:21:48 -0800 Subject: [PATCH] Stop using pointer to TwoPartyVatNetwork and replace with Own reference --- capnp/capnp.pyx | 9 +++------ capnp/capnp_cpp.pxd | 1 + 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/capnp/capnp.pyx b/capnp/capnp.pyx index d1e2ba8..17304c3 100644 --- a/capnp/capnp.pyx +++ b/capnp/capnp.pyx @@ -9,7 +9,7 @@ cimport cython cimport capnp_cpp as capnp cimport schema_cpp -from capnp_cpp cimport Schema as C_Schema, StructSchema as C_StructSchema, InterfaceSchema as C_InterfaceSchema, DynamicStruct as C_DynamicStruct, DynamicValue as C_DynamicValue, Type as C_Type, DynamicList as C_DynamicList, fixMaybe, getEnumString, SchemaParser as C_SchemaParser, ParsedSchema as C_ParsedSchema, VOID, ArrayPtr, StringPtr, String, StringTree, DynamicOrphan as C_DynamicOrphan, ObjectPointer as C_DynamicObject, DynamicCapability as C_DynamicCapability, new_client, new_server, server_to_client, Request, Response, RemotePromise, convert_to_pypromise, UnixEventLoop, PyPromise, VoidPromise, CallContext, PyRestorer, RpcSystem, makeRpcServer, makeRpcClient, makeRpcClientWithRestorer, restoreHelper, Capability as C_Capability, TwoPartyVatNetwork as C_TwoPartyVatNetwork, Side, AsyncIoStream_wrapFd, AsyncIoStream, Own +from capnp_cpp cimport Schema as C_Schema, StructSchema as C_StructSchema, InterfaceSchema as C_InterfaceSchema, DynamicStruct as C_DynamicStruct, DynamicValue as C_DynamicValue, Type as C_Type, DynamicList as C_DynamicList, fixMaybe, getEnumString, SchemaParser as C_SchemaParser, ParsedSchema as C_ParsedSchema, VOID, ArrayPtr, StringPtr, String, StringTree, DynamicOrphan as C_DynamicOrphan, ObjectPointer as C_DynamicObject, DynamicCapability as C_DynamicCapability, new_client, new_server, server_to_client, Request, Response, RemotePromise, convert_to_pypromise, UnixEventLoop, PyPromise, VoidPromise, CallContext, PyRestorer, RpcSystem, makeRpcServer, makeRpcClient, makeRpcClientWithRestorer, restoreHelper, Capability as C_Capability, TwoPartyVatNetwork as C_TwoPartyVatNetwork, Side, AsyncIoStream_wrapFd, AsyncIoStream, Own, makeTwoPartyVatNetwork from schema_cpp cimport Node as C_Node, EnumNode as C_EnumNode from cython.operator cimport dereference as deref @@ -1333,15 +1333,12 @@ cdef class Restorer: del self.thisptr cdef class _TwoPartyVatNetwork: - cdef C_TwoPartyVatNetwork * thisptr + cdef Own[C_TwoPartyVatNetwork] thisptr cdef _init(self, EventLoop loop, AsyncIoStream & stream, Side side): - self.thisptr = new C_TwoPartyVatNetwork(loop.thisptr, stream, side) + self.thisptr = makeTwoPartyVatNetwork(loop.thisptr, stream, side) return self - def __dealloc__(self): - del self.thisptr - cdef class RpcClient: cdef RpcSystem * thisptr cdef public _TwoPartyVatNetwork network diff --git a/capnp/capnp_cpp.pxd b/capnp/capnp_cpp.pxd index ff7e736..3d06528 100644 --- a/capnp/capnp_cpp.pxd +++ b/capnp/capnp_cpp.pxd @@ -26,6 +26,7 @@ cdef extern from "kj/string.h" namespace " ::kj": cdef extern from "kj/memory.h" namespace " ::kj": cdef cppclass Own[T]: T& operator*() + Own[TwoPartyVatNetwork] makeTwoPartyVatNetwork" ::kj::heap< ::capnp::TwoPartyVatNetwork>"(EventLoop &, AsyncIoStream& stream, Side) cdef extern from "kj/string-tree.h" namespace " ::kj": cdef cppclass StringTree: