__RPC_STUB is a calling convention as well (#defined as __stdcall).
This commit is contained in:
parent
a17528cd0d
commit
eb3fec1b87
|
@ -309,7 +309,7 @@ sub calling_convention16($) {
|
||||||
} elsif(/^(?:VFWAPIV|WINAPIV)$/) {
|
} elsif(/^(?:VFWAPIV|WINAPIV)$/) {
|
||||||
if(!defined($suffix)) { return undef; }
|
if(!defined($suffix)) { return undef; }
|
||||||
return "pascal$suffix"; # FIXME: Is this correct?
|
return "pascal$suffix"; # FIXME: Is this correct?
|
||||||
} elsif(/^(?:__stdcall|NET_API_FUNCTION|RPC_ENTRY|VFWAPI|WINAPI|CALLBACK)$/) {
|
} elsif(/^(?:__stdcall|__RPC_STUB|NET_API_FUNCTION|RPC_ENTRY|VFWAPI|WINAPI|CALLBACK)$/) {
|
||||||
if(!defined($suffix)) { return undef; }
|
if(!defined($suffix)) { return undef; }
|
||||||
return "pascal$suffix";
|
return "pascal$suffix";
|
||||||
} elsif($_ eq "__asm") {
|
} elsif($_ eq "__asm") {
|
||||||
|
@ -327,7 +327,7 @@ sub calling_convention32($) {
|
||||||
return "cdecl";
|
return "cdecl";
|
||||||
} elsif(/^(?:VFWAPIV|WINAPIV)$/) {
|
} elsif(/^(?:VFWAPIV|WINAPIV)$/) {
|
||||||
return "varargs";
|
return "varargs";
|
||||||
} elsif(/^(?:__stdcall|NET_API_FUNCTION|RPC_ENTRY|VFWAPI|WINAPI|CALLBACK)$/) {
|
} elsif(/^(?:__stdcall|__RPC_STUB|NET_API_FUNCTION|RPC_ENTRY|VFWAPI|WINAPI|CALLBACK)$/) {
|
||||||
return "stdcall";
|
return "stdcall";
|
||||||
} elsif($_ eq "__asm") {
|
} elsif($_ eq "__asm") {
|
||||||
return "asm";
|
return "asm";
|
||||||
|
|
|
@ -85,7 +85,7 @@ sub _check_function($$$$$$) {
|
||||||
$implemented_calling_convention = "cdecl";
|
$implemented_calling_convention = "cdecl";
|
||||||
} elsif($calling_convention =~ /^(?:VFWAPIV|WINAPIV)$/) {
|
} elsif($calling_convention =~ /^(?:VFWAPIV|WINAPIV)$/) {
|
||||||
$implemented_calling_convention = "varargs";
|
$implemented_calling_convention = "varargs";
|
||||||
} elsif($calling_convention =~ /^(?:__stdcall|NET_API_FUNCTION|RPC_ENTRY|VFWAPI|WINAPI|CALLBACK)$/) {
|
} elsif($calling_convention =~ /^(?:__stdcall|__RPC_STUB|NET_API_FUNCTION|RPC_ENTRY|VFWAPI|WINAPI|CALLBACK)$/) {
|
||||||
if(defined($implemented_return_kind) && $implemented_return_kind =~ /^(?:s_word|word|void)$/) {
|
if(defined($implemented_return_kind) && $implemented_return_kind =~ /^(?:s_word|word|void)$/) {
|
||||||
$implemented_calling_convention = "pascal16";
|
$implemented_calling_convention = "pascal16";
|
||||||
} else {
|
} else {
|
||||||
|
@ -101,7 +101,7 @@ sub _check_function($$$$$$) {
|
||||||
$implemented_calling_convention = "cdecl";
|
$implemented_calling_convention = "cdecl";
|
||||||
} elsif($calling_convention =~ /^(?:VFWAPIV|WINAPIV)$/) {
|
} elsif($calling_convention =~ /^(?:VFWAPIV|WINAPIV)$/) {
|
||||||
$implemented_calling_convention = "varargs";
|
$implemented_calling_convention = "varargs";
|
||||||
} elsif($calling_convention =~ /^(?:__stdcall|NET_API_FUNCTION|RPC_ENTRY|VFWAPI|WINAPI|CALLBACK)$/) {
|
} elsif($calling_convention =~ /^(?:__stdcall|__RPC_STUB|NET_API_FUNCTION|RPC_ENTRY|VFWAPI|WINAPI|CALLBACK)$/) {
|
||||||
if(defined($implemented_return_kind) && $implemented_return_kind eq "longlong") {
|
if(defined($implemented_return_kind) && $implemented_return_kind eq "longlong") {
|
||||||
$implemented_calling_convention = "stdcall"; # FIXME: Check entry flags
|
$implemented_calling_convention = "stdcall"; # FIXME: Check entry flags
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -372,7 +372,7 @@ sub parse_c_file($$) {
|
||||||
}
|
}
|
||||||
next;
|
next;
|
||||||
} elsif(/(extern\s+|static\s+)?((struct\s+|union\s+|enum\s+|signed\s+|unsigned\s+)?\w+((\s*\*)+\s*|\s+))
|
} elsif(/(extern\s+|static\s+)?((struct\s+|union\s+|enum\s+|signed\s+|unsigned\s+)?\w+((\s*\*)+\s*|\s+))
|
||||||
((__cdecl|__stdcall|CDECL|NET_API_FUNCTION|RPC_ENTRY|VFWAPIV|VFWAPI|WINAPIV|WINAPI|CALLBACK)\s+)?
|
((__cdecl|__stdcall|__RPC_STUB|CDECL|NET_API_FUNCTION|RPC_ENTRY|VFWAPIV|VFWAPI|WINAPIV|WINAPI|CALLBACK)\s+)?
|
||||||
(\w+(\(\w+\))?)\s*\((.*?)\)\s*(\{|\;)/sx)
|
(\w+(\(\w+\))?)\s*\((.*?)\)\s*(\{|\;)/sx)
|
||||||
{
|
{
|
||||||
my @lines = split(/\n/, $&);
|
my @lines = split(/\n/, $&);
|
||||||
|
@ -448,8 +448,8 @@ sub parse_c_file($$) {
|
||||||
((?:struct\s+|union\s+|enum\s+|register\s+|(?:signed\s+|unsigned\s+)
|
((?:struct\s+|union\s+|enum\s+|register\s+|(?:signed\s+|unsigned\s+)
|
||||||
(?:short\s+(?=int)|long\s+(?=int))?)?\w+)\s*
|
(?:short\s+(?=int)|long\s+(?=int))?)?\w+)\s*
|
||||||
((?:const|volatile)?\s*(?:\*\s*(?:const|volatile)?\s*?)*)\s*
|
((?:const|volatile)?\s*(?:\*\s*(?:const|volatile)?\s*?)*)\s*
|
||||||
(?:__cdecl\s+|__stdcall\s+|CALLBACK\s+|CDECL\s+|NET_API_FUNCTION\s+|RPC_ENTRY\s+|STDMETHODCALLTYPE\s+|VFWAPIV\s+|VFWAPI\s+|WINAPIV\s+|WINAPI\s+)?
|
(?:__cdecl\s+|__stdcall\s+|__RPC_STUB\s+|CALLBACK\s+|CDECL\s+|NET_API_FUNCTION\s+|RPC_ENTRY\s+|STDMETHODCALLTYPE\s+|VFWAPIV\s+|VFWAPI\s+|WINAPIV\s+|WINAPI\s+)?
|
||||||
\(\s*(?:__cdecl|__stdcall|CALLBACK|CDECL|NET_API_FUNCTION|RPC_ENTRY|STDMETHODCALLTYPE|VFWAPIV|VFWAPI|WINAPIV|WINAPI)?\s*\*\s*((?:\w+)?)\s*\)\s*
|
\(\s*(?:__cdecl|__stdcall|__RPC_STUB|CALLBACK|CDECL|NET_API_FUNCTION|RPC_ENTRY|STDMETHODCALLTYPE|VFWAPIV|VFWAPI|WINAPIV|WINAPI)?\s*\*\s*((?:\w+)?)\s*\)\s*
|
||||||
\(\s*(.*?)\s*\)$/x)
|
\(\s*(.*?)\s*\)$/x)
|
||||||
{
|
{
|
||||||
my $return_type = $1;
|
my $return_type = $1;
|
||||||
|
|
Loading…
Reference in New Issue