]> granicus.if.org Git - apache/commitdiff
restructured the conditional logic in ap_merge_per_dir_configs() for faster execution
authorBrian Pane <brianp@apache.org>
Fri, 23 Nov 2001 10:56:31 +0000 (10:56 +0000)
committerBrian Pane <brianp@apache.org>
Fri, 23 Nov 2001 10:56:31 +0000 (10:56 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92141 13f79535-47bb-0310-9956-ffa450edef68

server/config.c

index 291d129ee07a82205611f471861eec1cd6d39fef..b44957f8026fdab08e1e758c5dd942f64bfb37f6 100644 (file)
@@ -255,13 +255,19 @@ AP_CORE_DECLARE(ap_conf_vector_t*) ap_merge_per_dir_configs(apr_pool_t *p,
     module *modp;
 
     for (modp = ap_top_module; modp; modp = modp->next) {
-       merger_func df = modp->merge_dir_config;
        int i = modp->module_index;
 
-       if (df && new_vector[i] && base_vector[i])
-           conf_vector[i] = (*df) (p, base_vector[i], new_vector[i]);
-       else
-           conf_vector[i] = new_vector[i] ? new_vector[i] : base_vector[i];
+        if (!new_vector[i]) {
+            conf_vector[i] = base_vector[i];
+        }
+        else {
+            merger_func df = modp->merge_dir_config;
+            if (df && base_vector[i]) {
+                conf_vector[i] = (*df) (p, base_vector[i], new_vector[i]);
+            }
+            else
+                conf_vector[i] = new_vector[i];
+        }
     }
 
     return (ap_conf_vector_t *) conf_vector;