php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | |
Patch htscanner_php7.0.patch for htscanner Bug #72269Patch version 2016-06-05 20:37 UTC Return to Bug #72269 | Download this patchThis patch is obsolete Obsoleted by patches:
This patch renders other patches obsolete Obsolete patches: Patch Revisions: 2016-07-03 10:11 UTC | 2016-07-02 21:32 UTC | 2016-07-02 14:02 UTC | 2016-06-05 20:51 UTC | 2016-06-05 20:37 UTC | 2016-05-31 20:14 UTCDeveloper: roel@abittechnical.comdiff --git a/htscanner.c b/htscanner.c index 55bc68b..39ad6dc 100644 index 55bc68b..9490afb 100644 --- a/htscanner.c +++ b/htscanner.c @@ -147,18 +147,39 @@ static int value_hnd(char *name, char *value, int flag, int mode, HashTable *ini #endif + ini_entries_cache = emalloc(sizeof(HashTable)); if (!ini_entries_cache) { return FAILURE; } @@ -347,31 +383,56 @@ static int htscanner_main(TSRMLS_D) /* {{{ */ @@ -347,26 +383,48 @@ static int htscanner_main(TSRMLS_D) /* {{{ */ #endif htscannerMutexLock(ini_entries_cache_mutex); +#if PHP_VERSION_ID < 70000 +#if PHP_VERSION_ID < 70000 char *value, *name; - HashPosition pos; uint len; + HashPosition pos; +#else + zend_string *name; + zval *value; +#endif +#endif + HashPosition pos; ulong num; +#if PHP_VERSION_ID < 70000 zend_hash_internal_pointer_reset_ex(entry_fetched->ini_entries, &pos); +#if PHP_VERSION_ID < 70000 while (SUCCESS == zend_hash_get_current_data_ex(entry_fetched->ini_entries, (void**)&value, &pos)) { zend_hash_get_current_key_ex(entry_fetched->ini_entries, &name, &len, &num, 0, &pos); htscanner_debug("setting: %s = %s (cache hit)", name, value); +#else + ZEND_HASH_FOREACH_KEY_VAL(entry_fetched->ini_entries, num, name, value) { + while ((value = zend_hash_get_current_data_ex(entry_fetched->ini_entries, &pos))) { + zend_hash_get_current_key_ex(entry_fetched->ini_entries, &name, &num, &pos); + htscanner_debug("setting: %s = %s (cache hit)", name, Z_STRVAL_P(value)); +#endif #if PHP_VERSION_ID < 50204 if (zend_alter_ini_entry(name, len, value, strlen(value), PHP_INI_PERDIR, PHP_INI_STAGE_PHP_INI_STAGE_RUNTIME) == FAILURE) { Line 145 (now 146), was 27 lines, now 18 lines +#endif htscannerMutexUnlock(ini_entries_cache_mutex); RETURN_FAILURE(msg); } +#if PHP_VERSION_ID < 70000 zend_hash_move_forward_ex(entry_fetched->ini_entries, &pos); } +#else + } ZEND_HASH_FOREACH_END(); +#endif htscannerMutexUnlock(ini_entries_cache_mutex); return SUCCESS; } @@ -380,7 +441,7 @@ static int htscanner_main(TSRMLS_D) /* {{{ */ @@ -380,7 +438,7 @@ static int htscanner_main(TSRMLS_D) /* {{{ */ /* parse, insert, assign */ if (HTG(default_ttl)) { entry.created_on = t; - entry.ini_entries = ini_entries = malloc(sizeof(HashTable)); + entry.ini_entries = ini_entries = emalloc(sizeof(HashTable)); if (ini_entries) zend_hash_init(ini_entries, 0, NULL, NULL, 1); } @@ -405,8 +466,13 @@ static int htscanner_main(TSRMLS_D) /* {{{ */ @@ -405,8 +463,13 @@ static int htscanner_main(TSRMLS_D) /* {{{ */ } } +#if PHP_VERSION_ID < 70000 +#endif htscannerMutexUnlock(ini_entries_cache_mutex); return SUCCESS; @@ -451,7 +517,7 @@ static PHP_MSHUTDOWN_FUNCTION(htscanner) /* {{{ */ @@ -451,7 +514,7 @@ static PHP_MSHUTDOWN_FUNCTION(htscanner) /* {{{ */ if (ini_entries_cache) { htscannerMutexLock(ini_entries_cache_mutex); zend_hash_destroy(ini_entries_cache); - free(ini_entries_cache); |
Copyright © 2001-2024 The PHP Group All rights reserved. |
Last updated: Sat Sep 07 20:01:28 2024 UTC |