diff options
author | Gustavo Lopes <glopes@nebm.ist.utl.pt> | 2012-08-22 22:38:31 +0200 |
---|---|---|
committer | Gustavo Lopes <glopes@nebm.ist.utl.pt> | 2012-08-22 22:38:31 +0200 |
commit | cd1f45b3be2e630aab32f58770124d38661b518e (patch) | |
tree | cd0c2d41ce95cfec1cb7314c1bc5b70532e24627 | |
parent | 87803ace94454a71a04c87f85c938ceffc100bcf (diff) | |
download | php-git-cd1f45b3be2e630aab32f58770124d38661b518e.tar.gz |
Fix handling of several uinitialized intl objects
PHP 5.4 specific changes. Not having this in the merge commit helps
porting to pecl/intl
-rw-r--r-- | ext/intl/spoofchecker/spoofchecker_class.h | 9 | ||||
-rw-r--r-- | ext/intl/spoofchecker/spoofchecker_create.c | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/ext/intl/spoofchecker/spoofchecker_class.h b/ext/intl/spoofchecker/spoofchecker_class.h index 8db64680ef..b9e334fadb 100644 --- a/ext/intl/spoofchecker/spoofchecker_class.h +++ b/ext/intl/spoofchecker/spoofchecker_class.h @@ -55,6 +55,15 @@ extern zend_class_entry *Spoofchecker_ce_ptr; Spoofchecker_object* co = NULL; \ intl_error_reset(NULL TSRMLS_CC); \ +#define SPOOFCHECKER_METHOD_FETCH_OBJECT_NO_CHECK INTL_METHOD_FETCH_OBJECT(Spoofchecker, co) +#define SPOOFCHECKER_METHOD_FETCH_OBJECT \ + SPOOFCHECKERMETHOD_FETCH_OBJECT_NO_CHECK; \ + if (co->uspoof == NULL) { \ + intl_errors_set(&co->err, U_ILLEGAL_ARGUMENT_ERROR, \ + "Found unconstructed Spoofchecker", 0 TSRMLS_CC); \ + RETURN_FALSE; \ + } + #define SPOOFCHECKER_METHOD_FETCH_OBJECT \ co = (Spoofchecker_object *) zend_object_store_get_object(object TSRMLS_CC); \ intl_error_reset(SPOOFCHECKER_ERROR_P(co) TSRMLS_CC); \ diff --git a/ext/intl/spoofchecker/spoofchecker_create.c b/ext/intl/spoofchecker/spoofchecker_create.c index 3659551ede..cf0173f997 100644 --- a/ext/intl/spoofchecker/spoofchecker_create.c +++ b/ext/intl/spoofchecker/spoofchecker_create.c @@ -35,7 +35,7 @@ PHP_METHOD(Spoofchecker, __construct) return; } - SPOOFCHECKER_METHOD_FETCH_OBJECT; + SPOOFCHECKER_METHOD_FETCH_OBJECT_NO_CHECK; co->uspoof = uspoof_open(SPOOFCHECKER_ERROR_CODE_P(co)); INTL_CTOR_CHECK_STATUS(co, "spoofchecker: unable to open ICU Spoof Checker"); |