Skip to content

Commit 1cdf3fa

Browse files
committed
fix build
1 parent 906b92d commit 1cdf3fa

File tree

3 files changed

+33
-35
lines changed

3 files changed

+33
-35
lines changed

ext/opcache/zend_accelerator_module.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ static int filename_is_in_file_cache(zend_string *filename)
380380
zend_stream_init_filename_ex(&handle, filename);
381381
handle.opened_path = realpath;
382382

383-
zend_result result = zend_file_cache_script_validate(&handle);
383+
zend_result result = zend_file_cache_validate(&handle);
384384

385385
zend_destroy_file_handle(&handle);
386386

ext/opcache/zend_file_cache.c

+32-26
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,12 @@ typedef struct _zend_file_cache_metainfo {
202202
uint32_t checksum;
203203
} zend_file_cache_metainfo;
204204

205+
typedef struct _zend_file_cache_handle {
206+
zend_string *full_path;
207+
zend_file_cache_metainfo info;
208+
void *mem, *checkpoint;
209+
} zend_file_cache_handle;
210+
205211
static int zend_file_cache_mkdir(char *filename, size_t start)
206212
{
207213
char *s = filename + start;
@@ -1813,7 +1819,7 @@ static void zend_file_cache_unserialize(zend_persistent_script *script,
18131819
zend_file_cache_unserialize_early_bindings(script, buf);
18141820
}
18151821

1816-
zend_always_inline zend_result zend_file_cache_open(zend_file_handle *file_handle, zend_file_cache_handle *cache_handle)
1822+
zend_result zend_file_cache_validate_and_open(zend_file_handle *file_handle, zend_file_cache_handle *cache_handle)
18171823
{
18181824
int fd;
18191825
char *filename;
@@ -1822,9 +1828,9 @@ zend_always_inline zend_result zend_file_cache_open(zend_file_handle *file_handl
18221828
if (!file_handle || !file_handle->opened_path) {
18231829
return FAILURE;
18241830
}
1825-
zend_file_cache_handle->full_path = file_handle->opened_path
1831+
cache_handle->full_path = file_handle->opened_path;
18261832

1827-
filename = zend_file_cache_get_bin_file_path(zend_file_cache_handle->full_path);
1833+
filename = zend_file_cache_get_bin_file_path(cache_handle->full_path);
18281834
fd = zend_file_cache_open(filename, O_RDONLY | O_BINARY);
18291835
if (fd < 0) {
18301836
goto failure; // Open failed
@@ -1835,35 +1841,35 @@ zend_always_inline zend_result zend_file_cache_open(zend_file_handle *file_handl
18351841
}
18361842

18371843

1838-
if (read(fd, &zend_file_cache_handle->info, sizeof(zend_file_cache_handle->info)) != sizeof(zend_file_cache_handle->info)) {
1844+
if (read(fd, &cache_handle->info, sizeof(cache_handle->info)) != sizeof(cache_handle->info)) {
18391845
zend_accel_error(ACCEL_LOG_WARNING, "opcache cannot read from file '%s' (info)\n", filename);
18401846
goto failure_unlock_close;
18411847
}
18421848

18431849
// Verify header
1844-
if (memcmp(zend_file_cache_handle->info.magic, "OPCACHE", 8) != 0 || memcmp(zend_file_cache_handle->info.system_id, zend_system_id, 32) != 0) {
1850+
if (memcmp(cache_handle->info.magic, "OPCACHE", 8) != 0 || memcmp(cache_handle->info.system_id, zend_system_id, 32) != 0) {
18451851
zend_accel_error(ACCEL_LOG_WARNING, "opcache invalid header in file '%s'\n", filename);
18461852
goto failure_unlock_close;
18471853
}
18481854

18491855
// Verify timestamp if required
18501856
if (ZCG(accel_directives).validate_timestamps &&
1851-
zend_get_file_handle_timestamp(file_handle, NULL) != zend_file_cache_handle->info.timestamp) {
1857+
zend_get_file_handle_timestamp(file_handle, NULL) != cache_handle->info.timestamp) {
18521858
goto failure_unlock_close;
18531859
}
18541860

1855-
zend_file_cache_handle->checkpoint = zend_arena_checkpoint(CG(arena));
1861+
cache_handle->checkpoint = zend_arena_checkpoint(CG(arena));
18561862
#if defined(__AVX__) || defined(__SSE2__)
18571863
/* Align to 64-byte boundary */
1858-
zend_file_cache_handle->mem = zend_arena_alloc(&CG(arena), zend_file_cache_handle->info.mem_size + zend_file_cache_handle->info.str_size + 64);
1859-
zend_file_cache_handle->mem = (void*)(((uintptr_t)zend_file_cache_handle->mem + 63L) & ~63L);
1864+
cache_handle->mem = zend_arena_alloc(&CG(arena), cache_handle->info.mem_size + cache_handle->info.str_size + 64);
1865+
cache_handle->mem = (void*)(((uintptr_t)cache_handle->mem + 63L) & ~63L);
18601866
#else
1861-
zend_file_cache_handle->mem = zend_arena_alloc(&CG(arena), zend_file_cache_handle->info.mem_size + zend_file_cache_handle->info.str_size);
1867+
cache_handle->mem = zend_arena_alloc(&CG(arena), cache_handle->info.mem_size + cache_handle->info.str_size);
18621868
#endif
18631869

1864-
if (read(fd, zend_file_cache_handle->mem, zend_file_cache_handle->info.mem_size + zend_file_cache_handle->info.str_size) != (ssize_t)(zend_file_cache_handle->info.mem_size + zend_file_cache_handle->info.str_size)) {
1870+
if (read(fd, cache_handle->mem, cache_handle->info.mem_size + cache_handle->info.str_size) != (ssize_t)(cache_handle->info.mem_size + cache_handle->info.str_size)) {
18651871
zend_accel_error(ACCEL_LOG_WARNING, "opcache cannot read from file '%s' (mem)\n", filename);
1866-
zend_arena_release(&CG(arena), zend_file_cache_handle->checkpoint);
1872+
zend_arena_release(&CG(arena), cache_handle->checkpoint);
18671873
goto failure_unlock_close;
18681874
}
18691875
if (zend_file_cache_flock(fd, LOCK_UN) != 0) {
@@ -1873,9 +1879,9 @@ zend_always_inline zend_result zend_file_cache_open(zend_file_handle *file_handl
18731879

18741880
/* verify checksum */
18751881
if (ZCG(accel_directives).file_cache_consistency_checks &&
1876-
(actual_checksum = zend_adler32(ADLER32_INIT, zend_file_cache_handle->mem, zend_file_cache_handle->info.mem_size + zend_file_cache_handle->info.str_size)) != zend_file_cache_handle->info.checksum) {
1877-
zend_accel_error(ACCEL_LOG_WARNING, "corrupted file '%s' excepted checksum: 0x%08x actual checksum: 0x%08x\n", filename, zend_file_cache_handle->info.checksum, actual_checksum);
1878-
zend_arena_release(&CG(arena), zend_file_cache_handle->checkpoint);
1882+
(actual_checksum = zend_adler32(ADLER32_INIT, cache_handle->mem, cache_handle->info.mem_size + cache_handle->info.str_size)) != cache_handle->info.checksum) {
1883+
zend_accel_error(ACCEL_LOG_WARNING, "corrupted file '%s' excepted checksum: 0x%08x actual checksum: 0x%08x\n", filename, cache_handle->info.checksum, actual_checksum);
1884+
zend_arena_release(&CG(arena), cache_handle->checkpoint);
18791885
goto failure;
18801886
}
18811887

@@ -1895,18 +1901,18 @@ zend_always_inline zend_result zend_file_cache_open(zend_file_handle *file_handl
18951901
return FAILURE;
18961902
}
18971903

1898-
zend_always_inline void zend_file_cache_close(zend_file_cache_handle *cache_handle)
1904+
void zend_file_cache_close(zend_file_cache_handle *cache_handle)
18991905
{
1900-
zend_arena_release(&CG(arena), zend_file_cache_handle->checkpoint);
1906+
zend_arena_release(&CG(arena), cache_handle->checkpoint);
19011907
}
19021908

19031909
zend_result zend_file_cache_validate(zend_file_handle *file_handle)
19041910
{
19051911
zend_file_cache_handle cache_handle;
19061912

1907-
zend_result ret = zend_file_cache_open(file_handle, &cache_handle);
1913+
zend_result ret = zend_file_cache_validate_and_open(file_handle, &cache_handle);
19081914

1909-
if (res == SUCCESS) {
1915+
if (ret == SUCCESS) {
19101916
zend_file_cache_close(&cache_handle);
19111917
}
19121918

@@ -1922,7 +1928,7 @@ zend_persistent_script *zend_file_cache_script_load(zend_file_handle *file_handl
19221928
bool cache_it = true;
19231929
bool ok;
19241930

1925-
if (zend_file_cache_open(file_handle, &cache_handle) == FAILURE) {
1931+
if (zend_file_cache_validate_and_open(file_handle, &cache_handle) == FAILURE) {
19261932
return NULL;
19271933
}
19281934

@@ -1937,7 +1943,7 @@ zend_persistent_script *zend_file_cache_script_load(zend_file_handle *file_handl
19371943
/* Check if we still need to put the file into the cache (may be it was
19381944
* already stored by another process. This final check is done under
19391945
* exclusive lock) */
1940-
bucket = zend_accel_hash_find_entry(&ZCSG(hash), cache_handle->full_path);
1946+
bucket = zend_accel_hash_find_entry(&ZCSG(hash), cache_handle.full_path);
19411947
if (bucket) {
19421948
script = (zend_persistent_script *)bucket->data;
19431949
if (!script->corrupted) {
@@ -1955,23 +1961,23 @@ zend_persistent_script *zend_file_cache_script_load(zend_file_handle *file_handl
19551961
goto use_process_mem;
19561962
}
19571963

1958-
buf = zend_shared_alloc_aligned(cache_handle->info.mem_size);
1964+
buf = zend_shared_alloc_aligned(cache_handle.info.mem_size);
19591965

19601966
if (!buf) {
19611967
zend_accel_schedule_restart_if_necessary(ACCEL_RESTART_OOM);
19621968
zend_shared_alloc_unlock();
19631969
goto use_process_mem;
19641970
}
1965-
memcpy(buf, cache_handle->mem, cache_handle->info.mem_size);
1971+
memcpy(buf, cache_handle.mem, cache_handle.info.mem_size);
19661972
zend_map_ptr_extend(ZCSG(map_ptr_last));
19671973
} else {
19681974
use_process_mem:
1969-
buf = cache_handle->mem;
1975+
buf = cache_handle.mem;
19701976
cache_it = false;
19711977
}
19721978

1973-
ZCG(cache_handle->mem) = ((char*)cache_handle->mem + cache_handle->info.mem_size);
1974-
script = (zend_persistent_script*)((char*)buf + cache_handle->info.script_offset);
1979+
ZCG(mem) = ((char*)cache_handle.mem + cache_handle.info.mem_size);
1980+
script = (zend_persistent_script*)((char*)buf + cache_handle.info.script_offset);
19751981
script->corrupted = !cache_it; /* used to check if script restored to SHM or process memory */
19761982

19771983
ok = true;

ext/opcache/zend_file_cache.h

-8
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,7 @@
1919
#ifndef ZEND_FILE_CACHE_H
2020
#define ZEND_FILE_CACHE_H
2121

22-
typedef struct _zend_file_cache_handle {
23-
zend_string *full_path;
24-
zend_file_cache_metainfo info;
25-
void *mem, *checkpoint;
26-
} zend_file_cache_handle;
27-
2822
int zend_file_cache_script_store(zend_persistent_script *script, bool in_shm);
29-
zend_always_inline zend_result zend_file_cache_open(zend_file_handle *file_handle, zend_file_cache_handle *cache_handle);
30-
zend_always_inline void zend_file_cache_close(zend_file_cache_handle *cache_handle);
3123
zend_result zend_file_cache_validate(zend_file_handle *file_handle);
3224
zend_persistent_script *zend_file_cache_script_load(zend_file_handle *file_handle);
3325
void zend_file_cache_invalidate(zend_string *full_path);

0 commit comments

Comments
 (0)