diff options
author | Gustavo André dos Santos Lopes <cataphract@php.net> | 2010-12-27 01:10:08 +0000 |
---|---|---|
committer | Gustavo André dos Santos Lopes <cataphract@php.net> | 2010-12-27 01:10:08 +0000 |
commit | 610bb960361a4d0bde6ca589bd7163bd6bfccb65 (patch) | |
tree | 55d25bf59d6c2c3c4181bb0893a22bdfb59674b9 /ext/intl/collator | |
parent | 83ef8850a056ee9103c2878e8c3e23337012c6d7 (diff) | |
download | php-git-610bb960361a4d0bde6ca589bd7163bd6bfccb65.tar.gz |
- Fixed bug #53612 (Segmentation fault when using several cloned intl
objects).
Diffstat (limited to 'ext/intl/collator')
-rwxr-xr-x | ext/intl/collator/collator_class.c | 7 |
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 ) { |