Fixed segfaults

This commit is contained in:
Xinchen Hui 2014-06-28 20:52:41 +08:00
parent e4e9e80067
commit b53bc5c762
3 changed files with 7 additions and 4 deletions

View file

@ -1220,7 +1220,7 @@ U_CFUNC PHP_FUNCTION(intlcal_from_date_time)
calendar_object_create(return_value, cal TSRMLS_CC);
error:
if (zv_datetime != zv_arg) {
if (zv_datetime && zv_datetime != zv_arg) {
zval_ptr_dtor(zv_datetime);
}
if (zv_timestamp) {

View file

@ -28,8 +28,8 @@
for this to work!
*/
typedef struct _intl_data {
zend_object zo;
intl_error error;
zend_object zo;
} intl_object;
#define INTL_METHOD_INIT_VARS(oclass, obj) \

View file

@ -92,8 +92,8 @@ static void resourcebundle_ctor(INTERNAL_FUNCTION_PARAMETERS)
{
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
"resourcebundle_ctor: unable to parse input parameters", 0 TSRMLS_CC );
zval_dtor( return_value );
RETURN_NULL();
Z_OBJ_P(return_value) = NULL;
return;
}
INTL_CHECK_LOCALE_LEN_OBJ(locale_len, return_value);
@ -152,6 +152,9 @@ PHP_FUNCTION( resourcebundle_create )
{
object_init_ex( return_value, ResourceBundle_ce_ptr );
resourcebundle_ctor(INTERNAL_FUNCTION_PARAM_PASSTHRU);
if (Z_TYPE_P(return_value) == IS_OBJECT && Z_OBJ_P(return_value) == NULL) {
RETURN_NULL();
}
}
/* }}} */