summaryrefslogtreecommitdiff
path: root/ext/intl/collator
diff options
context:
space:
mode:
authorGustavo André dos Santos Lopes <cataphract@php.net>2010-12-27 01:10:08 +0000
committerGustavo André dos Santos Lopes <cataphract@php.net>2010-12-27 01:10:08 +0000
commit610bb960361a4d0bde6ca589bd7163bd6bfccb65 (patch)
tree55d25bf59d6c2c3c4181bb0893a22bdfb59674b9 /ext/intl/collator
parent83ef8850a056ee9103c2878e8c3e23337012c6d7 (diff)
downloadphp-git-610bb960361a4d0bde6ca589bd7163bd6bfccb65.tar.gz
- Fixed bug #53612 (Segmentation fault when using several cloned intl
objects).
Diffstat (limited to 'ext/intl/collator')
-rwxr-xr-xext/intl/collator/collator_class.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/intl/collator/collator_class.c b/ext/intl/collator/collator_class.c
index d73126a859..2d03904550 100755
--- a/ext/intl/collator/collator_class.c
+++ b/ext/intl/collator/collator_class.c
@@ -29,6 +29,7 @@
#include <unicode/ucol.h>
zend_class_entry *Collator_ce_ptr = NULL;
+static zend_object_handlers Collator_handlers;
/*
* Auxiliary functions needed by objects of 'Collator' class
@@ -73,7 +74,7 @@ zend_object_value Collator_object_create(
(zend_objects_free_object_storage_t)Collator_objects_free,
NULL TSRMLS_CC );
- retval.handlers = zend_get_std_object_handlers();
+ retval.handlers = &Collator_handlers;
return retval;
}
@@ -142,6 +143,10 @@ void collator_register_Collator_class( TSRMLS_D )
ce.create_object = Collator_object_create;
Collator_ce_ptr = zend_register_internal_class( &ce TSRMLS_CC );
+ memcpy(&Collator_handlers, zend_get_std_object_handlers(),
+ sizeof Collator_handlers);
+ Collator_handlers.clone_obj = NULL;
+
/* Declare 'Collator' class properties. */
if( !Collator_ce_ptr )
{