From 474bc360f4cb731099bdb1dab837579c43813280 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Sun, 15 Aug 2021 14:25:52 -0700 Subject: [PATCH] Improve converting vectors to SCM lists. --- libgnucash/app-utils/gnc-optiondb.i | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/libgnucash/app-utils/gnc-optiondb.i b/libgnucash/app-utils/gnc-optiondb.i index 5462a0d2aa..969d8ec77f 100644 --- a/libgnucash/app-utils/gnc-optiondb.i +++ b/libgnucash/app-utils/gnc-optiondb.i @@ -358,12 +358,9 @@ scm_from_value(GncOptionAccountList value) { SCM s_list = SCM_EOL; for (auto acct : value) - { - SCM elem = scm_list_1(SWIG_NewPointerObj(acct, SWIGTYPE_p_Account, 0)); - s_list = scm_append(scm_list_2(s_list, elem)); - } - - return s_list; + s_list = scm_cons(SWIG_NewPointerObj(acct, SWIGTYPE_p_Account, 0), + s_list); + return scm_reverse(s_list); } QofBook* gnc_option_test_book_new(); @@ -533,20 +530,18 @@ gnc_option_test_book_destroy(QofBook* book) { $result = SCM_EOL; for (auto acct : $1) - { - SCM elem = scm_list_1(SWIG_NewPointerObj(acct, SWIGTYPE_p_Account, 0)); - $result = scm_append(scm_list_2($result, elem)); - } + $result = scm_cons(SWIG_NewPointerObj(acct, SWIGTYPE_p_Account, 0), + $result); + $result = scm_reverse($result); } %typemap(out) GncOptionAccountList& { $result = SCM_EOL; for (auto acct : *$1) - { - SCM elem = scm_list_1(SWIG_NewPointerObj(acct, SWIGTYPE_p_Account, 0)); - $result = scm_append(scm_list_2($result, elem)); - } + $result = scm_cons(SWIG_NewPointerObj(acct, SWIGTYPE_p_Account, 0), + $result); + $result = scm_reverse ($result) } wrap_unique_ptr(GncOptionDBPtr, GncOptionDB);