summaryrefslogtreecommitdiff
path: root/src/py_xact.cc
diff options
context:
space:
mode:
authorAlexis Hildebrandt <afh@surryhill.net>2012-11-19 23:00:58 +0100
committerAlexis Hildebrandt <afh@surryhill.net>2012-11-19 23:00:58 +0100
commit6a5d6a88cd626ee563b344657faec2ceb62b7f59 (patch)
treea92b4107277facc34b875d1790b67f632c0ee01b /src/py_xact.cc
parente77e9d692aea5a061f6fde144a56de085b1a74c4 (diff)
downloadfork-ledger-6a5d6a88cd626ee563b344657faec2ceb62b7f59.tar.gz
fork-ledger-6a5d6a88cd626ee563b344657faec2ceb62b7f59.tar.bz2
fork-ledger-6a5d6a88cd626ee563b344657faec2ceb62b7f59.zip
Fix crash when accessing the transaction code via post.xact.code using python
ledger would abort with the following error message: TypeError: No Python class registered for C++ class boost::optional<std::string> The changes pass a CallPolicy to make_getter when adding the transaction code property for python, so that the correct to_python conversion is made. For details see: http://www.boost.org/doc/libs/1_52_0/libs/python/doc/v2/faq.html#topythonconversionfailed
Diffstat (limited to 'src/py_xact.cc')
-rw-r--r--src/py_xact.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/py_xact.cc b/src/py_xact.cc
index 3d792c7b..96674207 100644
--- a/src/py_xact.cc
+++ b/src/py_xact.cc
@@ -119,8 +119,8 @@ void export_xact()
.def("__str__", py_xact_to_string)
.add_property("code",
- make_getter(&xact_t::code),
- make_setter(&xact_t::code))
+ make_getter(&xact_t::code, return_value_policy<return_by_value>()),
+ make_setter(&xact_t::code, return_value_policy<return_by_value>()))
.add_property("payee",
make_getter(&xact_t::payee),
make_setter(&xact_t::payee))
@@ -157,6 +157,8 @@ void export_xact()
make_getter(&period_xact_t::period_string),
make_setter(&period_xact_t::period_string))
;
+
+ register_optional_to_python<std::string>();
}
} // namespace ledger