diff options
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl/Samba4/TDR.pm')
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Samba4/TDR.pm | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/Samba4/TDR.pm b/source4/pidl/lib/Parse/Pidl/Samba4/TDR.pm index bc8d27a283..a3e8d3470b 100644 --- a/source4/pidl/lib/Parse/Pidl/Samba4/TDR.pm +++ b/source4/pidl/lib/Parse/Pidl/Samba4/TDR.pm @@ -72,7 +72,7 @@ sub ParserElement($$$) if (has_property($e, "charset")) { fatal($e,"charset() on non-array element") unless (defined($e->{ARRAY_LEN}) and scalar(@{$e->{ARRAY_LEN}}) > 0); - my $len = ParseExpr(@{$e->{ARRAY_LEN}}[0], $env); + my $len = ParseExpr(@{$e->{ARRAY_LEN}}[0], $env, $e); if ($len eq "*") { $len = "-1"; } $name = ", mem_ctx" if ($t eq "pull"); pidl "TDR_CHECK(tdr_$t\_charset(tdr$name, &v->$e->{NAME}, $len, sizeof($e->{TYPE}_t), CH_$e->{PROPERTIES}->{charset}));"; @@ -80,11 +80,11 @@ sub ParserElement($$$) } if (has_property($e, "switch_is")) { - $switch = ", " . ParseExpr($e->{PROPERTIES}->{switch_is}, $env); + $switch = ", " . ParseExpr($e->{PROPERTIES}->{switch_is}, $env, $e); } if (defined($e->{ARRAY_LEN}) and scalar(@{$e->{ARRAY_LEN}}) > 0) { - my $len = ParseExpr($e->{ARRAY_LEN}[0], $env); + my $len = ParseExpr($e->{ARRAY_LEN}[0], $env, $e); if ($t eq "pull" and not is_constant($len)) { pidl "TDR_ALLOC(mem_ctx, v->$e->{NAME}, $len);"; @@ -101,7 +101,7 @@ sub ParserElement($$$) } if (has_property($e, "value") && $t eq "push") { - pidl "v->$e->{NAME} = ".ParseExpr($e->{PROPERTIES}->{value}, $env).";"; + pidl "v->$e->{NAME} = ".ParseExpr($e->{PROPERTIES}->{value}, $env, $e).";"; } pidl "TDR_CHECK(tdr_$t\_$e->{TYPE}(tdr$name$switch, &v->$e->{NAME}$array));"; |