]> granicus.if.org Git - php/commitdiff
Use fast zpp for frequently used gettext(_)
authorXinchen Hui <laruence@php.net>
Wed, 6 May 2015 06:29:19 +0000 (14:29 +0800)
committerXinchen Hui <laruence@php.net>
Wed, 6 May 2015 06:29:19 +0000 (14:29 +0800)
ext/gettext/gettext.c

index 91c2abb0eba799a282e208a2636e2b2bd1dfba59..90038fad5ca3de56f4bb4cc661c590a3836572ef 100644 (file)
@@ -186,15 +186,21 @@ PHP_NAMED_FUNCTION(zif_textdomain)
    Return the translation of msgid for the current domain, or msgid unaltered if a translation does not exist */
 PHP_NAMED_FUNCTION(zif_gettext)
 {
-       char *msgid, *msgstr;
-       size_t msgid_len;
+       char *msgstr;
+       zend_string *msgid;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &msgid, &msgid_len) == FAILURE) {
+#ifndef FAST_ZPP
+       if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &msgid) == FAILURE) {
                return;
        }
+#else
+       ZEND_PARSE_PARAMETERS_START(1, 1)
+               Z_PARAM_STR(msgid)
+       ZEND_PARSE_PARAMETERS_END();
+#endif
 
-       PHP_GETTEXT_LENGTH_CHECK("msgid", msgid_len)
-       msgstr = gettext(msgid);
+       PHP_GETTEXT_LENGTH_CHECK("msgid", msgid->len)
+       msgstr = gettext(msgid->val);
 
        RETURN_STRING(msgstr);
 }