]> granicus.if.org Git - apache/commitdiff
Merge r1713043, r1802305, r1802309 from trunk:
authorJim Jagielski <jim@apache.org>
Wed, 16 Aug 2017 16:50:29 +0000 (16:50 +0000)
committerJim Jagielski <jim@apache.org>
Wed, 16 Aug 2017 16:50:29 +0000 (16:50 +0000)
Save a few bytes in conf pool when processing 'Define'.

+ some minor style issues
+ split long lines

Be explicit and safe (const) with the strings stored in ap_server_config_defines.

Follow up to r1713043.

ap_server_config_defines and ap_server_{pre,post}_read_config are arrays of
*const* strings (must not change after being inserted), make it explicit.

Submitted by: jailletc36, ylavic, ylavic
Reviewed by: ylavic, jorton, jim

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1805223 13f79535-47bb-0310-9956-ffa450edef68

STATUS
server/config.c
server/core.c
server/main.c

diff --git a/STATUS b/STATUS
index 4bc28539d8653acf0ff3ad124e2b701c2712746c..db09002c94437dba865d9ea3f061d226474b23ad 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -116,14 +116,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-  *) core: ap_server_config_defines and ap_server_{pre,post}_read_config
-           constantness and bytes saving, no functional change.
-     trunk patch: http://svn.apache.org/r1713043
-                  http://svn.apache.org/r1802305
-                  http://svn.apache.org/r1802309
-     2.4.x patch: http://home.apache.org/~ylavic/patches/httpd-2.4.x-globals_constantness_and_bytes_saving.patch
-     +1: ylavic, jorton, jim
-
 
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
index 61daeaf4a91902e4fa543a09052a1c645543e9be..983c7dfae3859aabdefb78a456c4b8aa16811ccd 100644 (file)
@@ -1715,14 +1715,14 @@ typedef struct {
 static apr_status_t arr_elts_getstr(void *buf, apr_size_t bufsiz, void *param)
 {
     arr_elts_param_t *arr_param = (arr_elts_param_t *)param;
-    char *elt;
+    const char *elt;
 
     /* End of array reached? */
     if (++arr_param->curr_idx > arr_param->array->nelts)
         return APR_EOF;
 
     /* return the line */
-    elt = ((char **)arr_param->array->elts)[arr_param->curr_idx - 1];
+    elt = ((const char **)arr_param->array->elts)[arr_param->curr_idx - 1];
     if (apr_cpystrn(buf, elt, bufsiz) - (char *)buf >= bufsiz - 1)
         return APR_ENOSPC;
     return APR_SUCCESS;
index 20fa583bdbb283d74144e19f687897566d74f147..de2400d92a0e32ce3382c9df0d77222b5f57092c 100644 (file)
@@ -1435,18 +1435,20 @@ static const char *set_define(cmd_parms *cmd, void *dummy,
     const char *err = ap_check_cmd_context(cmd, NOT_IN_HTACCESS);
     if (err)
         return err;
-    if (ap_strchr_c(name, ':') != NULL)
+    if (ap_strchr_c(name, ':') != NULL) {
         return "Variable name must not contain ':'";
+    }
 
-    if (!saved_server_config_defines)
+    if (!saved_server_config_defines) {
         init_config_defines(cmd->pool);
+    }
     if (!ap_exists_config_define(name)) {
-        char **newv = (char **)apr_array_push(ap_server_config_defines);
-        *newv = apr_pstrdup(cmd->pool, name);
+        *(const char **)apr_array_push(ap_server_config_defines) = name;
     }
     if (value) {
-        if (!server_config_defined_vars)
+        if (!server_config_defined_vars) {
             server_config_defined_vars = apr_table_make(cmd->pool, 5);
+        }
         apr_table_setn(server_config_defined_vars, name, value);
     }
 
@@ -1457,20 +1459,22 @@ static const char *unset_define(cmd_parms *cmd, void *dummy,
                                 const char *name)
 {
     int i;
-    char **defines;
+    const char **defines;
     const char *err = ap_check_cmd_context(cmd, NOT_IN_HTACCESS);
     if (err)
         return err;
-    if (ap_strchr_c(name, ':') != NULL)
+    if (ap_strchr_c(name, ':') != NULL) {
         return "Variable name must not contain ':'";
+    }
 
-    if (!saved_server_config_defines)
+    if (!saved_server_config_defines) {
         init_config_defines(cmd->pool);
+    }
 
-    defines = (char **)ap_server_config_defines->elts;
+    defines = (const char **)ap_server_config_defines->elts;
     for (i = 0; i < ap_server_config_defines->nelts; i++) {
         if (strcmp(defines[i], name) == 0) {
-            defines[i] = *(char **)apr_array_pop(ap_server_config_defines);
+            defines[i] = *(const char **)apr_array_pop(ap_server_config_defines);
             break;
         }
     }
index ba9d91c6d0e3b2c8771d86e39eb2db3ee6ce6b4b..ec0ea68d9b940979cf6ebf80ebb80311335f638a 100644 (file)
@@ -477,9 +477,12 @@ int main(int argc, const char * const argv[])
 
     apr_pool_create(&pcommands, ap_pglobal);
     apr_pool_tag(pcommands, "pcommands");
-    ap_server_pre_read_config  = apr_array_make(pcommands, 1, sizeof(char *));
-    ap_server_post_read_config = apr_array_make(pcommands, 1, sizeof(char *));
-    ap_server_config_defines   = apr_array_make(pcommands, 1, sizeof(char *));
+    ap_server_pre_read_config  = apr_array_make(pcommands, 1,
+                                                sizeof(const char *));
+    ap_server_post_read_config = apr_array_make(pcommands, 1,
+                                                sizeof(const char *));
+    ap_server_config_defines   = apr_array_make(pcommands, 1,
+                                                sizeof(const char *));
 
     error = ap_setup_prelinked_modules(process);
     if (error) {
@@ -497,16 +500,16 @@ int main(int argc, const char * const argv[])
 
     while ((rv = apr_getopt(opt, AP_SERVER_BASEARGS, &c, &opt_arg))
             == APR_SUCCESS) {
-        char **new;
+        const char **new;
 
         switch (c) {
         case 'c':
-            new = (char **)apr_array_push(ap_server_post_read_config);
+            new = (const char **)apr_array_push(ap_server_post_read_config);
             *new = apr_pstrdup(pcommands, opt_arg);
             break;
 
         case 'C':
-            new = (char **)apr_array_push(ap_server_pre_read_config);
+            new = (const char **)apr_array_push(ap_server_pre_read_config);
             *new = apr_pstrdup(pcommands, opt_arg);
             break;
 
@@ -515,7 +518,7 @@ int main(int argc, const char * const argv[])
             break;
 
         case 'D':
-            new = (char **)apr_array_push(ap_server_config_defines);
+            new = (const char **)apr_array_push(ap_server_config_defines);
             *new = apr_pstrdup(pcommands, opt_arg);
             /* Setting -D DUMP_VHOSTS should work like setting -S */
             if (strcmp(opt_arg, "DUMP_VHOSTS") == 0)
@@ -541,7 +544,7 @@ int main(int argc, const char * const argv[])
             break;
 
         case 'X':
-            new = (char **)apr_array_push(ap_server_config_defines);
+            new = (const char **)apr_array_push(ap_server_config_defines);
             *new = "DEBUG";
             break;
 
@@ -574,15 +577,15 @@ int main(int argc, const char * const argv[])
 
         case 'S':
             ap_run_mode = AP_SQ_RM_CONFIG_DUMP;
-            new = (char **)apr_array_push(ap_server_config_defines);
+            new = (const char **)apr_array_push(ap_server_config_defines);
             *new = "DUMP_VHOSTS";
-            new = (char **)apr_array_push(ap_server_config_defines);
+            new = (const char **)apr_array_push(ap_server_config_defines);
             *new = "DUMP_RUN_CFG";
             break;
 
         case 'M':
             ap_run_mode = AP_SQ_RM_CONFIG_DUMP;
-            new = (char **)apr_array_push(ap_server_config_defines);
+            new = (const char **)apr_array_push(ap_server_config_defines);
             *new = "DUMP_MODULES";
             break;