]> granicus.if.org Git - php/commitdiff
Fixed memory leak
authorDmitry Stogov <dmitry@php.net>
Tue, 29 Jul 2008 12:56:18 +0000 (12:56 +0000)
committerDmitry Stogov <dmitry@php.net>
Tue, 29 Jul 2008 12:56:18 +0000 (12:56 +0000)
ext/date/php_date.c

index 969928cad7f65fa24d2bb481e099da616ab20d61..38a3684ba21f484de00503ec7d6cdee6baaa6378 100644 (file)
@@ -1974,6 +1974,7 @@ PHP_FUNCTION(getdate)
 /* define an overloaded iterator structure */
 typedef struct {
        zend_object_iterator  intern;
+       zval                 *date_period_zval;
        zval                 *current;
        php_period_obj       *object;
        int                   current_index;
@@ -1999,6 +2000,8 @@ static void date_period_it_dtor(zend_object_iterator *iter TSRMLS_DC)
 
        date_period_it_invalidate_current(iter TSRMLS_CC);
 
+       zval_ptr_dtor(&iterator->date_period_zval);
+
        efree(iterator);
 }
 /* }}} */
@@ -2112,7 +2115,7 @@ zend_object_iterator *date_object_period_get_iterator(zend_class_entry *ce, zval
     Z_ADDREF_P(object);
     iterator->intern.data = (void*) dpobj;
     iterator->intern.funcs = &date_period_it_funcs;
-    MAKE_STD_ZVAL(iterator->current);
+       iterator->date_period_zval = object;
     iterator->object = dpobj;
     iterator->current = NULL;