diff options
Diffstat (limited to 'ext/intl/collator/collator_create.c')
-rw-r--r-- | ext/intl/collator/collator_create.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/ext/intl/collator/collator_create.c b/ext/intl/collator/collator_create.c index b2a8c7f6ba..3c59f218e6 100644 --- a/ext/intl/collator/collator_create.c +++ b/ext/intl/collator/collator_create.c @@ -1,6 +1,6 @@ /* +----------------------------------------------------------------------+ - | PHP Version 5 | + | PHP Version 7 | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -27,8 +27,8 @@ /* {{{ */ static void collator_ctor(INTERNAL_FUNCTION_PARAMETERS) { - char* locale; - int locale_len = 0; + const char* locale; + size_t locale_len = 0; zval* object; Collator_object* co; @@ -72,8 +72,16 @@ PHP_FUNCTION( collator_create ) */ PHP_METHOD( Collator, __construct ) { + zval orig_this = *getThis(); + return_value = getThis(); collator_ctor(INTERNAL_FUNCTION_PARAM_PASSTHRU); + + if (Z_TYPE_P(return_value) == IS_OBJECT && Z_OBJ_P(return_value) == NULL) { + zend_object_store_ctor_failed(Z_OBJ(orig_this) TSRMLS_CC); + zval_dtor(&orig_this); + ZEND_CTOR_MAKE_NULL(); + } } /* }}} */ |