Split destructor

This commit is contained in:
Dmitry Stogov 2019-07-04 13:07:47 +03:00
parent df243f19be
commit e3d35b6434

View file

@ -143,7 +143,16 @@ static void php_free_pcre_cache(zval *data) /* {{{ */
pcre_cache_entry *pce = (pcre_cache_entry *) Z_PTR_P(data); pcre_cache_entry *pce = (pcre_cache_entry *) Z_PTR_P(data);
if (!pce) return; if (!pce) return;
pcre2_code_free(pce->re); pcre2_code_free(pce->re);
pefree(pce, !PCRE_G(per_request_cache)); free(pce);
}
/* }}} */
static void php_efree_pcre_cache(zval *data) /* {{{ */
{
pcre_cache_entry *pce = (pcre_cache_entry *) Z_PTR_P(data);
if (!pce) return;
pcre2_code_free(pce->re);
efree(pce);
} }
/* }}} */ /* }}} */
@ -459,7 +468,7 @@ static PHP_RINIT_FUNCTION(pcre)
#endif #endif
if (PCRE_G(per_request_cache)) { if (PCRE_G(per_request_cache)) {
zend_hash_init(&PCRE_G(pcre_cache), 0, NULL, php_free_pcre_cache, 0); zend_hash_init(&PCRE_G(pcre_cache), 0, NULL, php_efree_pcre_cache, 0);
} }
return SUCCESS; return SUCCESS;