r23709 - gnucash/trunk/src/report/standard-reports - Don't leak prices in the (non-advanced) portfolio report.
Mike Alexander
mta at code.gnucash.org
Sun Jan 19 02:08:52 EST 2014
Author: mta
Date: 2014-01-19 02:08:52 -0500 (Sun, 19 Jan 2014)
New Revision: 23709
Trac: http://svn.gnucash.org/trac/changeset/23709
Modified:
gnucash/trunk/src/report/standard-reports/portfolio.scm
Log:
Don't leak prices in the (non-advanced) portfolio report.
Modified: gnucash/trunk/src/report/standard-reports/portfolio.scm
===================================================================
--- gnucash/trunk/src/report/standard-reports/portfolio.scm 2014-01-19 07:08:45 UTC (rev 23708)
+++ gnucash/trunk/src/report/standard-reports/portfolio.scm 2014-01-19 07:08:52 UTC (rev 23709)
@@ -157,8 +157,10 @@
"number-cell" value)))
;;(display (sprintf #f "Shares: %6.6d " (gnc-numeric-to-double units)))
;;(display units) (newline)
+ (if price (gnc-price-unref price))
(table-add-stock-rows-internal rest (not odd-row?)))
- (table-add-stock-rows-internal rest odd-row?)))))
+ (begin (if price (gnc-price-unref price))
+ (table-add-stock-rows-internal rest odd-row?))))))
(set! work-to-do (length accounts))
(table-add-stock-rows-internal accounts #t)))
@@ -209,22 +211,28 @@
pricealist foreign date)))))
((pricedb-latest)
(lambda (foreign date)
- (let ((price
- (gnc-pricedb-lookup-latest-any-currency
- pricedb foreign)))
- (if (and price (> (length price) 0))
- (let ((v (gnc-price-get-value (car price))))
- (cons (car price) v))
- (cons #f (gnc-numeric-zero))))))
+ (let* ((price
+ (gnc-pricedb-lookup-latest-any-currency
+ pricedb foreign))
+ (fn (if (and price (> (length price) 0))
+ (let ((v (gnc-price-get-value (car price))))
+ (gnc-price-ref (car price))
+ (cons (car price) v))
+ (cons #f (gnc-numeric-zero)))))
+ (if price (gnc-price-list-destroy price))
+ fn)))
((pricedb-nearest)
(lambda (foreign date)
- (let ((price
- (gnc-pricedb-lookup-nearest-in-time-any-currency
- pricedb foreign (timespecCanonicalDayTime date))))
- (if (and price (> (length price) 0))
- (let ((v (gnc-price-get-value (car price))))
- (cons (car price) v))
- (cons #f (gnc-numeric-zero)))))))))
+ (let* ((price
+ (gnc-pricedb-lookup-nearest-in-time-any-currency
+ pricedb foreign (timespecCanonicalDayTime date)))
+ (fn (if (and price (> (length price) 0))
+ (let ((v (gnc-price-get-value (car price))))
+ (gnc-price-ref (car price))
+ (cons (car price) v))
+ (cons #f (gnc-numeric-zero)))))
+ (if price (gnc-price-list-destroy price))
+ fn))))))
(gnc:html-table-set-col-headers!
table
More information about the gnucash-changes
mailing list