Removed addbase.__del__ because it can't work.
If code keeps a reference to self.fp or any of its methods, you don't
want to close self.fp just because no explicit reference is kept to self.
diff --git a/Lib/urllib.py b/Lib/urllib.py
index 380a852..f83bafd 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -442,8 +442,12 @@
def __repr__(self):
return '<%s at %s whose fp = %s>' % (
self.__class__.__name__, `id(self)`, `self.fp`)
- def __del__(self):
- self.close()
+# Removed this __del__ because it can't work like this. If a
+# reference is kept to self.fp or any of its methods, but no reference
+# is kept to self, we don't want to close self.fp (which would happen
+# if this __del__ still existed).
+# def __del__(self):
+# self.close()
def close(self):
self.read = None
self.readline = None