derick          Tue Jul  8 18:02:32 2008 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/date   php_date.c 
    /php-src/ext/date/lib       parse_tz.c tm2unixtime.c 
  Log:
  - MFH: Memory issues
  - MFH: // style comments
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c?r1=1.43.2.45.2.59&r2=1.43.2.45.2.60&diff_format=u
Index: php-src/ext/date/php_date.c
diff -u php-src/ext/date/php_date.c:1.43.2.45.2.59 
php-src/ext/date/php_date.c:1.43.2.45.2.60
--- php-src/ext/date/php_date.c:1.43.2.45.2.59  Fri May  2 21:36:00 2008
+++ php-src/ext/date/php_date.c Tue Jul  8 18:02:31 2008
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_date.c,v 1.43.2.45.2.59 2008/05/02 21:36:00 derick Exp $ */
+/* $Id: php_date.c,v 1.43.2.45.2.60 2008/07/08 18:02:31 derick Exp $ */
 
 #include "php.h"
 #include "php_streams.h"
@@ -269,9 +269,9 @@
        int             initialized;
        int             type;
        union {
-               timelib_tzinfo *tz; // TIMELIB_ZONETYPE_ID;
-               timelib_sll     utc_offset; // TIMELIB_ZONETYPE_OFFSET
-               struct                      // TIMELIB_ZONETYPE_ABBR
+               timelib_tzinfo *tz; /* TIMELIB_ZONETYPE_ID; */
+               timelib_sll     utc_offset; /* TIMELIB_ZONETYPE_OFFSET */
+               struct                      /* TIMELIB_ZONETYPE_ABBR */
                {
                        timelib_sll  utc_offset;
                        char        *abbr;
@@ -1147,14 +1147,6 @@
        timelib_update_ts(t, tzi);
        ts = timelib_date_to_int(t, &error2);
 
-       /* if tz_info is not a copy, avoid double free */
-       if (now->tz_info != tzi && now->tz_info) {
-               timelib_tzinfo_dtor(now->tz_info);
-       }
-       if (t->tz_info != tzi) {
-               timelib_tzinfo_dtor(t->tz_info);
-       }
-
        timelib_time_dtor(now);
        timelib_time_dtor(t);
 
@@ -1561,7 +1553,7 @@
                new_obj->time->tz_abbr = strdup(old_obj->time->tz_abbr);
        }
        if (old_obj->time->tz_info) {
-               new_obj->time->tz_info = 
timelib_tzinfo_clone(old_obj->time->tz_info);
+               new_obj->time->tz_info = old_obj->time->tz_info;
        }
        
        return new_ov;
@@ -1645,9 +1637,6 @@
        php_date_obj *intern = (php_date_obj *)object;
 
        if (intern->time) {
-               if (intern->time->tz_info) {
-                       timelib_tzinfo_dtor(intern->time->tz_info);
-               }
                timelib_time_dtor(intern->time);
        }
 
@@ -1685,14 +1674,11 @@
        timelib_time   *now;
        timelib_tzinfo *tzi;
        timelib_error_container *err = NULL;
-       int free_tzi = 0, type = TIMELIB_ZONETYPE_ID, new_dst, errors_found = 0;
+       int type = TIMELIB_ZONETYPE_ID, new_dst, errors_found = 0;
        char *new_abbr;
        timelib_sll     new_offset;
        
        if (dateobj->time) {
-               if (dateobj->time->tz_info) {
-                       timelib_tzinfo_dtor(dateobj->time->tz_info);
-               }
                timelib_time_dtor(dateobj->time);
        }
        dateobj->time = timelib_strtotime(time_str_len ? time_str : "now", 
time_str_len ? time_str_len : sizeof("now") -1, &err, DATE_TIMEZONEDB);
@@ -1716,8 +1702,7 @@
                tzobj = (php_timezone_obj *) 
zend_object_store_get_object(timezone_object TSRMLS_CC);
                switch (tzobj->type) {
                        case TIMELIB_ZONETYPE_ID:
-                               tzi = timelib_tzinfo_clone(tzobj->tzi.tz);
-                               free_tzi = 1;
+                               tzi = tzobj->tzi.tz;
                                break;
                        case TIMELIB_ZONETYPE_OFFSET:
                                new_offset = tzobj->tzi.utc_offset;
@@ -1730,8 +1715,7 @@
                }
                type = tzobj->type;
        } else if (dateobj->time->tz_info) {
-               tzi = timelib_tzinfo_clone(dateobj->time->tz_info);
-               free_tzi = 1;
+               tzi = dateobj->time->tz_info;
        } else {
                tzi = get_timezone_info(TSRMLS_C);
        }
@@ -1758,12 +1742,6 @@
 
        dateobj->time->have_weekday_relative = dateobj->time->have_relative = 0;
 
-       if (type == TIMELIB_ZONETYPE_ID && now->tz_info != tzi) {
-               timelib_tzinfo_dtor(now->tz_info);
-       }
-       if (free_tzi) {
-               timelib_tzinfo_dtor(tzi);
-       }
        timelib_time_dtor(now);
 
        return 1;
@@ -2016,10 +1994,7 @@
        if (tzobj->type != TIMELIB_ZONETYPE_ID) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can only do this 
for zones with ID for now");
        }
-       if (dateobj->time->tz_info) {
-               timelib_tzinfo_dtor(dateobj->time->tz_info);
-       }
-       timelib_set_timezone(dateobj->time, 
timelib_tzinfo_clone(tzobj->tzi.tz));
+       timelib_set_timezone(dateobj->time, tzobj->tzi.tz);
        timelib_unixtime2local(dateobj->time, dateobj->time->sse);
 }
 /* }}} */
http://cvs.php.net/viewvc.cgi/php-src/ext/date/lib/parse_tz.c?r1=1.20.2.6.2.14&r2=1.20.2.6.2.15&diff_format=u
Index: php-src/ext/date/lib/parse_tz.c
diff -u php-src/ext/date/lib/parse_tz.c:1.20.2.6.2.14 
php-src/ext/date/lib/parse_tz.c:1.20.2.6.2.15
--- php-src/ext/date/lib/parse_tz.c:1.20.2.6.2.14       Mon Dec 31 07:20:05 2007
+++ php-src/ext/date/lib/parse_tz.c     Tue Jul  8 18:02:32 2008
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: parse_tz.c,v 1.20.2.6.2.14 2007/12/31 07:20:05 sebastian Exp $ */
+/* $Id: parse_tz.c,v 1.20.2.6.2.15 2008/07/08 18:02:32 derick Exp $ */
 
 #include "timelib.h"
 
@@ -391,7 +391,7 @@
        switch (t->zone_type) {
                case TIMELIB_ZONETYPE_ABBR:
                case TIMELIB_ZONETYPE_OFFSET:
-                       return t->z * 60;
+                       return (t->z + t->dst) * 60;
                        
                case TIMELIB_ZONETYPE_ID:
                        gmt_offset = timelib_get_time_zone_info(t->sse, 
t->tz_info);
http://cvs.php.net/viewvc.cgi/php-src/ext/date/lib/tm2unixtime.c?r1=1.13.2.3.2.4&r2=1.13.2.3.2.5&diff_format=u
Index: php-src/ext/date/lib/tm2unixtime.c
diff -u php-src/ext/date/lib/tm2unixtime.c:1.13.2.3.2.4 
php-src/ext/date/lib/tm2unixtime.c:1.13.2.3.2.5
--- php-src/ext/date/lib/tm2unixtime.c:1.13.2.3.2.4     Sat Jan 26 16:26:47 2008
+++ php-src/ext/date/lib/tm2unixtime.c  Tue Jul  8 18:02:32 2008
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: tm2unixtime.c,v 1.13.2.3.2.4 2008/01/26 16:26:47 derick Exp $ */
+/* $Id: tm2unixtime.c,v 1.13.2.3.2.5 2008/07/08 18:02:32 derick Exp $ */
 
 #include "timelib.h"
 
@@ -186,10 +186,10 @@
        timelib_sll res = 0;
        timelib_sll eras;
 
-       eras = (year - 1970) / 400;
+       eras = (year - 1970) / 40000;
        if (eras != 0) {
-               year = year - (eras * 400);
-               res += (SECS_PER_ERA * eras);
+               year = year - (eras * 40000);
+               res += (SECS_PER_ERA * eras * 100);
        }
 
        if (year >= 1970) {



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

Reply via email to