From: Tim Peters Date: Sun, 8 Apr 2001 07:23:44 +0000 (+0000) Subject: Fix from the Madusa mailing list: X-Git-Tag: v2.1c1~163 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6fd71206169c48daf9a45fe246b495bb8113fd10;p=thirdparty%2FPython%2Fcpython.git Fix from the Madusa mailing list: http://groups.yahoo.com/group/medusa/message/333 It's clear that Medusa should not be checking for an empty buffer via "buf is ''". The patch merely changes "is" to "==". However, there's a mystery here all the same: Python attempts to store null strings uniquely, so it's unclear why "buf is ''" ever returned false when buf actually was empty. *Some* string operations produce non-unique null strings, e.g. >>> "abc"*0 is "abc"*0 0 >>> but they're rare, and I don't see any such operations in asynchat. --- diff --git a/Lib/asynchat.py b/Lib/asynchat.py index 584aab9f3eb0..1f9fc6839be6 100644 --- a/Lib/asynchat.py +++ b/Lib/asynchat.py @@ -165,7 +165,7 @@ class async_chat (asyncore.dispatcher): # return len(self.ac_out_buffer) or len(self.producer_fifo) or (not self.connected) # this is about twice as fast, though not as clear. return not ( - (self.ac_out_buffer is '') and + (self.ac_out_buffer == '') and self.producer_fifo.is_empty() and self.connected )