| 53 | | int xcache_zend_extension_count_by_prefix(zend_llist *l, const char *extension_name_prefix) /* {{{ */ |
| 54 | | { |
| 55 | | zend_llist_element *element; |
| 56 | | size_t n = strlen(extension_name_prefix); |
| 57 | | int count = 0; |
| 58 | | |
| 59 | | for (element = zend_extensions.head; element; element = element->next) { |
| 60 | | zend_extension *extension = (zend_extension *) element->data; |
| 61 | | |
| 62 | | if (strncmp(extension->name, extension_name_prefix, n) == 0) { |
| 63 | | ++count; |
| 64 | | } |
| 65 | | } |
| 66 | | return count; |
| 67 | | } |
| 68 | | /* }}} */ |
| 69 | | void xcache_zend_extension_unlink_by_prefix(xc_stack_t *linked, zend_llist *l, const char *extension_name_prefix) /* {{{ */ |
| 70 | | { |
| 71 | | size_t n = strlen(extension_name_prefix); |
| 72 | | zend_llist_element *unlinked = NULL; |
| 73 | | zend_llist_element *element, *next; |
| 74 | | |
| 75 | | for (element = zend_extensions.head; element; element = next) { |
| 76 | | zend_extension *extension = (zend_extension *) element->data; |
| 77 | | next = element->next; |
| 78 | | |
| 79 | | if (strncmp(extension->name, extension_name_prefix, n) == 0) { |
| 80 | | xcache_llist_unlink(l, element); |
| 81 | | xc_stack_push(linked, element); |
| 82 | | } |
| 83 | | } |
| 84 | | |
| 85 | | for (element = zend_extensions.head; element; element = next) { |
| 86 | | zend_extension *extension = (zend_extension *) element->data; |
| 87 | | next = element->next; |
| 88 | | } |
| 89 | | } |
| 90 | | /* }}} */ |