andrei          Tue Mar 28 04:33:29 2006 UTC

  Modified files:              
    /php-src/ext/unicode        collator.c 
  Log:
  Fix collator instantiation.
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/unicode/collator.c?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/unicode/collator.c
diff -u php-src/ext/unicode/collator.c:1.2 php-src/ext/unicode/collator.c:1.3
--- php-src/ext/unicode/collator.c:1.2  Tue Mar 28 03:28:08 2006
+++ php-src/ext/unicode/collator.c      Tue Mar 28 04:33:29 2006
@@ -14,7 +14,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: collator.c,v 1.2 2006/03/28 03:28:08 andrei Exp $ */
+/* $Id: collator.c,v 1.3 2006/03/28 04:33:29 andrei Exp $ */
 
 #include "php.h"
 #include "ext/standard/php_array.h"
@@ -155,14 +155,18 @@
 
 static zval* collator_instantiate(zend_class_entry *pce, zval *object 
TSRMLS_DC)
 {
+       /* FIXME
+        * not sure what what this is for but moved here so it doesn't break 
stuff
+        * below
+        */
        if (!object) {
                ALLOC_ZVAL(object);
+               object->refcount = 1;
+               object->is_ref = 1;
        }
 
        Z_TYPE_P(object) = IS_OBJECT;
        object_init_ex(object, pce);
-       object->refcount = 1;
-       object->is_ref = 1;
        return object;
 }
 
@@ -177,13 +181,17 @@
        UErrorCode        error;
        char             *collator_name;
        int               collator_name_len;
+       zval                     *object;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", 
&collator_name, &collator_name_len) == FAILURE) {
                RETURN_FALSE;
        }
 
-       collator_instantiate(unicode_ce_collator, return_value TSRMLS_CC);
-       collatorobj = (php_collator_obj *) 
zend_object_store_get_object(return_value TSRMLS_CC);
+       if ((object = getThis()) == NULL) {
+               object = return_value;
+       }
+       collator_instantiate(unicode_ce_collator, object TSRMLS_CC);
+       collatorobj = (php_collator_obj *) zend_object_store_get_object(object 
TSRMLS_CC);
        error = U_ZERO_ERROR;
        collatorobj->col = ucol_open(collator_name, &error);
 }

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

Reply via email to