- 08 Agu, 2002 18 kayıt (commit)
-
-
Guido van Rossum yazdı
a lot of work: it had to save and restore the current exception around a call to lookup_maybe(), because that could fail in rare cases, and most objects don't have a __del__ method, so the whole exercise was usually a waste of time. Changed this to cache the __del__ method in the type object just like all other special methods, in a new slot tp_del. So now subtype_dealloc() can test whether tp_del is NULL and skip the whole exercise if it is. The new slot doesn't need a new flag bit: subtype_dealloc() is only called if the type was dynamically allocated by type_new(), so it's guaranteed to have all current slots. Types defined in C cannot fill in tp_del with a function of their own, so there's no corresponding "wrapper". (That functionality is already available through tp_dealloc.)
-
Guido van Rossum yazdı
MacIntyre. At least on OS/2, a subsequent connect() on a nonblocking socket returns errno==EISCONN to indicate success. This seems harmless on Unix.
-
Guido van Rossum yazdı
value; others were inconsistent in what to name the argument or return value; a few module-global functions had "socket." in front of their name, against convention.
-
Guido van Rossum yazdı
least on OS/2 (see note on SF patch 555085 by A I MacIntyre) but looks like the test *could* fail on any other platform too -- there's no guarantee that recv() reads all data.
-
Tim Peters yazdı
-
Tim Peters yazdı
-
Jason Tishler yazdı
YA Cygwin module patch very similar to other patches that I have submitted. I tested under Cygwin and Red Hat Linux 7.1.
-
Guido van Rossum yazdı
to delete the reference to self._sock, and the regular destructor will do that just fine. This made some hacks in close() unnecessary. The _fileobject class still has a __del__ method, because it must flush.
-
Guido van Rossum yazdı
This is important IMO because httplib reads the headers this way.
-
Guido van Rossum yazdı
observation that _rbuf could never have more than one string in it. So make _rbuf a string. The code branches for size<0 and size>=0 are completely separate now, both in read() and in readline(). I checked for tabs this time. :-)
-
Guido van Rossum yazdı
-
Guido van Rossum yazdı
-
Guido van Rossum yazdı
to being a new-style class, to be more similar to the socket class in the _socket module; it is now the same as the _socketobject class. Added __slots__. Added docstrings, copied from the real socket class where possible. The _fileobject class is now also a new-style class with __slots__ (though without docstrings). The mode, name, softspace, bufsize and closed attributes are properly supported (closed as a property; name as a class attributes; the softspace, mode and bufsize as slots).
-
Steve Purcell yazdı
(Synched from pyunit CVS)
-
Tim Peters yazdı
couple of minor edits elsewhere.
-
Tim Peters yazdı
I believe I introduced this bug when I refactored the reversal code so that the mergesort could use it too. It's not a problem on the 2.2 branch.
-
Guido van Rossum yazdı
correctly (the test at least succeed, but they don't test everything yet). Also fix a performance problem in read(-1): in unbuffered mode, this would read 1 byte at a time. Since we're reading until EOF, that doesn't make sense. Use the default buffer size if _rbufsize is <= 1.
-
Guido van Rossum yazdı
prints function and module names, which is more informative now that we repeat some tests in slightly modified subclasses. Add a test for read() until EOF. Add test suites for line-buffered (bufsize==1) and a small custom buffer size (bufsize==2). Restructure testUnbufferedRead() somewhat to avoid a potentially infinite loop.
-
- 07 Agu, 2002 22 kayıt (commit)
-
-
Tim Peters yazdı
destructor early.
-
Guido van Rossum yazdı
subtype_dealloc(). When call_finalizer() failed, it would return without going through the trashcan end macro, thereby unbalancing the trashcan nesting level counter, and thereby defeating the test case (slottrash() in test_descr.py). This in turn meant that the assert in the GC_UNTRACK macro wasn't triggered by the slottrash() test despite a bug in the code: _PyTrash_destroy_chain() calls the dealloc routine with an object that's untracked, and the assert in the GC_UNTRACK macro would fail on this; but because of an earlier test that resurrects an object, causing call_finalizer() to fail and the trashcan nesting level to be unbalanced, so _PyTrash_destroy_chain() was never called. Calling the slottrash() test in isolation *did* trigger the assert, however. So the fix is twofold: (1) call the GC_UnTrack() function instead of the GC_UNTRACK macro, because the function is safe when the object is already untracked; (2) when call_finalizer() fails, jump to a label that exits through the trashcan end macro, keeping the trashcan nesting balanced.
-
Raymond Hettinger yazdı
-
Guido van Rossum yazdı
The -tt means modules that mix tabs and spaces will be rejected. The -E refuses to believe Python options in the environment.
-
Guido van Rossum yazdı
-
Guido van Rossum yazdı
-
Guido van Rossum yazdı
empty heap, since heap[0] raises the appropriate IndexError already.
-
Guido van Rossum yazdı
is empty.
-
Raymond Hettinger yazdı
-
Martin v. Löwis yazdı
-
Raymond Hettinger yazdı
the weakreflist to NULL in the constructor and to fill the tp_flags slot with Py_TPFLAGS_HAVE_WEAKREFS. Closes SF bug 586583.
-
Raymond Hettinger yazdı
-
Guido van Rossum yazdı
-
Jack Jansen yazdı
-
Jack Jansen yazdı
the classes' attribute list.
-
Raymond Hettinger yazdı
-
Guido van Rossum yazdı
and this broke a Zope "pipelining" test which read multiple responses from the same connection (this attaches a new file object to the socket for each response). Added a test for this too. (I want to do some code cleanup too, but I thought I'd first fix the problem with as little code as possible, and add a unit test for this case. So that's what this checkin is about.)
-
Jack Jansen yazdı
in stead of prepending it, which messes up "import * from". - A few ascii()s added again. - Changed the getbaseclasses a little, but it still isn't perfect.
-
Fred Drake yazdı
__nonzero__(), in response to SF bug #579991.
-
Martin v. Löwis yazdı
-
Jack Jansen yazdı
the result passes through backticks.
-
Jack Jansen yazdı
This patch makes inheritance for OSA classes work. The implementation is a bit convoluted, but I don't immedeately see a simpler way of doing it. I added calls to ascii() everywhere we output strings that may contain non-ascii characters (Python has gotten very picky since the encoding patch:-). I also removed Donovan's different way of opening resource files: I don't seem to need it.
-