Commit 6932138f authored by Rémi Bernon's avatar Rémi Bernon Committed by Alexandre Julliard

winebuild: Split get_link_name into a separate get_abi_name helper.

parent c3769732
...@@ -728,28 +728,28 @@ const char *get_stub_name( const ORDDEF *odp, const DLLSPEC *spec ) ...@@ -728,28 +728,28 @@ const char *get_stub_name( const ORDDEF *odp, const DLLSPEC *spec )
} }
/* return the stdcall-decorated name for an entry point */ /* return the stdcall-decorated name for an entry point */
const char *get_link_name( const ORDDEF *odp ) static const char *get_abi_name( const ORDDEF *odp, const char *name )
{ {
static char *buffer; static char *buffer;
char *ret; char *ret;
if (target.cpu != CPU_i386) return odp->link_name; if (target.cpu != CPU_i386) return name;
switch (odp->type) switch (odp->type)
{ {
case TYPE_STDCALL: case TYPE_STDCALL:
if (is_pe()) if (is_pe())
{ {
if (odp->flags & FLAG_THISCALL) return odp->link_name; if (odp->flags & FLAG_THISCALL) return name;
if (odp->flags & FLAG_FASTCALL) ret = strmake( "@%s@%u", odp->link_name, get_args_size( odp )); if (odp->flags & FLAG_FASTCALL) ret = strmake( "@%s@%u", name, get_args_size( odp ));
else if (!kill_at) ret = strmake( "%s@%u", odp->link_name, get_args_size( odp )); else if (!kill_at) ret = strmake( "%s@%u", name, get_args_size( odp ));
else return odp->link_name; else return name;
} }
else else
{ {
if (odp->flags & FLAG_THISCALL) ret = strmake( "__thiscall_%s", odp->link_name ); if (odp->flags & FLAG_THISCALL) ret = strmake( "__thiscall_%s", name );
else if (odp->flags & FLAG_FASTCALL) ret = strmake( "__fastcall_%s", odp->link_name ); else if (odp->flags & FLAG_FASTCALL) ret = strmake( "__fastcall_%s", name );
else return odp->link_name; else return name;
} }
break; break;
...@@ -758,13 +758,13 @@ const char *get_link_name( const ORDDEF *odp ) ...@@ -758,13 +758,13 @@ const char *get_link_name( const ORDDEF *odp )
{ {
int args = get_args_size( odp ); int args = get_args_size( odp );
if (odp->flags & FLAG_REGISTER) args += get_ptr_size(); /* context argument */ if (odp->flags & FLAG_REGISTER) args += get_ptr_size(); /* context argument */
ret = strmake( "%s@%u", odp->link_name, args ); ret = strmake( "%s@%u", name, args );
} }
else return odp->link_name; else return name;
break; break;
default: default:
return odp->link_name; return name;
} }
free( buffer ); free( buffer );
...@@ -772,6 +772,11 @@ const char *get_link_name( const ORDDEF *odp ) ...@@ -772,6 +772,11 @@ const char *get_link_name( const ORDDEF *odp )
return ret; return ret;
} }
const char *get_link_name( const ORDDEF *odp )
{
return get_abi_name( odp, odp->link_name );
}
/******************************************************************* /*******************************************************************
* sort_func_list * sort_func_list
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment