- php_persistent_handle_list_t *list;
-
- if ((list = php_persistent_handle_list_find(provider, ident_str, ident_len TSRMLS_CC))) {
- if (provider->list.used >= PHP_RAPHF_G->persistent_handle.limit) {
-#if PHP_RAPHF_DEBUG_PHANDLES
- fprintf(stderr, "DESTROY: %p\n", *handle);
-#endif
- php_resource_factory_handle_dtor(&provider->rf, *handle TSRMLS_CC);
- } else {
- if (SUCCESS != zend_hash_next_index_insert(&list->free, (void *) handle, sizeof(void *), NULL)) {
- return FAILURE;
- }
- }
-
- *handle = NULL;
- --provider->list.used;
- --list->used;
- return SUCCESS;
- }
-
- return FAILURE;
-}
-
-static inline STATUS php_persistent_handle_do_accrete(php_persistent_handle_provider_t *provider, const char *ident_str, size_t ident_len, void *old_handle, void **new_handle TSRMLS_DC)
-{
- php_persistent_handle_list_t *list;
-
- if ((*new_handle = php_resource_factory_handle_copy(&provider->rf, old_handle TSRMLS_CC))) {
- if ((list = php_persistent_handle_list_find(provider, ident_str, ident_len TSRMLS_CC))) {
- ++list->used;
- }
- ++provider->list.used;
- return SUCCESS;
- }
- return FAILURE;
-}
-
-static void php_persistent_handle_hash_dtor(void *p)
-{
- php_persistent_handle_provider_t *provider = (php_persistent_handle_provider_t *) p;