> From: Ryan Bloom [mailto:[EMAIL PROTECTED]] > Sent: 07 March 2002 19:58
>> server/config.c:396 >> return !!(cmd->limited & (AP_METHOD_BIT << methnum)); >> ^^ >> >> Is that a typo or intentional? > > It's intentional. This line always sparks a VERY large debate. Then why didn't any one leave a nice comment behind so that this doesn't happen again? ;) > The reason for it is that it is the only way to ensure that you have a 1 or > 0 result. By negating twice, the first negation always takes the result > to 0 or 1, and second always gives the opposite result. It's not exactly the only way. There are two more: 1) return (cmd->limited & (AP_METHOD_BIT << methnum)) ? 1 : 0; 2) return (cmd->limited & (AP_METHOD_BIT << methnum)) != 0; And method 3, this entire block: /* * A method number either hardcoded into apache or * added by a module and registered. */ if (methnum != M_INVALID) { return (cmd->limited & (AP_METHOD_BIT << methnum)) ? 1 : 0; } return 0; /* not found */ can be written as: /* * A method number either hardcoded into apache or * added by a module and registered. */ return (methnum != M_INVALID && (cmd->limited & (AP_METHOD_BIT << methnum))); If noone steps up I'll change it to method 1, since that is most clear to read for everyone I think. >> server/core.c:661 >> AP_DECLARE(const char *) ap_document_root(request_rec *r) /* Don't use this! */ >> >> If we shouldn't use it, why is it still here? > > Because people are lazy and most people didn't realize that comment > existed. If nobody is using that function, remove it. Okay, thanks for the heads up. >> server/core.c:691 >> /* Should probably just get rid of this... the only code that cares is >> * part of the core anyway (and in fact, it isn't publicised to other >> * modules). >> */ >> >> Read the comment. > > Check to make sure nobody uses it, and remove it if nobody does. Ok. >> server/listen.c:320 >> /*free(lr);*/ >> >> Can this go? Was there a future purpose to this call, >> or was it just old code commented out? > > It most likely highlights a memory leak more than anything else. These > structures use to be malloc'ed, and free'd at the correct times. Now we > use palloc to allocate them. I would bet that the free was left so that > somebody would remember to look for the leak. Consider the line torched. > Ryan Thanks, Sander