]> granicus.if.org Git - php/commitdiff
Fixed retval with zend_call_method
authorXinchen Hui <laruence@php.net>
Sun, 29 Jun 2014 11:07:06 +0000 (19:07 +0800)
committerXinchen Hui <laruence@php.net>
Sun, 29 Jun 2014 11:07:06 +0000 (19:07 +0800)
ext/intl/calendar/calendar_methods.cpp
ext/intl/timezone/timezone_methods.cpp

index 02dfe5e22473dcd31ce092f3e3067f941fb15029..b67bd4bf6b083170fc9f0b419899531a572f68b4 100644 (file)
@@ -1141,7 +1141,7 @@ U_CFUNC PHP_FUNCTION(intlcal_from_date_time)
        zval                    *zv_arg,
                                        zv_tmp,
                                        *zv_datetime            = NULL,
-                                       *zv_timestamp           = NULL;
+                                       zv_timestamp;
        php_date_obj    *datetime;
        char                    *locale_str                     = NULL;
        int                             locale_str_len;
@@ -1178,11 +1178,12 @@ U_CFUNC PHP_FUNCTION(intlcal_from_date_time)
                goto error;
        }
 
-       zend_call_method_with_0_params(zv_datetime, php_date_get_date_ce(), NULL, "gettimestamp", zv_timestamp);
-       if (!zv_timestamp || Z_TYPE_P(zv_timestamp) != IS_LONG) {
+       zend_call_method_with_0_params(zv_datetime, php_date_get_date_ce(), NULL, "gettimestamp", &zv_timestamp);
+       if (Z_TYPE(zv_timestamp) != IS_LONG) {
                intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,
                        "intlcal_from_date_time: bad DateTime; call to "
                        "DateTime::getTimestamp() failed", 0 TSRMLS_CC);
+               zval_ptr_dtor(&zv_timestamp);
                goto error;
        }
 
@@ -1208,7 +1209,7 @@ U_CFUNC PHP_FUNCTION(intlcal_from_date_time)
                                "error creating ICU Calendar object", 0 TSRMLS_CC);
                goto error;
        }
-       cal->setTime(((UDate)Z_LVAL_P(zv_timestamp)) * 1000., status);
+       cal->setTime(((UDate)Z_LVAL(zv_timestamp)) * 1000., status);
     if (U_FAILURE(status)) {
                /* time zone was adopted by cal; should not be deleted here */
                delete cal;
@@ -1223,9 +1224,6 @@ error:
        if (zv_datetime && zv_datetime != zv_arg) {
                zval_ptr_dtor(zv_datetime);
        }
-       if (zv_timestamp) {
-               zval_ptr_dtor(zv_timestamp);
-       }
 }
 
 U_CFUNC PHP_FUNCTION(intlcal_to_date_time)
index bef69ba539439bdc8105dd4dff9a1975444ec089..c98a03639f44c80bf333843e1f2acb032f69c12c 100644 (file)
@@ -436,7 +436,7 @@ U_CFUNC PHP_FUNCTION(intltz_get_id)
                id_us.getBuffer(), id_us.length(), TIMEZONE_ERROR_CODE_P(to));
        INTL_METHOD_CHECK_STATUS(to, "intltz_get_id: Could not convert id to UTF-8");
 
-       RETURN_STRINGL(id, id_len);
+       RETVAL_STRINGL(id, id_len);
        //???
        efree(id);
 }