[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: Other W->A crosscalls
From: Francois Gouget <fgouget () free ! fr>
Date: 2004-08-28 19:03:28
Message-ID: Pine.LNX.4.58.0408282101060.9319 () amboise ! dolphin
[Download RAW message or body]
On Wed, 25 Aug 2004, Rolf Kalbermatter wrote:
[...]
> I see many "xxxAW calls xxxA function" mainly in the shell related DLLs. This
> is of course not something you can really get rid of, so the script should
> be able to exclude those cases.
I couldn't test as I don't have smatch, but I think that simply adding
this line in the right place should do the trick.
$func_in = "No function" if ($func_in =~ /AW$/);
See the attached script.
--
Francois Gouget fgouget@free.fr http://fgouget.free.fr/
We are Pentium of Borg. You will be approximated. Division is futile.
["wine_crosscalls.pl" (TEXT/x-perl)]
#!/usr/bin/perl
use smatch;
my $tmp;
my $func_in;
my $func_called;
while (my $data = get_data()) {
if ($data =~ /^function_decl (.*?)function_decl\((.*?)W\)/) {
$func_in = "$2W";
$func_in = "No function" if ($func_in =~ /AW$/);
} elsif ($data =~ /^function_decl (.*?)function_decl\((.*?)\)/) {
$func_in = "No function";
}
if (not $func_in =~ /^No function$/) {
$tmp = $data;
while ($tmp =~ /call_expr\(\(addr_expr function_decl\(([^\)]*?)\)(.*)/) {
$func_called = $1;
$tmp = $2;
if ($func_called =~ /(.*?)A$/) {
print get_filename(), " ", get_lineno(), " $func_in: call to $func_called\n";
}
}
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic