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

index 04466a1e5342340c8e14b71269d000bbc53fcbdc..310b0bdfca46f45c299a07d9ed432bc6063edc91 100644 (file)
@@ -1842,6 +1842,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;
@@ -1867,6 +1868,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);
 }
 /* }}} */
@@ -1980,7 +1983,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;