Le dimanche 22 novembre 2009 à 13:44 +0000, Mark Cave-Ayland a écrit :
Laurent Vivier wrote:
Same result as previous one: yaboot hangs, but quik exits with: "call-method seek: exception -21"
Regards, Laurent
Thanks Laurent. Now I get it: the conversion routine in modules/client.c mistakenly put the CIF arguments into Forth the wrong way around using this piece of code:
for( i=pb->nargs-1; i>=0; i-- ) PUSH( pb->args[i] );
So, in other words: in order to fix this, we need to reverse the above loop so that the arguments are simply pushed onto the Forth stack in forward order, and then alter the Forth client interface words to take the new ordering into account. Then the CIF words can be called correctly from both Fcode and the C interface, and both our cases should work.
I agree with that.
Regards, Laurent