From f25cb10514a054b785cb612722c95594e90eb2cd Mon Sep 17 00:00:00 2001 From: mccallum Date: Mon, 6 Jan 1997 22:22:30 +0000 Subject: [PATCH] * src/mframe.m (mframe_build_return()): Cooperate with [Connection forwardForProxy:selector:argFrame:] so that it's callback function is called to tell it dismiss the ConnectedDecoder. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2017 72102866-910b-0410-8b05-ffd578937521 --- Source/mframe.m | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/mframe.m b/Source/mframe.m index 8c1140938..0b5ceac5a 100644 --- a/Source/mframe.m +++ b/Source/mframe.m @@ -345,7 +345,6 @@ mframe_dissect_call (arglist_t argframe, const char *type, pass-by-reference parameters. The ENCODER function should place the value at memory location DATA wherever the user wants to record the ARGNUM'th return value. - */ void @@ -773,7 +772,11 @@ mframe_do_call (const char *encoded_types, functions after this one. The memory for the retframe is alloca()'ed, not malloc()'ed, and therefore is on the stack and can be tromped-on by future function calls. - */ + + The callback function is finally called with the 'type' set to a nul pointer + to tell it that the return value and all return parameters have been + dealt with. This permits the function to do any tidying up necessary. +*/ retval_t mframe_build_return (arglist_t argframe, @@ -942,6 +945,7 @@ mframe_build_return (arglist_t argframe, } } } + (*decoder) (0, 0, 0, 0); /* Tell it we have finished. */ } else /* matches `if (out_parameters)' */ {