Am Montag, 8. September 2014, 07:17:47 schrieb John Ralls: > On Sep 8, 2014, at 5:31 AM, Christian Stimming <christ...@cstimming.de> wrote: > > Zitat von John Ralls <jra...@ceridwen.us>: > >>> recently I noticed the "trans-retrieval" slot in the aqbanking account > >>> doesn't remember its value. > >> > >> Christian, > >> > >> Yeah, fixed and pushed, e210f8c. > >> > >> The difference was that your test used the defective accessor function > >> and mine used qof_instance_get directly with the right parameter type > >> (Timespec ** instead of Timespec *).> > > Ah, the wonders of zero compile-time checks of variable argument lists in > > C... > > > > Thanks a lot for fixing this! > > It's not C's fault; C compiler's know the difference between pointers and > pointers-to-pointers and how to raise type errors. It's GValue's conversion > of everything to void* that defeats the type checking.
Err... no, it is indeed C's fault: The function in question, qof_instance_get and set, uses a variable argument list (variadic arguments), terminated by the NULL pointer in the call, and this variable arguments are not at all compile- time checked. Using qof_instance_get is what you inserted here in 272655b60c0e30726, including the bug you fortunately now fixed. If there is another interface that gives us some more compile time checking, feel free to propose it here and/or in the docs of qof_instance_get. Or is this just a fundamental (bad) property of g_object's property system that we can't avoid? Best Regards, Christian _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel