diff options
author | Anatol Belski <ab@php.net> | 2016-11-13 16:48:36 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2016-11-13 20:21:44 +0100 |
commit | 4d790486b8036a418544301425bc6f89db990d73 (patch) | |
tree | 408edebd30d36560f0906fa1d1c9e9cb5d94f3a7 /Zend | |
parent | 882bcb724067a01daeae2adc5d6359807780f0ef (diff) | |
download | php-git-4d790486b8036a418544301425bc6f89db990d73.tar.gz |
reduce realpath_cache_bucket size by 8 bytes on 64-bit
This limits the path length to 64kb which is already far above the
use case. In return, the whole path cache storage size is reduced
by 8kb.
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_virtual_cwd.c | 2 | ||||
-rw-r--r-- | Zend/zend_virtual_cwd.h | 14 |
2 files changed, 8 insertions, 8 deletions
diff --git a/Zend/zend_virtual_cwd.c b/Zend/zend_virtual_cwd.c index 8192b424b4..420bc54a7b 100644 --- a/Zend/zend_virtual_cwd.c +++ b/Zend/zend_virtual_cwd.c @@ -648,7 +648,7 @@ static inline void realpath_cache_add(const char *path, int path_len, const char memcpy(bucket->realpath, realpath, realpath_len+1); } bucket->realpath_len = realpath_len; - bucket->is_dir = is_dir; + bucket->is_dir = is_dir > 0; #ifdef ZEND_WIN32 bucket->is_rvalid = 0; bucket->is_readable = 0; diff --git a/Zend/zend_virtual_cwd.h b/Zend/zend_virtual_cwd.h index 1f927bb035..538a2f8a73 100644 --- a/Zend/zend_virtual_cwd.h +++ b/Zend/zend_virtual_cwd.h @@ -204,14 +204,14 @@ typedef struct _realpath_cache_bucket { char *realpath; struct _realpath_cache_bucket *next; time_t expires; - int path_len; - int realpath_len; - int is_dir; + uint16_t path_len; + uint16_t realpath_len; + uint8_t is_dir:1; #ifdef ZEND_WIN32 - unsigned char is_rvalid; - unsigned char is_readable; - unsigned char is_wvalid; - unsigned char is_writable; + uint8_t is_rvalid:1; + uint8_t is_readable:1; + uint8_t is_wvalid:1; + uint8_t is_writable:1; #endif } realpath_cache_bucket; |