diff options
Diffstat (limited to 'source4/build/pidl')
-rw-r--r-- | source4/build/pidl/header.pm | 3 | ||||
-rw-r--r-- | source4/build/pidl/parser.pm | 8 |
2 files changed, 7 insertions, 4 deletions
diff --git a/source4/build/pidl/header.pm b/source4/build/pidl/header.pm index c71b8fbeb1..cdc4522517 100644 --- a/source4/build/pidl/header.pm +++ b/source4/build/pidl/header.pm @@ -241,10 +241,9 @@ sub HeaderInterface($) $res .= "#define DCERPC_$name\_UUID \"$if_uuid\"\n"; $res .= "#define DCERPC_$name\_VERSION $if_version\n"; $res .= "#define DCERPC_$name\_NAME \"$interface->{NAME}\"\n\n"; + $res .= "extern const struct dcerpc_interface_table dcerpc_table_$interface->{NAME};\n\n"; } - $res .= "extern struct dcerpc_interface_table dcerpc_table_$interface->{NAME};\n\n"; - foreach my $d (@{$data}) { if ($d->{TYPE} eq "FUNCTION") { my $u_name = uc $d->{NAME}; diff --git a/source4/build/pidl/parser.pm b/source4/build/pidl/parser.pm index a7dad3707c..5c80812ec1 100644 --- a/source4/build/pidl/parser.pm +++ b/source4/build/pidl/parser.pm @@ -1246,13 +1246,17 @@ sub FunctionTable($) my($interface) = shift; my($data) = $interface->{DATA}; my $count = 0; + my $uname = uc $interface->{NAME}; foreach my $d (@{$data}) { if ($d->{TYPE} eq "FUNCTION") { $count++; } } + if ($count == 0) { + return; + } - pidl "static const struct dcerpc_interface_call calls[] = {\n"; + pidl "static const struct dcerpc_interface_call $interface->{NAME}\_calls[] = {\n"; foreach my $d (@{$data}) { if ($d->{TYPE} eq "FUNCTION") { pidl "\t{\n"; @@ -1266,7 +1270,7 @@ sub FunctionTable($) } pidl "\t{ NULL, 0, NULL, NULL }\n};\n\n"; - pidl "\nstruct dcerpc_interface_table dcerpc_table_$interface->{NAME} = {\"$interface->{NAME}\", $count,calls};\n\n"; + pidl "\nconst struct dcerpc_interface_table dcerpc_table_$interface->{NAME} = {\"$interface->{NAME}\", DCERPC_$uname\_UUID, DCERPC_$uname\_VERSION, $count, $interface->{NAME}\_calls};\n\n"; } |