1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

r23721: For unions, The TAG and the ARM are aligned independently.

Move emitting ALIGN_TO_x_BYTES to after the tag has been dissected so the
alignment only affects the ARM.
(This used to be commit 22945854d9)
This commit is contained in:
Ronnie Sahlberg 2007-07-05 07:19:14 +00:00 committed by Gerald (Jerry) Carter
parent 967866f170
commit 7bf94150da

View File

@ -614,12 +614,6 @@ sub Union($$$$)
$self->pidl_code("$switch_type level;");
$self->pidl_code("");
if ($e->{ALIGN} > 1) {
$self->pidl_code("ALIGN_TO_$e->{ALIGN}_BYTES;");
}
$self->pidl_code("");
$self->pidl_code("old_offset = offset;");
$self->pidl_code("if (parent_tree) {");
$self->indent;
@ -632,6 +626,12 @@ sub Union($$$$)
$self->pidl_code("offset = $switch_dissect(tvb, offset, pinfo, tree, drep, hf_index, &level);");
if ($e->{ALIGN} > 1) {
$self->pidl_code("ALIGN_TO_$e->{ALIGN}_BYTES;");
$self->pidl_code("");
}
$self->pidl_code("switch(level) {$res\t}");
$self->pidl_code("proto_item_set_len(item, offset-old_offset);\n");
$self->pidl_code("return offset;");