[PATCH 1/7] pidl: Add skip option to elements.
Andreas Schneider
asn at samba.org
Wed Mar 13 04:48:14 MDT 2013
This option allows to skip struct elements in pull and push function.
This can be used to pass flags to the structure e.g. for string values.
Signed-off-by: Andreas Schneider <asn at samba.org>
---
pidl/lib/Parse/Pidl/NDR.pm | 1 +
pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 12 ++++++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/pidl/lib/Parse/Pidl/NDR.pm b/pidl/lib/Parse/Pidl/NDR.pm
index ed7fdab..6827152 100644
--- a/pidl/lib/Parse/Pidl/NDR.pm
+++ b/pidl/lib/Parse/Pidl/NDR.pm
@@ -1073,6 +1073,7 @@ my %property_list = (
"noprint" => ["FUNCTION", "TYPEDEF", "STRUCT", "UNION", "ENUM", "BITMAP", "ELEMENT", "PIPE"],
"nopython" => ["FUNCTION", "TYPEDEF", "STRUCT", "UNION", "ENUM", "BITMAP"],
"todo" => ["FUNCTION"],
+ "skip" => ["ELEMENT"],
# union
"switch_is" => ["ELEMENT"],
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
index 8eb935b..5ffb678 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
@@ -958,7 +958,11 @@ sub ParseDataPull($$$$$$$)
$var_name = get_pointer_to($var_name);
- $self->pidl("NDR_CHECK(".TypeFunctionName("ndr_pull", $l->{DATA_TYPE})."($ndr, $ndr_flags, $var_name));");
+ if (has_property($e, "skip")) {
+ $self->pidl("/* [skip] '$var_name' */");
+ } else {
+ $self->pidl("NDR_CHECK(".TypeFunctionName("ndr_pull", $l->{DATA_TYPE})."($ndr, $ndr_flags, $var_name));");
+ }
my $pl = GetPrevLevel($e, $l);
@@ -996,7 +1000,11 @@ sub ParseDataPush($$$$$$$)
$var_name = get_pointer_to($var_name);
}
- $self->pidl("NDR_CHECK(".TypeFunctionName("ndr_push", $l->{DATA_TYPE})."($ndr, $ndr_flags, $var_name));");
+ if (has_property($e, "skip")) {
+ $self->pidl("/* [skip] '$var_name' */");
+ } else {
+ $self->pidl("NDR_CHECK(".TypeFunctionName("ndr_push", $l->{DATA_TYPE})."($ndr, $ndr_flags, $var_name));");
+ }
} else {
$self->ParseTypePush($l->{DATA_TYPE}, $ndr, $var_name, $primitives, $deferred);
}
--
1.8.1.5
More information about the samba-technical
mailing list