Commit:    cd1f45b3be2e630aab32f58770124d38661b518e
Author:    Gustavo Lopes <glo...@nebm.ist.utl.pt>         Wed, 22 Aug 2012 
22:38:31 +0200
Parents:   87803ace94454a71a04c87f85c938ceffc100bcf
Branches:  PHP-5.4 master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=cd1f45b3be2e630aab32f58770124d38661b518e

Log:
Fix handling of several uinitialized intl objects

PHP 5.4 specific changes. Not having this in the merge commit helps
porting to pecl/intl

Changed paths:
  M  ext/intl/spoofchecker/spoofchecker_class.h
  M  ext/intl/spoofchecker/spoofchecker_create.c


Diff:
diff --git a/ext/intl/spoofchecker/spoofchecker_class.h 
b/ext/intl/spoofchecker/spoofchecker_class.h
index 8db6468..b9e334f 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 3659551..cf0173f 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");


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to