U_CFUNC zend_function *IntlPartsIterator_get_method(zend_object **object_ptr, zend_string *method, const zval *key) { zend_function *ret; zend_string *lc_method_name; ALLOCA_FLAG(use_heap); if (key == NULL) { STR_ALLOCA_ALLOC(lc_method_name, method->len, use_heap); zend_str_tolower_copy(lc_method_name->val, method->val, method->len); } else { lc_method_name = Z_STR_P(key); } if (method->len == sizeof("getrulestatus") - 1 && memcmp("getrulestatus", lc_method_name->val, lc_method_name->len) == 0) { IntlIterator_object *obj = php_intl_iterator_fetch_object(*object_ptr); if (obj->iterator && !Z_ISUNDEF(obj->iterator->data)) { zval *break_iter_zv = &obj->iterator->data; *object_ptr = Z_OBJ_P(break_iter_zv); ret = Z_OBJ_HANDLER_P(break_iter_zv, get_method)(object_ptr, method, key); goto end; } } ret = std_object_handlers.get_method(object_ptr, method, key); end: if (key == NULL) { STR_ALLOCA_FREE(lc_method_name, use_heap); } return ret; }
static inline int unserialize_allowed_class(zend_string *class_name, HashTable *classes) { zend_string *lcname; int res; ALLOCA_FLAG(use_heap) if(classes == NULL) { return 1; } if(!zend_hash_num_elements(classes)) { return 0; } STR_ALLOCA_ALLOC(lcname, class_name->len, use_heap); zend_str_tolower_copy(lcname->val, class_name->val, class_name->len); res = zend_hash_exists(classes, lcname); STR_ALLOCA_FREE(lcname, use_heap); return res; }