mirror of
https://github.com/php/php-src.git
synced 2024-11-28 04:14:26 +08:00
- Fixed bug #53612 (Segmentation fault when using several cloned intl
objects).
This commit is contained in:
parent
cc1759598f
commit
9ec9210fbc
2
NEWS
2
NEWS
@ -36,6 +36,8 @@
|
||||
- Intl extension:
|
||||
. Fixed bug #53512 (NumberFormatter::setSymbol crash on bogus $attr values).
|
||||
(Felipe)
|
||||
. Fixed bug #53612 (Segmentation fault when using cloned several intl
|
||||
objects). (Gustavo)
|
||||
|
||||
- MySQL Improved extension:
|
||||
. Fixed bug #53503 (mysqli::query returns false after successful LOAD DATA
|
||||
|
@ -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 )
|
||||
{
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "dateformat_attr.h"
|
||||
|
||||
zend_class_entry *IntlDateFormatter_ce_ptr = NULL;
|
||||
static zend_object_handlers IntlDateFormatter_handlers;
|
||||
|
||||
/*
|
||||
* Auxiliary functions needed by objects of 'IntlDateFormatter' class
|
||||
@ -73,7 +74,7 @@ zend_object_value IntlDateFormatter_object_create(zend_class_entry *ce TSRMLS_DC
|
||||
(zend_objects_free_object_storage_t)IntlDateFormatter_object_free,
|
||||
NULL TSRMLS_CC );
|
||||
|
||||
retval.handlers = zend_get_std_object_handlers();
|
||||
retval.handlers = &IntlDateFormatter_handlers;
|
||||
|
||||
return retval;
|
||||
}
|
||||
@ -161,6 +162,10 @@ void dateformat_register_IntlDateFormatter_class( TSRMLS_D )
|
||||
ce.create_object = IntlDateFormatter_object_create;
|
||||
IntlDateFormatter_ce_ptr = zend_register_internal_class( &ce TSRMLS_CC );
|
||||
|
||||
memcpy(&IntlDateFormatter_handlers, zend_get_std_object_handlers(),
|
||||
sizeof IntlDateFormatter_handlers);
|
||||
IntlDateFormatter_handlers.clone_obj = NULL;
|
||||
|
||||
/* Declare 'IntlDateFormatter' class properties. */
|
||||
if( !IntlDateFormatter_ce_ptr )
|
||||
{
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "formatter_attr.h"
|
||||
|
||||
zend_class_entry *NumberFormatter_ce_ptr = NULL;
|
||||
static zend_object_handlers NumberFormatter_handlers;
|
||||
|
||||
/*
|
||||
* Auxiliary functions needed by objects of 'NumberFormatter' class
|
||||
@ -69,7 +70,7 @@ zend_object_value NumberFormatter_object_create(
|
||||
(zend_objects_free_object_storage_t)NumberFormatter_object_free,
|
||||
NULL TSRMLS_CC );
|
||||
|
||||
retval.handlers = zend_get_std_object_handlers();
|
||||
retval.handlers = &NumberFormatter_handlers;
|
||||
|
||||
return retval;
|
||||
}
|
||||
@ -171,6 +172,10 @@ void formatter_register_class( TSRMLS_D )
|
||||
ce.create_object = NumberFormatter_object_create;
|
||||
NumberFormatter_ce_ptr = zend_register_internal_class( &ce TSRMLS_CC );
|
||||
|
||||
memcpy(&NumberFormatter_handlers, zend_get_std_object_handlers(),
|
||||
sizeof NumberFormatter_handlers);
|
||||
NumberFormatter_handlers.clone_obj = NULL;
|
||||
|
||||
/* Declare 'NumberFormatter' class properties. */
|
||||
if( !NumberFormatter_ce_ptr )
|
||||
{
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "msgformat_attr.h"
|
||||
|
||||
zend_class_entry *MessageFormatter_ce_ptr = NULL;
|
||||
static zend_object_handlers MessageFormatter_handlers;
|
||||
|
||||
/*
|
||||
* Auxiliary functions needed by objects of 'MessageFormatter' class
|
||||
@ -66,7 +67,7 @@ zend_object_value MessageFormatter_object_create(zend_class_entry *ce TSRMLS_DC)
|
||||
(zend_objects_free_object_storage_t)MessageFormatter_object_free,
|
||||
NULL TSRMLS_CC );
|
||||
|
||||
retval.handlers = zend_get_std_object_handlers();
|
||||
retval.handlers = &MessageFormatter_handlers;
|
||||
|
||||
return retval;
|
||||
}
|
||||
@ -135,6 +136,10 @@ void msgformat_register_class( TSRMLS_D )
|
||||
ce.create_object = MessageFormatter_object_create;
|
||||
MessageFormatter_ce_ptr = zend_register_internal_class( &ce TSRMLS_CC );
|
||||
|
||||
memcpy(&MessageFormatter_handlers, zend_get_std_object_handlers(),
|
||||
sizeof MessageFormatter_handlers);
|
||||
MessageFormatter_handlers.clone_obj = NULL;
|
||||
|
||||
/* Declare 'MessageFormatter' class properties. */
|
||||
if( !MessageFormatter_ce_ptr )
|
||||
{
|
||||
|
@ -420,6 +420,7 @@ void resourcebundle_register_class( TSRMLS_D )
|
||||
}
|
||||
|
||||
ResourceBundle_object_handlers = std_object_handlers;
|
||||
ResourceBundle_object_handlers.clone_obj = NULL;
|
||||
ResourceBundle_object_handlers.read_dimension = resourcebundle_array_get;
|
||||
ResourceBundle_object_handlers.count_elements = resourcebundle_array_count;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user