[pypy-commit] pypy gc-del: Fix the oracle module (blindly)
arigo
noreply at buildbot.pypy.org
Fri Apr 26 23:09:21 CEST 2013
Author: Armin Rigo <arigo at tunes.org>
Branch: gc-del
Changeset: r63671:022f6153a022
Date: 2013-04-26 22:50 +0200
http://bitbucket.org/pypy/pypy/changeset/022f6153a022/
Log: Fix the oracle module (blindly)
diff --git a/pypy/module/oracle/interp_connect.py b/pypy/module/oracle/interp_connect.py
--- a/pypy/module/oracle/interp_connect.py
+++ b/pypy/module/oracle/interp_connect.py
@@ -29,6 +29,8 @@
self.w_version = None
self.release = False
+ self.register_finalizer()
+
@unwrap_spec(mode=int, handle=int,
threaded=bool, twophase=bool, events=bool,
@@ -80,13 +82,11 @@
self.connect(space, mode, twophase)
return space.wrap(self)
- def __del__(self):
- self.enqueue_for_destruction(self.environment.space,
- W_Connection.destructor,
- '__del__ method of ')
+ def invoke_finalizer(self):
+ self.finalizer_perform(self.environment.space, '__del__ method of ',
+ self.destructor)
def destructor(self):
- assert isinstance(self, W_Connection)
if self.release:
roci.OCITransRollback(
self.handle, self.environment.errorHandle,
diff --git a/pypy/module/oracle/interp_object.py b/pypy/module/oracle/interp_object.py
--- a/pypy/module/oracle/interp_object.py
+++ b/pypy/module/oracle/interp_object.py
@@ -14,14 +14,14 @@
self.environment = connection.environment
self.isCollection = False
self.initialize(connection, param)
+ self.register_finalizer()
- def __del__(self):
- self.enqueue_for_destruction(self.environment.space,
- W_ObjectType.destructor,
- '__del__ method of ')
+ def invoke_finalizer(self):
+ if self.tdo:
+ self.finalizer_perform(self.environment.space, '__del__ method of ',
+ self.destructor)
def destructor(self):
- assert isinstance(self, W_ObjectType)
if self.tdo:
roci.OCIObjectUnpin(
self.environment.handle,
diff --git a/pypy/module/oracle/interp_variable.py b/pypy/module/oracle/interp_variable.py
--- a/pypy/module/oracle/interp_variable.py
+++ b/pypy/module/oracle/interp_variable.py
@@ -166,13 +166,13 @@
# perform extended initialization
self.initialize(self.environment.space, cursor)
- def __del__(self):
- self.enqueue_for_destruction(self.environment.space,
- W_Variable.destructor,
- '__del__ method of ')
+ self.register_finalizer()
+
+ def invoke_finalizer(self):
+ self.finalizer_perform(self.environment.space, '__del__ method of ',
+ self.destructor)
def destructor(self):
- assert isinstance(self, W_Variable)
self.finalize()
lltype.free(self.actualElementsPtr, flavor='raw')
if self.actualLength:
More information about the pypy-commit
mailing list