Please lets not go overboard with these types of optimizations. This could get out of
control quickly. Having code that is easy to read, understand and maintain is -much-
more
important than saving a a few extra cycles.
Bill
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, April 24, 2002 10:31 AM
Subject: cvs commit: httpd-2.0/server core.c
> gregames 02/04/24 07:31:28
>
> Modified: server core.c
> Log:
> default_handler: short circuit the method checks. Move the code to deal
> with unusual methods to the end of function to reduce i-cache clutter.
>
> Revision Changes Path
> 1.171 +13 -11 httpd-2.0/server/core.c
>
> Index: core.c
> ===================================================================
> RCS file: /home/cvs/httpd-2.0/server/core.c,v
> retrieving revision 1.170
> retrieving revision 1.171
> diff -u -r1.170 -r1.171
> --- core.c 22 Apr 2002 08:08:38 -0000 1.170
> +++ core.c 24 Apr 2002 14:31:28 -0000 1.171
> @@ -3167,18 +3167,8 @@
> return errstatus;
> }
>
> - if (r->method_number == M_INVALID) {
> - ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, 0, r,
> - "Invalid method in request %s", r->the_request);
> - return HTTP_NOT_IMPLEMENTED;
> - }
> -
> - if (r->method_number == M_OPTIONS) {
> - return ap_send_http_options(r);
> - }
> -
> if (r->method_number != M_GET && r->method_number != M_POST) {
> - return HTTP_METHOD_NOT_ALLOWED;
> + goto unusual_method;
> }
>
> if (r->finfo.filetype == 0) {
> @@ -3248,6 +3238,18 @@
> APR_BRIGADE_INSERT_TAIL(bb, e);
>
> return ap_pass_brigade(r->output_filters, bb);
> +
> +unusual_method:
> + if (r->method_number == M_INVALID) {
> + ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, 0, r,
> + "Invalid method in request %s", r->the_request);
> + return HTTP_NOT_IMPLEMENTED;
> + }
> +
> + if (r->method_number == M_OPTIONS) {
> + return ap_send_http_options(r);
> + }
> + return HTTP_METHOD_NOT_ALLOWED;
> }
>
> static int net_time_filter(ap_filter_t *f, apr_bucket_brigade *b,
>
>
>
>