You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by pq...@apache.org on 2005/06/14 02:16:48 UTC

svn commit: r190535 - /httpd/httpd/trunk/modules/cache/mod_cache.h /httpd/httpd/trunk/modules/cache/mod_disk_cache.c

Author: pquerna
Date: Mon Jun 13 17:16:48 2005
New Revision: 190535

URL: http://svn.apache.org/viewcvs?rev=190535&view=rev
Log:
* cache/mod_disk_cache.c: Make most members of disk_cache_object into const char*. This removes the need to cast the const out in several places.
* cache/mod_cache.h: Make cache_object.key a const.


Modified:
    httpd/httpd/trunk/modules/cache/mod_cache.h
    httpd/httpd/trunk/modules/cache/mod_disk_cache.c

Modified: httpd/httpd/trunk/modules/cache/mod_cache.h
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/cache/mod_cache.h?rev=190535&r1=190534&r2=190535&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/cache/mod_cache.h (original)
+++ httpd/httpd/trunk/modules/cache/mod_cache.h Mon Jun 13 17:16:48 2005
@@ -167,7 +167,7 @@
  */
 typedef struct cache_object cache_object_t;
 struct cache_object {
-    char *key;
+    const char *key;
     cache_object_t *next;
     cache_info info;
     /* Opaque portion (specific to the implementation) of the cache object */

Modified: httpd/httpd/trunk/modules/cache/mod_disk_cache.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/cache/mod_disk_cache.c?rev=190535&r1=190534&r2=190535&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/cache/mod_disk_cache.c (original)
+++ httpd/httpd/trunk/modules/cache/mod_disk_cache.c Mon Jun 13 17:16:48 2005
@@ -75,12 +75,12 @@
  */
 typedef struct disk_cache_object {
     const char *root;        /* the location of the cache directory */
-    char *tempfile;          /* temp file tohold the content */
-    char *datafile;          /* name of file where the data will go */
-    char *hdrsfile;          /* name of file where the hdrs will go */
-    char *hashfile;          /* Computed hash key for this URI */
-    char *name;   /* Requested URI without vary bits - suitable for mortals. */
-    char *key;    /* On-disk prefix; URI with Vary bits (if present) */
+    const char *tempfile;    /* temp file tohold the content */
+    const char *datafile;    /* name of file where the data will go */
+    const char *hdrsfile;    /* name of file where the hdrs will go */
+    const char *hashfile;    /* Computed hash key for this URI */
+    const char *name;   /* Requested URI without vary bits - suitable for mortals. */
+    const char *key;    /* On-disk prefix; URI with Vary bits (if present) */
     apr_file_t *fd;          /* data file */
     apr_file_t *hfd;         /* headers file */
     apr_file_t *tfd;         /* temporary file for data */
@@ -146,12 +146,12 @@
                        CACHE_DATA_SUFFIX, NULL);
 }
 
-static void mkdir_structure(disk_cache_conf *conf, char *file, apr_pool_t *pool)
+static void mkdir_structure(disk_cache_conf *conf, const char *file, apr_pool_t *pool)
 {
     apr_status_t rv;
     char *p;
 
-    for (p = file + conf->cache_root_len + 1;;) {
+    for (p = (char*)file + conf->cache_root_len + 1;;) {
         p = strchr(p, '/');
         if (!p)
             break;
@@ -255,8 +255,8 @@
     return APR_SUCCESS;
 }
 
-static char* regen_key(apr_pool_t *p, apr_table_t *headers,
-                       apr_array_header_t *varray, const char *oldkey)
+static const char* regen_key(apr_pool_t *p, apr_table_t *headers,
+                             apr_array_header_t *varray, const char *oldkey)
 {
     struct iovec *iov;
     int i, k;
@@ -363,7 +363,7 @@
 {
     apr_uint32_t format;
     apr_size_t len;
-    char *nkey;
+    const char *nkey;
     apr_status_t rc;
     static int error_logged = 0;
     disk_cache_conf *conf = ap_get_module_config(r->server->module_config,
@@ -448,12 +448,12 @@
          * start of the file again, so that later reads work. 
          */
         apr_file_seek(dobj->hfd, APR_SET, &offset);
-        nkey = (char*)key;
+        nkey = key;
     }
 
     obj->key = nkey;
     dobj->key = nkey;
-    dobj->name = (char*)key;
+    dobj->name = key;
     dobj->datafile = data_file(r->pool, conf, dobj, nkey);
     dobj->tempfile = apr_pstrcat(r->pool, conf->cache_root, AP_TEMPFILE, NULL);
 
@@ -813,7 +813,7 @@
 
     iov[0].iov_base = (void*)&disk_info;
     iov[0].iov_len = sizeof(disk_cache_info_t);
-    iov[1].iov_base = dobj->name;
+    iov[1].iov_base = (void*)dobj->name;
     iov[1].iov_len = disk_info.name_len;
 
     rv = apr_file_writev(dobj->hfd, (const struct iovec *) &iov, 2, &amt);



Re: svn commit: r190535 - /httpd/httpd/trunk/modules/cache/mod_cache.h /httpd/httpd/trunk/modules/cache/mod_disk_cache.c

Posted by Paul Querna <ch...@force-elite.com>.
Garrett Rooney wrote:

> pquerna@apache.org wrote:
>
>> @@ -813,7 +813,7 @@
>>  
>>      iov[0].iov_base = (void*)&disk_info;
>>      iov[0].iov_len = sizeof(disk_cache_info_t);
>> -    iov[1].iov_base = dobj->name;
>> +    iov[1].iov_base = (void*)dobj->name;
>>      iov[1].iov_len = disk_info.name_len;
>>  
>>      rv = apr_file_writev(dobj->hfd, (const struct iovec *) &iov, 2, 
>> &amt);
>>
>
> This isn't a problem with your change, since the cast to void * you 
> added is needed to remove the constness of dobj->name, but why is 
> &disk_info being cast?  Any non-const pointer should automatically be 
> converted to a void pointer, so that cast can probably be dropped.


Why?  I don't know, I didn't write that code :)

Fixed in r190547.

Thanks,

-Paul


Re: svn commit: r190535 - /httpd/httpd/trunk/modules/cache/mod_cache.h /httpd/httpd/trunk/modules/cache/mod_disk_cache.c

Posted by Paul Querna <ch...@corelands.com>.
Garrett Rooney wrote:

> pquerna@apache.org wrote:
>
>> @@ -813,7 +813,7 @@
>>  
>>      iov[0].iov_base = (void*)&disk_info;
>>      iov[0].iov_len = sizeof(disk_cache_info_t);
>> -    iov[1].iov_base = dobj->name;
>> +    iov[1].iov_base = (void*)dobj->name;
>>      iov[1].iov_len = disk_info.name_len;
>>  
>>      rv = apr_file_writev(dobj->hfd, (const struct iovec *) &iov, 2, 
>> &amt);
>>
>
> This isn't a problem with your change, since the cast to void * you 
> added is needed to remove the constness of dobj->name, but why is 
> &disk_info being cast?  Any non-const pointer should automatically be 
> converted to a void pointer, so that cast can probably be dropped.


Why?  I don't know, I didn't write that code :)

Fixed in r190547.

Thanks,

-Paul

Re: svn commit: r190535 - /httpd/httpd/trunk/modules/cache/mod_cache.h /httpd/httpd/trunk/modules/cache/mod_disk_cache.c

Posted by Garrett Rooney <ro...@electricjellyfish.net>.
pquerna@apache.org wrote:

> @@ -813,7 +813,7 @@
>  
>      iov[0].iov_base = (void*)&disk_info;
>      iov[0].iov_len = sizeof(disk_cache_info_t);
> -    iov[1].iov_base = dobj->name;
> +    iov[1].iov_base = (void*)dobj->name;
>      iov[1].iov_len = disk_info.name_len;
>  
>      rv = apr_file_writev(dobj->hfd, (const struct iovec *) &iov, 2, &amt);
>

This isn't a problem with your change, since the cast to void * you 
added is needed to remove the constness of dobj->name, but why is 
&disk_info being cast?  Any non-const pointer should automatically be 
converted to a void pointer, so that cast can probably be dropped.

-garrett