diff options
Diffstat (limited to 'ext/date/php_date.h')
| -rw-r--r-- | ext/date/php_date.h | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/ext/date/php_date.h b/ext/date/php_date.h index 2b3ae4dcc1..ff26c0fba3 100644 --- a/ext/date/php_date.h +++ b/ext/date/php_date.h @@ -128,13 +128,18 @@ typedef struct _php_interval_obj php_interval_obj; typedef struct _php_period_obj php_period_obj; struct _php_date_obj { - zend_object std; timelib_time *time; HashTable *props; + zend_object std; }; +static inline php_date_obj *php_date_obj_from_obj(zend_object *obj) { + return (php_date_obj*)((char*)(obj) - XtOffsetOf(php_date_obj, std)); +} + +#define Z_PHPDATE_P(zv) php_date_obj_from_obj(Z_OBJ_P((zv))) + struct _php_timezone_obj { - zend_object std; int initialized; int type; union { @@ -143,17 +148,29 @@ struct _php_timezone_obj { timelib_abbr_info z; /* TIMELIB_ZONETYPE_ABBR */ } tzi; HashTable *props; + zend_object std; }; +static inline php_timezone_obj *php_timezone_obj_from_obj(zend_object *obj) { + return (php_timezone_obj*)((char*)(obj) - XtOffsetOf(php_timezone_obj, std)); +} + +#define Z_PHPTIMEZONE_P(zv) php_timezone_obj_from_obj(Z_OBJ_P((zv))) + struct _php_interval_obj { - zend_object std; timelib_rel_time *diff; HashTable *props; int initialized; + zend_object std; }; +static inline php_interval_obj *php_interval_obj_from_obj(zend_object *obj) { + return (php_interval_obj*)((char*)(obj) - XtOffsetOf(php_interval_obj, std)); +} + +#define Z_PHPINTERVAL_P(zv) php_interval_obj_from_obj(Z_OBJ_P((zv))) + struct _php_period_obj { - zend_object std; timelib_time *start; zend_class_entry *start_ce; timelib_time *current; @@ -162,8 +179,15 @@ struct _php_period_obj { int recurrences; int initialized; int include_start_date; + zend_object std; }; +static inline php_period_obj *php_period_obj_from_obj(zend_object *obj) { + return (php_period_obj*)((char*)(obj) - XtOffsetOf(php_period_obj, std)); +} + +#define Z_PHPPERIOD_P(zv) php_period_obj_from_obj(Z_OBJ_P((zv))) + ZEND_BEGIN_MODULE_GLOBALS(date) char *default_timezone; char *timezone; @@ -186,7 +210,7 @@ PHPAPI int php_idate(char format, time_t ts, int localtime TSRMLS_DC); #define _php_strftime php_strftime PHPAPI void php_strftime(INTERNAL_FUNCTION_PARAMETERS, int gm); #endif -PHPAPI char *php_format_date(char *format, int format_len, time_t ts, int localtime TSRMLS_DC); +PHPAPI zend_string *php_format_date(char *format, int format_len, time_t ts, int localtime TSRMLS_DC); /* Mechanism to set new TZ database */ PHPAPI void php_date_set_tzdb(timelib_tzdb *tzdb); |
