Skip to content

Commit 17dc7c6

Browse files
committed
add destructor
1 parent 80ee3e7 commit 17dc7c6

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,5 @@ coverage.xml
5656
Session.vim
5757
.netrwhist
5858
*~
59+
60+
test.py

libspecinfra/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,12 @@ def __init__(self, direct):
3232
lib = load()
3333
lib.specinfra_new.argtypes = (ctypes.POINTER(BackendWrapperS),)
3434
lib.specinfra_new.restype = ctypes.POINTER(SpecinfraS)
35+
lib.specinfra_free.argtypes = (ctypes.POINTER(SpecinfraS),)
3536
self.lib = lib
3637
self.obj = lib.specinfra_new(direct.obj)
3738

39+
def __exit__(self, exc_type, exc_value, traceback):
40+
self.lib.specinfra_free(self.obj)
41+
3842
def file(self, path):
3943
return libspecinfra.resource.File(self.obj, path)

libspecinfra/backend/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,8 @@ class Direct(object):
88
def __init__(self):
99
lib = libspecinfra.load()
1010
lib.backend_direct_new.restype = ctypes.POINTER(BackendWrapperS)
11+
lib.backend_direct_free.argtypes = (ctypes.POINTER(BackendWrapperS),)
1112
self.obj = lib.backend_direct_new()
13+
14+
def __exit__(self, exc_type, exc_value, traceback):
15+
self.lib.backend_direct_free(self.obj)

0 commit comments

Comments
 (0)