derick                                   Sat, 10 Apr 2010 20:33:41 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=297814

Log:
- Expose date-extension object creation externally.
- Expose DateTime object initialisation externally.

Changed paths:
    U   php/php-src/trunk/ext/date/php_date.c
    U   php/php-src/trunk/ext/date/php_date.h

Modified: php/php-src/trunk/ext/date/php_date.c
===================================================================
--- php/php-src/trunk/ext/date/php_date.c       2010-04-10 19:43:42 UTC (rev 
297813)
+++ php/php-src/trunk/ext/date/php_date.c       2010-04-10 20:33:41 UTC (rev 
297814)
@@ -475,7 +475,6 @@

 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)
@@ -1846,7 +1845,7 @@

        /* 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;
@@ -2339,7 +2338,7 @@
 }

 /* 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);
@@ -2359,7 +2358,7 @@
        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;
@@ -2454,8 +2453,8 @@
                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;
        }
 }
@@ -2474,8 +2473,8 @@
                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;
        }
 }
@@ -2493,7 +2492,7 @@

        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);
 }
@@ -2520,7 +2519,7 @@
                                        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;
                                        }
@@ -2531,12 +2530,12 @@
                                                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;
                                }
@@ -2560,7 +2559,7 @@

        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);
 }
@@ -2901,7 +2900,7 @@
        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;
@@ -3125,7 +3124,7 @@
        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) {
@@ -3171,7 +3170,7 @@
        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;
@@ -3563,7 +3562,7 @@
                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);

Modified: php/php-src/trunk/ext/date/php_date.h
===================================================================
--- php/php-src/trunk/ext/date/php_date.h       2010-04-10 19:43:42 UTC (rev 
297813)
+++ php/php-src/trunk/ext/date/php_date.h       2010-04-10 20:33:41 UTC (rev 
297814)
@@ -177,4 +177,9 @@
 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 */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to