]> granicus.if.org Git - php/commitdiff
- Sync from HEAD.
authorDerick Rethans <derick@php.net>
Sat, 13 Nov 2010 16:31:01 +0000 (16:31 +0000)
committerDerick Rethans <derick@php.net>
Sat, 13 Nov 2010 16:31:01 +0000 (16:31 +0000)
ext/date/php_date.c
ext/date/php_date.h

index 86629618f5b945ed9794a62668f6f162ddd0a0b2..83996b167679fa5f7259616441971f39d4d513b8 100644 (file)
@@ -475,7 +475,6 @@ const zend_function_entry date_funcs_period[] = {
 
 static char* guess_timezone(const timelib_tzdb *tzdb TSRMLS_DC);
 static void date_register_classes(TSRMLS_D);
-static zval * date_instantiate(zend_class_entry *pce, zval *object TSRMLS_DC);
 /* }}} */
 
 ZEND_DECLARE_MODULE_GLOBALS(date)
@@ -1204,7 +1203,7 @@ PHPAPI char *php_format_date(char *format, int format_len, time_t ts, int localt
 
 /* {{{ php_idate
  */
-PHPAPI int php_idate(char format, time_t ts, int localtime)
+PHPAPI int php_idate(char format, time_t ts, int localtime TSRMLS_DC)
 {
        timelib_time   *t;
        timelib_tzinfo *tzi;
@@ -1215,7 +1214,6 @@ PHPAPI int php_idate(char format, time_t ts, int localtime)
        t = timelib_time_ctor();
 
        if (!localtime) {
-               TSRMLS_FETCH();
                tzi = get_timezone_info(TSRMLS_C);
                t->tz_info = tzi;
                t->zone_type = TIMELIB_ZONETYPE_ID;
@@ -1337,7 +1335,7 @@ PHP_FUNCTION(idate)
                ts = time(NULL);
        }
 
-       ret = php_idate(format[0], ts, 0);
+       ret = php_idate(format[0], ts, 0 TSRMLS_CC);
        if (ret == -1) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unrecognized date format token.");
                RETURN_FALSE;
@@ -1852,7 +1850,7 @@ static void date_period_it_current_data(zend_object_iterator *iter, zval ***data
 
        /* Create new object */
        MAKE_STD_ZVAL(iterator->current);
-       date_instantiate(date_ce_date, iterator->current TSRMLS_CC);
+       php_date_instantiate(date_ce_date, iterator->current TSRMLS_CC);
        newdateobj = (php_date_obj *) zend_object_store_get_object(iterator->current TSRMLS_CC);
        newdateobj->time = timelib_time_ctor();
        *newdateobj->time = *it_time;
@@ -2089,7 +2087,7 @@ static HashTable *date_object_get_properties(zval *object TSRMLS_DC)
 
        dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC);
 
-       props = dateobj->std.properties;
+       props = zend_std_get_properties(object TSRMLS_CC);
 
        if (!dateobj->time || GC_G(gc_active)) {
                return props;
@@ -2232,7 +2230,7 @@ static HashTable *date_object_get_properties_interval(zval *object TSRMLS_DC)
 
        intervalobj = (php_interval_obj *) zend_object_store_get_object(object TSRMLS_CC);
 
-       props = intervalobj->std.properties;
+       props = zend_std_get_properties(object TSRMLS_CC);
 
        if (!intervalobj->initialized || GC_G(gc_active)) {
                return props;
@@ -2353,7 +2351,7 @@ static void date_object_free_storage_period(void *object TSRMLS_DC)
 }
 
 /* Advanced Interface */
-static zval * date_instantiate(zend_class_entry *pce, zval *object TSRMLS_DC)
+PHPAPI zval *php_date_instantiate(zend_class_entry *pce, zval *object TSRMLS_DC)
 {
        Z_TYPE_P(object) = IS_OBJECT;
        object_init_ex(object, pce);
@@ -2373,7 +2371,7 @@ static void update_errors_warnings(timelib_error_container *last_errors TSRMLS_D
        DATEG(last_errors) = last_errors;
 }
 
-static int date_initialize(php_date_obj *dateobj, /*const*/ char *time_str, int time_str_len, char *format, zval *timezone_object, int ctor TSRMLS_DC)
+PHPAPI int php_date_initialize(php_date_obj *dateobj, /*const*/ char *time_str, int time_str_len, char *format, zval *timezone_object, int ctor TSRMLS_DC)
 {
        timelib_time   *now;
        timelib_tzinfo *tzi;
@@ -2468,8 +2466,8 @@ PHP_FUNCTION(date_create)
                RETURN_FALSE;
        }
 
-       date_instantiate(date_ce_date, return_value TSRMLS_CC);
-       if (!date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) {
+       php_date_instantiate(date_ce_date, return_value TSRMLS_CC);
+       if (!php_date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) {
                RETURN_FALSE;
        }
 }
@@ -2488,8 +2486,8 @@ PHP_FUNCTION(date_create_from_format)
                RETURN_FALSE;
        }
 
-       date_instantiate(date_ce_date, return_value TSRMLS_CC);
-       if (!date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) {
+       php_date_instantiate(date_ce_date, return_value TSRMLS_CC);
+       if (!php_date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) {
                RETURN_FALSE;
        }
 }
@@ -2507,7 +2505,7 @@ PHP_METHOD(DateTime, __construct)
 
        zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC);
        if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO", &time_str, &time_str_len, &timezone_object, date_ce_timezone)) {
-               date_initialize(zend_object_store_get_object(getThis() TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 1 TSRMLS_CC);
+               php_date_initialize(zend_object_store_get_object(getThis() TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 1 TSRMLS_CC);
        }
        zend_restore_error_handling(&error_handling TSRMLS_CC);
 }
@@ -2534,7 +2532,7 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat
                                        case TIMELIB_ZONETYPE_ABBR: {
                                                char *tmp = emalloc(Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 2);
                                                snprintf(tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 2, "%s %s", Z_STRVAL_PP(z_date), Z_STRVAL_PP(z_timezone));
-                                               date_initialize(*dateobj, tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 1, NULL, NULL, 0 TSRMLS_CC);
+                                               php_date_initialize(*dateobj, tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 1, NULL, NULL, 0 TSRMLS_CC);
                                                efree(tmp);
                                                return 1;
                                        }
@@ -2545,12 +2543,12 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat
                                                tzi = php_date_parse_tzfile(Z_STRVAL_PP(z_timezone), DATE_TIMEZONEDB TSRMLS_CC);
 
                                                ALLOC_INIT_ZVAL(tmp_obj);
-                                               tzobj = zend_object_store_get_object(date_instantiate(date_ce_timezone, tmp_obj TSRMLS_CC) TSRMLS_CC);
+                                               tzobj = zend_object_store_get_object(php_date_instantiate(date_ce_timezone, tmp_obj TSRMLS_CC) TSRMLS_CC);
                                                tzobj->type = TIMELIB_ZONETYPE_ID;
                                                tzobj->tzi.tz = tzi;
                                                tzobj->initialized = 1;
 
-                                               date_initialize(*dateobj, Z_STRVAL_PP(z_date), Z_STRLEN_PP(z_date), NULL, tmp_obj, 0 TSRMLS_CC);
+                                               php_date_initialize(*dateobj, Z_STRVAL_PP(z_date), Z_STRLEN_PP(z_date), NULL, tmp_obj, 0 TSRMLS_CC);
                                                zval_ptr_dtor(&tmp_obj);
                                                return 1;
                                }
@@ -2574,7 +2572,7 @@ PHP_METHOD(DateTime, __set_state)
 
        myht = HASH_OF(array);
 
-       date_instantiate(date_ce_date, return_value TSRMLS_CC);
+       php_date_instantiate(date_ce_date, return_value TSRMLS_CC);
        dateobj = (php_date_obj *) zend_object_store_get_object(return_value TSRMLS_CC);
        php_date_initialize_from_hash(&return_value, &dateobj, myht TSRMLS_CC);
 }
@@ -2915,7 +2913,7 @@ PHP_FUNCTION(date_timezone_get)
        dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC);
        DATE_CHECK_INITIALIZED(dateobj->time, DateTime);
        if (dateobj->time->is_localtime/* && dateobj->time->tz_info*/) {
-               date_instantiate(date_ce_timezone, return_value TSRMLS_CC);
+               php_date_instantiate(date_ce_timezone, return_value TSRMLS_CC);
                tzobj = (php_timezone_obj *) zend_object_store_get_object(return_value TSRMLS_CC);
                tzobj->initialized = 1;
                tzobj->type = dateobj->time->zone_type;
@@ -3139,7 +3137,7 @@ PHP_FUNCTION(date_diff)
        timelib_update_ts(dateobj1->time, NULL);
        timelib_update_ts(dateobj2->time, NULL);
 
-       date_instantiate(date_ce_interval, return_value TSRMLS_CC);
+       php_date_instantiate(date_ce_interval, return_value TSRMLS_CC);
        interval = zend_object_store_get_object(return_value TSRMLS_CC);
        interval->diff = timelib_diff(dateobj1->time, dateobj2->time);
        if (absolute) {
@@ -3185,7 +3183,7 @@ PHP_FUNCTION(timezone_open)
        if (SUCCESS != timezone_initialize(&tzi, tz TSRMLS_CC)) {
                RETURN_FALSE;
        }
-       tzobj = zend_object_store_get_object(date_instantiate(date_ce_timezone, return_value TSRMLS_CC) TSRMLS_CC);
+       tzobj = zend_object_store_get_object(php_date_instantiate(date_ce_timezone, return_value TSRMLS_CC) TSRMLS_CC);
        tzobj->type = TIMELIB_ZONETYPE_ID;
        tzobj->tzi.tz = tzi;
        tzobj->initialized = 1;
@@ -3577,7 +3575,7 @@ PHP_FUNCTION(date_interval_create_from_date_string)
                RETURN_FALSE;
        }
 
-       date_instantiate(date_ce_interval, return_value TSRMLS_CC);
+       php_date_instantiate(date_ce_interval, return_value TSRMLS_CC);
 
        time = timelib_strtotime(time_str, time_str_len, &err, DATE_TIMEZONEDB);
        diobj = (php_interval_obj *) zend_object_store_get_object(return_value TSRMLS_CC);
index 7f3f7fa4ef4e14fefcccbcfed93726dc22e693d6..cf7acada4d65a88ac81949a8b0553ad3362aeb02 100644 (file)
@@ -163,7 +163,7 @@ ZEND_END_MODULE_GLOBALS(date)
 /* Backwards compability wrapper */
 PHPAPI signed long php_parse_date(char *string, signed long *now);
 PHPAPI void php_mktime(INTERNAL_FUNCTION_PARAMETERS, int gmt);
-PHPAPI int php_idate(char format, time_t ts, int localtime);
+PHPAPI int php_idate(char format, time_t ts, int localtime TSRMLS_DC);
 #if HAVE_STRFTIME
 #define _php_strftime php_strftime
 PHPAPI void php_strftime(INTERNAL_FUNCTION_PARAMETERS, int gm);
@@ -178,4 +178,9 @@ PHPAPI timelib_tzinfo *get_timezone_info(TSRMLS_D);
 PHPAPI zend_class_entry *php_date_get_date_ce(void);
 PHPAPI zend_class_entry *php_date_get_timezone_ce(void);
 
+/* Functions for creating DateTime objects, and initializing them from a string */
+PHPAPI zval *php_date_instantiate(zend_class_entry *pce, zval *object TSRMLS_DC);
+PHPAPI int php_date_initialize(php_date_obj *dateobj, /*const*/ char *time_str, int time_str_len, char *format, zval *timezone_object, int ctor TSRMLS_DC);
+
+
 #endif /* PHP_DATE_H */