diff options
author | Alexis Hildebrandt <afh@surryhill.net> | 2012-11-19 23:00:58 +0100 |
---|---|---|
committer | Alexis Hildebrandt <afh@surryhill.net> | 2012-11-19 23:00:58 +0100 |
commit | 6a5d6a88cd626ee563b344657faec2ceb62b7f59 (patch) | |
tree | a92b4107277facc34b875d1790b67f632c0ee01b /src/py_xact.cc | |
parent | e77e9d692aea5a061f6fde144a56de085b1a74c4 (diff) | |
download | fork-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.cc | 6 |
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 |