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>
Wed, 12 Oct 2016 18:52:46 +0000 (20:52 +0200)
ext/intl/locale/locale_methods.c

index eaf113a97e89078e38dbeca6a7f93f5f24cba636..18a051fe20222b550e4dcff977be3db3a6cda869 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);
@@ -1169,6 +1170,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);
@@ -1274,6 +1276,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){
@@ -1557,8 +1560,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);
                }
        }