Browse Source

revert really bad solution to the zend_init_rsrc_list/zend_destroy_rsrc_list problem, replace with real solution

PECL
Greg Beaver 18 years ago
parent
commit
5233505043
  1. 12
      ext/phar/phar.c

12
ext/phar/phar.c

@ -115,7 +115,9 @@ static void phar_split_cache_list(TSRMLS_D)
/* fake request startup */
PHAR_GLOBALS->request_init = 1;
//zend_init_rsrc_list(TSRMLS_C);
if (zend_hash_init(&EG(regular_list), 0, NULL, list_entry_destructor, 0) == SUCCESS) {
EG(regular_list).nNextFreeElement=1; /* we don't want resource id 0 */
}
PHAR_G(has_bz2) = zend_hash_exists(&module_registry, "bz2", sizeof("bz2"));
PHAR_G(has_zlib) = zend_hash_exists(&module_registry, "zlib", sizeof("zlib"));
/* these two are dummies and will be destroyed later */
@ -149,8 +151,8 @@ finish_error:
PHAR_GLOBALS->phar_alias_map.arBuckets = 0;
zend_hash_destroy(&cached_phars);
zend_hash_destroy(&cached_alias);
//zend_destroy_rsrc_list(&EG(regular_list) TSRMLS_CC);
//memset(&EG(regular_list), 0, sizeof(HashTable));
zend_hash_graceful_reverse_destroy(&EG(regular_list));
memset(&EG(regular_list), 0, sizeof(HashTable));
/* free cached manifests */
PHAR_GLOBALS->request_init = 0;
return;
@ -172,8 +174,8 @@ finish_error:
cached_alias = PHAR_GLOBALS->phar_alias_map;
PHAR_GLOBALS->phar_fname_map.arBuckets = 0;
PHAR_GLOBALS->phar_alias_map.arBuckets = 0;
//zend_destroy_rsrc_list(&EG(regular_list) TSRMLS_CC);
//memset(&EG(regular_list), 0, sizeof(HashTable));
zend_hash_graceful_reverse_destroy(&EG(regular_list));
memset(&EG(regular_list), 0, sizeof(HashTable));
efree(tmp);
}
/* }}} */

Loading…
Cancel
Save