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