Module: wine Branch: master Commit: 631fb9b652dbb3fad5705d7ec08b123e8361db02 URL: http://source.winehq.org/git/wine.git/?a=commit;h=631fb9b652dbb3fad5705d7ec0...
Author: Alexandre Julliard julliard@winehq.org Date: Tue May 3 13:09:09 2011 +0200
winebuild: Output relay thunks for stub functions when the arguments are known.
---
tools/winebuild/spec32.c | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c index 8999b88..a5b4118 100644 --- a/tools/winebuild/spec32.c +++ b/tools/winebuild/spec32.c @@ -53,7 +53,18 @@ static inline int needs_relay( const ORDDEF *odp ) /* skip nonexistent entry points */ if (!odp) return 0; /* skip non-functions */ - if (odp->type != TYPE_STDCALL && odp->type != TYPE_CDECL && odp->type != TYPE_THISCALL) return 0; + switch (odp->type) + { + case TYPE_STDCALL: + case TYPE_CDECL: + case TYPE_THISCALL: + break; + case TYPE_STUB: + if (odp->u.func.nb_args != -1) break; + /* fall through */ + default: + return 0; + } /* skip norelay and forward entry points */ if (odp->flags & (FLAG_NORELAY|FLAG_FORWARD)) return 0; /* skip register entry points on x86_64 */