mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
pidl:Samba4/NDR/Parser: only do the switch type alignment when we have a switch type
This doesn't change the logic, it just doesn't call the same aligment function twice. metze
This commit is contained in:
parent
76f2ddf5a9
commit
6124148d66
@ -1688,11 +1688,11 @@ sub ParseUnionPushPrimitives($$$$)
|
||||
|
||||
$self->pidl("uint32_t level = ndr_push_get_switch_value($ndr, $varname);");
|
||||
|
||||
if (defined($e->{ALIGN})) {
|
||||
$self->pidl("NDR_CHECK(ndr_push_union_align($ndr, $e->{ALIGN}));");
|
||||
}
|
||||
|
||||
if (defined($e->{SWITCH_TYPE})) {
|
||||
if (defined($e->{ALIGN})) {
|
||||
$self->pidl("NDR_CHECK(ndr_push_union_align($ndr, $e->{ALIGN}));");
|
||||
}
|
||||
|
||||
$self->pidl("NDR_CHECK(ndr_push_$e->{SWITCH_TYPE}($ndr, NDR_SCALARS, level));");
|
||||
}
|
||||
|
||||
@ -1837,11 +1837,12 @@ sub ParseUnionPullPrimitives($$$$$)
|
||||
my ($self,$e,$ndr,$varname,$switch_type) = @_;
|
||||
my $have_default = 0;
|
||||
|
||||
if (defined($e->{ALIGN})) {
|
||||
$self->pidl("NDR_CHECK(ndr_pull_union_align($ndr, $e->{ALIGN}));");
|
||||
}
|
||||
|
||||
if (defined($switch_type)) {
|
||||
if (defined($e->{ALIGN})) {
|
||||
$self->pidl("NDR_CHECK(ndr_pull_union_align($ndr, $e->{ALIGN}));");
|
||||
}
|
||||
|
||||
$self->pidl("NDR_CHECK(ndr_pull_$switch_type($ndr, NDR_SCALARS, &_level));");
|
||||
$self->pidl("if (_level != level) {");
|
||||
$self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value %u for $varname at \%s\", _level, __location__);");
|
||||
|
Loading…
Reference in New Issue
Block a user