Changeset 1045 for trunk/xcache/xc_extension.c
- Timestamp:
- 07/25/2012 11:32:11 AM (10 months ago)
- Files:
-
- 1 modified
-
trunk/xcache/xc_extension.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/xcache/xc_extension.c
r1026 r1045 5 5 6 6 7 int xcache_zend_extension_ register(zend_extension *new_extension, zend_bool prepend) /* {{{ */7 int xcache_zend_extension_prepend(zend_extension *new_extension) /* {{{ */ 8 8 { 9 9 zend_extension extension; … … 14 14 zend_extension_dispatch_message(ZEND_EXTMSG_NEW_EXTENSION, &extension); 15 15 16 if (prepend) { 17 zend_llist_prepend_element(&zend_extensions, &extension); 18 } 19 else { 20 zend_llist_add_element(&zend_extensions, &extension); 21 } 22 TRACE("%s", "registered"); 16 zend_llist_prepend_element(&zend_extensions, &extension); 17 TRACE("%s", "prepended"); 23 18 return SUCCESS; 24 19 } … … 41 36 } 42 37 /* }}} */ 43 int xcache_zend_extension_ unregister(zend_extension *extension) /* {{{ */38 int xcache_zend_extension_remove(zend_extension *extension) /* {{{ */ 44 39 { 45 40 zend_extension *ext = zend_get_extension(extension->name); … … 56 51 /* }}} */ 57 52 58 zend_llist_element *xcache_llist_get_element_by_zend_extension(zend_llist *l, const char *extension_name) /* {{{ */53 int xcache_zend_extension_count_by_prefix(zend_llist *l, const char *extension_name_prefix) /* {{{ */ 59 54 { 60 55 zend_llist_element *element; 56 size_t n = strlen(extension_name_prefix); 57 int count = 0; 61 58 62 59 for (element = zend_extensions.head; element; element = element->next) { 63 60 zend_extension *extension = (zend_extension *) element->data; 64 61 65 if ( !strcmp(extension->name, extension_name)) {66 return element;62 if (strncmp(extension->name, extension_name_prefix, n) == 0) { 63 ++count; 67 64 } 68 65 } 69 return NULL; 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 } 70 89 } 71 90 /* }}} */

