summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-01-05 00:31:28 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:08:18 -0500
commit5526a6e891d36c02d8e52a6fdb56c3da5b9e9cf5 (patch)
treebd8ec2021124c9ecbe0ca9a75bc7ef98411646af
parent0ba751b0aa0112139c419d72ae620df1d5c177b7 (diff)
downloadsamba-5526a6e891d36c02d8e52a6fdb56c3da5b9e9cf5.tar.gz
samba-5526a6e891d36c02d8e52a6fdb56c3da5b9e9cf5.tar.bz2
samba-5526a6e891d36c02d8e52a6fdb56c3da5b9e9cf5.zip
r4523: the PROPERTIES change for typedef was not quite as simple as I thought. This puts in a workaround
that fixes things for now (This used to be commit 0939b83a0f07563edc6448fb6a87a573dbaa9f6c)
-rw-r--r--source4/build/pidl/idl.pm14
-rw-r--r--source4/build/pidl/parser.pm12
2 files changed, 19 insertions, 7 deletions
diff --git a/source4/build/pidl/idl.pm b/source4/build/pidl/idl.pm
index 8a1bfd2b30..ed0192e3e9 100644
--- a/source4/build/pidl/idl.pm
+++ b/source4/build/pidl/idl.pm
@@ -1666,9 +1666,9 @@ sub
#line 24 "build/pidl/idl.yp"
{$_[3] => {
"TYPE" => "COCLASS",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "DATA" => $_[5],
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "DATA" => $_[5],
}}
],
[#Rule 5
@@ -1686,10 +1686,10 @@ sub
#line 38 "build/pidl/idl.yp"
{$_[3] => {
"TYPE" => "INTERFACE",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "BASE" => $_[4],
- "DATA" => $_[6],
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "BASE" => $_[4],
+ "DATA" => $_[6],
}}
],
[#Rule 8
diff --git a/source4/build/pidl/parser.pm b/source4/build/pidl/parser.pm
index 88d6cee0db..5a67f3d193 100644
--- a/source4/build/pidl/parser.pm
+++ b/source4/build/pidl/parser.pm
@@ -1259,6 +1259,10 @@ sub ParseTypedefPush($)
return;
}
+ if (defined($e->{PROPERTIES}) && !defined($e->{DATA}->{PROPERTIES})) {
+ $e->{DATA}->{PROPERTIES} = $e->{PROPERTIES};
+ }
+
if ($e->{DATA}->{TYPE} eq "STRUCT") {
pidl $static . "NTSTATUS ndr_push_$e->{NAME}(struct ndr_push *ndr, int ndr_flags, struct $e->{NAME} *r)";
pidl "\n{\n";
@@ -1292,6 +1296,10 @@ sub ParseTypedefPull($)
my($e) = shift;
my $static = fn_prefix($e);
+ if (defined($e->{PROPERTIES}) && !defined($e->{DATA}->{PROPERTIES})) {
+ $e->{DATA}->{PROPERTIES} = $e->{PROPERTIES};
+ }
+
if (! needed::is_needed("pull_$e->{NAME}")) {
# print "pull_$e->{NAME} not needed\n";
return;
@@ -1329,6 +1337,10 @@ sub ParseTypedefPrint($)
{
my($e) = shift;
+ if (defined($e->{PROPERTIES}) && !defined($e->{DATA}->{PROPERTIES})) {
+ $e->{DATA}->{PROPERTIES} = $e->{PROPERTIES};
+ }
+
if ($e->{DATA}->{TYPE} eq "STRUCT") {
pidl "void ndr_print_$e->{NAME}(struct ndr_print *ndr, const char *name, struct $e->{NAME} *r)";
pidl "\n{\n";