svn commit: samba r15652 - in
branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl: .
jelmer at samba.org
jelmer at samba.org
Tue May 16 23:49:32 GMT 2006
Author: jelmer
Date: 2006-05-16 23:49:31 +0000 (Tue, 16 May 2006)
New Revision: 15652
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15652
Log:
Fix aliases mechanism (fixes #3710)
Modified:
branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm
branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm
Changeset:
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm 2006-05-16 22:25:13 UTC (rev 15651)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/NDR.pm 2006-05-16 23:49:31 UTC (rev 15652)
@@ -37,7 +37,7 @@
@EXPORT = qw(GetPrevLevel GetNextLevel ContainsDeferred ContainsString);
use strict;
-use Parse::Pidl::Typelist qw(hasType getType);
+use Parse::Pidl::Typelist qw(hasType getType expandAlias);
use Parse::Pidl::Util qw(has_property property_matches);
# Alignment of the built-in scalar types
@@ -364,6 +364,8 @@
{
my $e = shift;
+ $e->{TYPE} = expandAlias($e->{TYPE});
+
return {
NAME => $e->{NAME},
TYPE => $e->{TYPE},
@@ -549,7 +551,7 @@
}
if ($d->{RETURN_TYPE} ne "void") {
- $rettype = $d->{RETURN_TYPE};
+ $rettype = expandAlias($d->{RETURN_TYPE});
}
my $async = 0;
Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm
===================================================================
--- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm 2006-05-16 22:25:13 UTC (rev 15651)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Typelist.pm 2006-05-16 23:49:31 UTC (rev 15652)
@@ -7,7 +7,7 @@
require Exporter;
@ISA = qw(Exporter);
- at EXPORT_OK = qw(hasType getType mapType scalar_is_reference);
+ at EXPORT_OK = qw(hasType getType mapType scalar_is_reference expandAlias);
use vars qw($VERSION);
$VERSION = '0.01';
@@ -72,6 +72,29 @@
"ipv4address" => "const char *",
);
+my %aliases = (
+ "error_status_t" => "uint32",
+ "boolean8" => "uint8",
+ "boolean32" => "uint32",
+ "DWORD" => "uint32",
+ "int" => "int32",
+ "WORD" => "uint16",
+ "char" => "uint8",
+ "long" => "int32",
+ "short" => "int16",
+ "HYPER_T" => "hyper",
+ "HRESULT" => "COMRESULT",
+);
+
+sub expandAlias($)
+{
+ my $name = shift;
+
+ return $aliases{$name} if defined($aliases{$name});
+
+ return $name;
+}
+
# map from a IDL type to a C header type
sub mapScalarType($)
{
@@ -148,24 +171,6 @@
}
}
-my %aliases = (
- "DWORD" => "uint32",
- "int" => "int32",
- "WORD" => "uint16",
- "char" => "uint8",
- "long" => "int32",
- "short" => "int16",
- "HYPER_T" => "hyper",
- "HRESULT" => "COMRESULT",
-);
-
-sub RegisterAliases()
-{
- foreach (keys %aliases) {
- $typedefs{$_} = $typedefs{$aliases{$_}};
- }
-}
-
sub enum_type_fn($)
{
my $enum = shift;
@@ -196,6 +201,7 @@
my $t = shift;
return "void" unless defined($t);
my $dt;
+ $t = expandAlias($t);
unless ($dt or ($dt = getType($t))) {
# Best guess
@@ -237,6 +243,5 @@
}
RegisterScalars();
-RegisterAliases();
1;
More information about the samba-cvs
mailing list