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