winapi_check: Fix handling of the 'longlong' arguments.

Francois Gouget fgouget at free.fr
Tue Feb 20 08:48:32 CST 2007


---

It would be much better if spec files had a 'longlong' parameter type. 
But they don't and use 'double' instead. This forces winapi_check to do 
some ugly hacks and no doubt results in messed up relay traces too. 
Fortunately longlong parameters are relatively rare.

 tools/winapi/winapi_local.pm |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/winapi/winapi_local.pm b/tools/winapi/winapi_local.pm
index f46d1ec..9cea587 100644
--- a/tools/winapi/winapi_local.pm
+++ b/tools/winapi/winapi_local.pm
@@ -187,7 +187,7 @@ sub _check_function($$$$$$) {
 		("double", "double");
 	    } elsif(defined($kind) && $kind eq "longlong") {
 		$n+=1;
-		"double";
+		"longlong";
 	    } else {
 		$n++;
 		$kind;
@@ -230,7 +230,8 @@ sub _check_function($$$$$$) {
 		    $output->write("argument " . ($n + 1) . " type is forbidden: " .
 				   "$argument_types[$n] ($argument_kinds[$n])\n");
 		}
-	    } elsif($argument_kinds[$n] ne $declared_argument_kinds[$n]) {
+	    } elsif($argument_kinds[$n] ne $declared_argument_kinds[$n] &&
+                   !($argument_kinds[$n] eq "longlong" && $declared_argument_kinds[$n] eq "double")) {
 		if($options->report_argument_kind($argument_kinds[$n]) ||
 		   $options->report_argument_kind($declared_argument_kinds[$n]))
 		{
-- 
1.4.4.4




More information about the wine-patches mailing list