diff options
author | Andrew Bartlett <abartlet@samba.org> | 2023-03-24 15:00:33 +1300 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2023-03-31 01:48:30 +0000 |
commit | 976dfc7585fcce594f5e77c8bb8ccc9644625f95 (patch) | |
tree | 1ef94f92afe50b577371b34b608cecd8b711376e /pidl | |
parent | 2cba54ba30e96dafb5a49f11defdb08efcc19590 (diff) | |
download | samba-976dfc7585fcce594f5e77c8bb8ccc9644625f95.tar.gz |
pidl: Allow variable expansion (eg of a value() attribute) in compression_alg argument
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Diffstat (limited to 'pidl')
-rw-r--r-- | pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm index db992aa9e47..55c3965b7b6 100644 --- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm @@ -481,12 +481,12 @@ sub ParseArrayPullHeader($$$$$$) return $array_length; } -sub compression_alg($$) +sub compression_alg($$$) { - my ($e, $l) = @_; + my ($e, $l, $env) = @_; my ($alg, $clen, $dlen) = split(/,/, $l->{COMPRESSION}); - return $alg; + return ParseExpr($alg, $env, $e->{ORIGINAL}); } sub compression_clen($$$) @@ -509,7 +509,7 @@ sub ParseCompressionPushStart($$$$$) { my ($self,$e,$l,$ndr,$env) = @_; my $comndr = "$ndr\_compressed"; - my $alg = compression_alg($e, $l); + my $alg = compression_alg($e, $l, $env); my $dlen = compression_dlen($e, $l, $env); $self->pidl("{"); @@ -524,7 +524,7 @@ sub ParseCompressionPushEnd($$$$$) { my ($self,$e,$l,$ndr,$env) = @_; my $comndr = "$ndr\_compressed"; - my $alg = compression_alg($e, $l); + my $alg = compression_alg($e, $l, $env); my $dlen = compression_dlen($e, $l, $env); $self->pidl("NDR_CHECK(ndr_push_compression_end($ndr, $comndr, $alg, $dlen));"); @@ -536,7 +536,7 @@ sub ParseCompressionPullStart($$$$$) { my ($self,$e,$l,$ndr,$env) = @_; my $comndr = "$ndr\_compressed"; - my $alg = compression_alg($e, $l); + my $alg = compression_alg($e, $l, $env); my $dlen = compression_dlen($e, $l, $env); my $clen = compression_clen($e, $l, $env); @@ -552,7 +552,7 @@ sub ParseCompressionPullEnd($$$$$) { my ($self,$e,$l,$ndr,$env) = @_; my $comndr = "$ndr\_compressed"; - my $alg = compression_alg($e, $l); + my $alg = compression_alg($e, $l, $env); my $dlen = compression_dlen($e, $l, $env); $self->pidl("NDR_CHECK(ndr_pull_compression_end($ndr, $comndr, $alg, $dlen));"); |