]> granicus.if.org Git - php/commitdiff
update len in fallback cases
authorAnatol Belski <ab@php.net>
Wed, 12 Oct 2016 18:52:46 +0000 (20:52 +0200)
committerAnatol Belski <ab@php.net>
Thu, 13 Oct 2016 23:49:55 +0000 (01:49 +0200)
(cherry picked from commit 58b18892bf3db0adf2a01f92adb4c907700fbbdd)

ext/intl/locale/locale_methods.c

index b75183da949579069c2dae99b13aae919ef1da7f..e35da2fd052358c14e87413d8353389db1d88de1 100644 (file)
@@ -405,6 +405,7 @@ static void get_icu_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAMETERS)
 
        if(loc_name_len == 0) {
                loc_name = intl_locale_get_default();
+               loc_name_len = strlen(loc_name);
        }
        
        INTL_CHECK_LOCALE_LEN(loc_name_len);
@@ -1165,6 +1166,7 @@ PHP_FUNCTION(locale_get_all_variants)
 
        if(loc_name_len == 0) {
                loc_name = intl_locale_get_default();
+               loc_name_len = strlen(loc_name);
        }
 
        INTL_CHECK_LOCALE_LEN(loc_name_len);
@@ -1270,6 +1272,7 @@ PHP_FUNCTION(locale_filter_matches)
 
        if(loc_range_len == 0) {
                loc_range = intl_locale_get_default();
+               loc_range_len = strlen(loc_range);
        }
 
        if( strcmp(loc_range,"*")==0){
@@ -1553,8 +1556,10 @@ PHP_FUNCTION(locale_lookup)
        if(loc_range_len == 0) {
                if(fallback_loc_str) {
                        loc_range = ZSTR_VAL(fallback_loc_str);
+                       loc_range_len = ZSTR_LEN(fallback_loc_str);
                } else {
                        loc_range = intl_locale_get_default();
+                       loc_range_len = strlen(loc_range);
                }
        }