diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2005-08-21 13:19:36 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:34:15 -0500 |
commit | 9796ba264ca1ad8a7ec178ecfec6331d4cac4349 (patch) | |
tree | 35424ddd9e0b22296882b7aa6aa971b4bd124b4d /source4/build | |
parent | 375d11ac788af6e0d9b95cfce9dcbe54024d7505 (diff) | |
download | samba-9796ba264ca1ad8a7ec178ecfec6331d4cac4349.tar.gz samba-9796ba264ca1ad8a7ec178ecfec6331d4cac4349.tar.bz2 samba-9796ba264ca1ad8a7ec178ecfec6331d4cac4349.zip |
r9445: Support flags, add DATA_BLOB support
(This used to be commit cb5b23f0382ea7e242248cdfbbed82bc4eedfe42)
Diffstat (limited to 'source4/build')
-rw-r--r-- | source4/build/pidl/Parse/Pidl/Samba/TDR.pm | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/source4/build/pidl/Parse/Pidl/Samba/TDR.pm b/source4/build/pidl/Parse/Pidl/Samba/TDR.pm index fb9dd0daea..b9bfd83e41 100644 --- a/source4/build/pidl/Parse/Pidl/Samba/TDR.pm +++ b/source4/build/pidl/Parse/Pidl/Samba/TDR.pm @@ -50,6 +50,13 @@ sub ParserElement($$$) $name = ", \"$e->{NAME}\"$array"; } + if (has_property($e, "flag")) { + pidl "{"; + indent; + pidl "uint32_t saved_flags = tdr->flags;"; + pidl "tdr->flags |= $e->{PROPERTIES}->{flag};"; + } + if (has_property($e, "charset")) { fatal($e,"charset() on non-array element") unless (defined($e->{ARRAY_LEN}) and scalar(@{$e->{ARRAY_LEN}}) > 0); @@ -59,6 +66,7 @@ sub ParserElement($$$) return; } + if (has_property($e, "switch_is")) { $switch = ", " . ParseExpr($e->{PROPERTIES}->{switch_is}, $env); } @@ -82,6 +90,12 @@ sub ParserElement($$$) pidl "TDR_CHECK(tdr_$t\_$e->{TYPE}(tdr$name$switch, &v->$e->{NAME}$array));"; if ($array) { deindent; pidl "}"; } + + if (has_property($e, "flag")) { + pidl "tdr->flags = saved_flags;"; + deindent; + pidl "}"; + } } sub ParserStruct($$$$) |