summaryrefslogtreecommitdiff
path: root/ext/intl/collator/collator_create.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/intl/collator/collator_create.c')
-rw-r--r--ext/intl/collator/collator_create.c14
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();
+ }
}
/* }}} */