@@ -1705,7 +1705,7 @@ zend_persistent_script *zend_file_cache_script_load(zend_file_handle *file_handl
1705
1705
zend_persistent_script * script ;
1706
1706
zend_file_cache_metainfo info ;
1707
1707
zend_accel_hash_entry * bucket ;
1708
- void * mem , * buf ;
1708
+ void * mem , * checkpoint , * buf ;
1709
1709
int cache_it = 1 ;
1710
1710
unsigned int actual_checksum ;
1711
1711
int ok ;
@@ -1766,20 +1766,21 @@ zend_persistent_script *zend_file_cache_script_load(zend_file_handle *file_handl
1766
1766
return NULL ;
1767
1767
}
1768
1768
1769
+ checkpoint = zend_arena_checkpoint (CG (arena ));
1769
1770
#if defined(__AVX__ ) || defined(__SSE2__ )
1770
1771
/* Align to 64-byte boundary */
1771
- mem = emalloc ( info .mem_size + info .str_size + 64 );
1772
+ mem = zend_arena_alloc ( & CG ( arena ), info .mem_size + info .str_size + 64 );
1772
1773
mem = (void * )(((zend_uintptr_t )mem + 63L ) & ~63L );
1773
1774
#else
1774
- mem = emalloc ( info .mem_size + info .str_size );
1775
+ mem = zend_arena_alloc ( & CG ( arena ), info .mem_size + info .str_size );
1775
1776
#endif
1776
1777
1777
1778
if (read (fd , mem , info .mem_size + info .str_size ) != (ssize_t )(info .mem_size + info .str_size )) {
1778
1779
zend_accel_error (ACCEL_LOG_WARNING , "opcache cannot read from file '%s' (mem)\n" , filename );
1779
1780
zend_file_cache_flock (fd , LOCK_UN );
1780
1781
close (fd );
1781
1782
zend_file_cache_unlink (filename );
1782
- efree ( mem );
1783
+ zend_arena_release ( & CG ( arena ), checkpoint );
1783
1784
efree (filename );
1784
1785
return NULL ;
1785
1786
}
@@ -1793,7 +1794,7 @@ zend_persistent_script *zend_file_cache_script_load(zend_file_handle *file_handl
1793
1794
(actual_checksum = zend_adler32 (ADLER32_INIT , mem , info .mem_size + info .str_size )) != info .checksum ) {
1794
1795
zend_accel_error (ACCEL_LOG_WARNING , "corrupted file '%s' excepted checksum: 0x%08x actual checksum: 0x%08x\n" , filename , info .checksum , actual_checksum );
1795
1796
zend_file_cache_unlink (filename );
1796
- efree ( mem );
1797
+ zend_arena_release ( & CG ( arena ), checkpoint );
1797
1798
efree (filename );
1798
1799
return NULL ;
1799
1800
}
@@ -1813,7 +1814,7 @@ zend_persistent_script *zend_file_cache_script_load(zend_file_handle *file_handl
1813
1814
script = (zend_persistent_script * )bucket -> data ;
1814
1815
if (!script -> corrupted ) {
1815
1816
zend_shared_alloc_unlock ();
1816
- efree ( mem );
1817
+ zend_arena_release ( & CG ( arena ), checkpoint );
1817
1818
efree (filename );
1818
1819
return script ;
1819
1820
}
@@ -1863,7 +1864,7 @@ zend_persistent_script *zend_file_cache_script_load(zend_file_handle *file_handl
1863
1864
zend_shared_alloc_unlock ();
1864
1865
goto use_process_mem ;
1865
1866
} else {
1866
- efree ( mem );
1867
+ zend_arena_release ( & CG ( arena ), checkpoint );
1867
1868
efree (filename );
1868
1869
return NULL ;
1869
1870
}
@@ -1881,7 +1882,7 @@ zend_persistent_script *zend_file_cache_script_load(zend_file_handle *file_handl
1881
1882
zend_shared_alloc_unlock ();
1882
1883
zend_accel_error (ACCEL_LOG_INFO , "File cached script loaded into memory '%s'" , ZSTR_VAL (script -> script .filename ));
1883
1884
1884
- efree ( mem );
1885
+ zend_arena_release ( & CG ( arena ), checkpoint );
1885
1886
}
1886
1887
efree (filename );
1887
1888
0 commit comments