mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
[options.scm] gnc:make-budget-option stores guid instead of object
because object may become stale if UI is used to delete it, leading to stale pointer and segfault. storing guid is safer, and will return null if budget is deleted.
This commit is contained in:
parent
53d93e0c44
commit
5a812ca1eb
@ -470,6 +470,13 @@ the option '~a'."))
|
||||
(selection-budget initial-budget)
|
||||
)
|
||||
|
||||
|
||||
(define (convert-to-guid item)
|
||||
(if (string? item) item (gncBudgetGetGUID item)))
|
||||
|
||||
(define (convert-to-budget item)
|
||||
(if (string? item) (gnc-budget-lookup item (gnc-get-current-book)) item))
|
||||
|
||||
(gnc:make-option
|
||||
section
|
||||
name
|
||||
@ -478,12 +485,12 @@ the option '~a'."))
|
||||
documentation-string
|
||||
|
||||
;; getter -- Return a budget pointer
|
||||
(lambda ()
|
||||
selection-budget)
|
||||
(lambda ()
|
||||
(convert-to-budget selection-budget))
|
||||
|
||||
;; setter -- takes a budget
|
||||
(lambda (x)
|
||||
(set! selection-budget x))
|
||||
(set! selection-budget (convert-to-guid x)))
|
||||
|
||||
;; default-getter
|
||||
;; Default now is #f so saving is independent of book-level default
|
||||
|
Loading…
Reference in New Issue
Block a user