Python bindings: Account.getName() raises TypeError

Derek Atkins warlord at MIT.EDU
Mon Mar 17 13:52:37 EDT 2014


John Ralls <jralls at ceridwen.us> writes:

>> TypeError: in method 'xaccAccountGetName', argument 1 of type
>> Account const *'
[snip]
>
> The signature of xaccAccountGetName is const char* xaccAccountGetName
> (const Account *); the const was added in 2005. A "const Account *" is
> not the same as an "Account const *": The former means that the
> contents of the pointer won't change, the latter means that the
> pointer itself won't change (see
> https://www.cs.bu.edu/teaching/cpp/const/).
>
> Somewhere in the SWIG-generated Python-to-C translation code the
> argument type is wrong, but it's not directly in the stack trace from
> Python. It's more likely due to a change in SWIG than to a change in
> GnuCash.

Could it be a const v non-const issue?  I.e., if python has an Account*
object (non-const) does it realize that it can pass it to a function
that is asking for a const object (either const Account* or Account
const * -- doesn't matter)?  C certainly knows this, but it sounds like
Python might not.

> Regards,
> John Ralls

-derek

-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available


More information about the gnucash-devel mailing list