(!memcmp((ustr).s,(str),(slen))): \
(!zend_cmp_unicode_and_literal((ustr).u, ulen, str, slen)))
+static inline int ZEND_U_CASE_EQUAL(zend_uchar type, zstr ustr, int ulen, char *str, int slen)
+{
+ zstr lcname;
+ int ret;
+
+ if (type == IS_UNICODE) {
+ lcname.u = zend_ascii_to_unicode(str, slen+1 ZEND_FILE_LINE_CC);
+ ret = !u_memcasecmp(lcname.u, ustr.u, slen, 0);
+ } else {
+ lcname.s = zend_str_tolower_dup(ustr.s, ulen);
+ ret = !memcmp(lcname.s, str, slen);
+ }
+ efree(lcname.v);
+ return ret;
+}
+
#endif /* ZEND_H */
}
-static inline int ZEND_U_CASE_EQUAL(zend_uchar type, zstr ustr, int ulen, char *str, int slen)
-{
- zstr lcname;
- unsigned int lcname_len;
- int ret;
-
- lcname = zend_u_str_case_fold(type, ustr, ulen, 0, &lcname_len);
- ret = ZEND_U_EQUAL(type, lcname, lcname_len, str, slen);
- efree(lcname.v);
- return ret;
-}
-
-
void zend_do_receive_arg(zend_uchar op, znode *var, znode *offset, znode *initialization, znode *class_type, znode *varname, zend_uchar pass_by_reference TSRMLS_DC)
{
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);