Hello Everyone,

This extensions conflicts with pecl/date. Two extensions with the same
name makes it impossible to build any of these. Any resolutions for this?

- Frank

> iliaa         Tue Jun 14 19:40:57 2005 EDT
> 
>   Modified files:              
>     /php-src/ext/date php_date.c 
>     /php-src/ext/date/lib     datetime.c 
>   Log:
>   Fixed memory leaks.
>   
>   
>
http://cvs.php.net/diff.php/php-src/ext/date/php_date.c?r1=1.1&r2=1.2&ty=u
> Index: php-src/ext/date/php_date.c
> diff -u php-src/ext/date/php_date.c:1.1 php-src/ext/date/php_date.c:1.2
> --- php-src/ext/date/php_date.c:1.1   Tue Jun 14 17:32:27 2005
> +++ php-src/ext/date/php_date.c       Tue Jun 14 19:40:56 2005
> @@ -16,7 +16,7 @@
>    
+----------------------------------------------------------------------+
>   */
>  
> -/* $Id: php_date.c,v 1.1 2005/06/14 21:32:27 derick Exp $ */
> +/* $Id: php_date.c,v 1.2 2005/06/14 23:40:56 iliaa Exp $ */
>  
>  #include "php.h"
>  #include "php_streams.h"
> @@ -128,6 +128,7 @@
>               now = timelib_time_ctor();
>               timelib_unixtime2local(now, (signed long long) time(NULL), tzi);
>       } else {
> +             timelib_tzinfo_ctor(tzi);
>               RETURN_FALSE;
>       }
>  
> @@ -135,6 +136,16 @@
>       timelib_fill_holes(t, now, 0);
>       timelib_update_ts(t, tzi);
>       ts = timelib_date_to_int(t, &error);
> +
> +     /* if tz_info is not a copy, avoid double free */
> +     if (now->tz_info == tzi) {
> +             now->tz_info = NULL;
> +     }
> +
> +     timelib_time_dtor(now); 
> +     timelib_time_dtor(t);
> +     timelib_tzinfo_dtor(tzi);
> +
>       if (error) {
>               RETURN_FALSE;
>       } else {
>
http://cvs.php.net/diff.php/php-src/ext/date/lib/datetime.c?r1=1.1&r2=1.2&ty=u
> Index: php-src/ext/date/lib/datetime.c
> diff -u php-src/ext/date/lib/datetime.c:1.1
php-src/ext/date/lib/datetime.c:1.2
> --- php-src/ext/date/lib/datetime.c:1.1       Tue Jun 14 17:32:27 2005
> +++ php-src/ext/date/lib/datetime.c   Tue Jun 14 19:40:57 2005
> @@ -16,12 +16,18 @@
>    
+----------------------------------------------------------------------+
>   */
>  
> -/* $Id: datetime.c,v 1.1 2005/06/14 21:32:27 derick Exp $ */
> +/* $Id: datetime.c,v 1.2 2005/06/14 23:40:57 iliaa Exp $ */
>  
>  #include "timelib_structs.h"
>  #include "datetime.h"
>  #include <ctype.h>
>  
> +#define PHP_TIME_FREE(m)     +       if (m) {                +               
> free(m);        +               m = NULL;       +       }                     
>   +
>  timelib_time* timelib_time_ctor()
>  {
>       timelib_time *t;
> @@ -33,10 +39,8 @@
>  void timelib_time_tz_abbr_update(timelib_time* tm, char* tz_abbr)
>  {
>       int i;
> -
> -     if (tm->tz_abbr) {
> -             free(tm->tz_abbr);
> -     }
> +     
> +     PHP_TIME_FREE(tm->tz_abbr);
>       tm->tz_abbr = strdup(tz_abbr);
>       for (i = 0; i < strlen(tz_abbr); i++) {
>               tm->tz_abbr[i] = toupper(tz_abbr[i]);
> @@ -45,10 +49,12 @@
>  
>  void timelib_time_dtor(timelib_time* t)
>  {
> -     if (t->tz_abbr) {
> -             free(t->tz_abbr);
> +     PHP_TIME_FREE(t->tz_abbr);
> +     if (t->tz_info) {
> +             timelib_tzinfo_dtor(t->tz_info);
> +             t->tz_info = NULL;
>       }
> -     free(t);
> +     PHP_TIME_FREE(t);
>  }
>  
>  timelib_time_offset* timelib_time_offset_ctor()
> @@ -61,10 +67,8 @@
>  
>  void timelib_time_offset_dtor(timelib_time_offset* t)
>  {
> -     if (t->abbr) {
> -             free(t->abbr);
> -     }
> -     free(t);
> +     PHP_TIME_FREE(t->abbr);
> +     PHP_TIME_FREE(t);
>  }
>  
>  timelib_tzinfo* timelib_tzinfo_ctor(char *name)
> @@ -105,13 +109,13 @@
>  
>  void timelib_tzinfo_dtor(timelib_tzinfo *tz)
>  {
> -     free(tz->name);
> -     free(tz->trans);
> -     free(tz->trans_idx);
> -     free(tz->type);
> -     free(tz->timezone_abbr);
> -     free(tz->leap_times);
> -     free(tz);
> +     PHP_TIME_FREE(tz->name);
> +     PHP_TIME_FREE(tz->trans);
> +     PHP_TIME_FREE(tz->trans_idx);
> +     PHP_TIME_FREE(tz->type);
> +     PHP_TIME_FREE(tz->timezone_abbr);
> +     PHP_TIME_FREE(tz->leap_times);
> +     PHP_TIME_FREE(tz);
>  }
>  
>  char *timelib_get_tz_abbr_ptr(timelib_time *t)
> 
> -- 
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

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

Reply via email to