if ($switch_dt->{DATA}->{TYPE} eq "ENUM") {
$switch_type = "g".Parse::Pidl::Typelist::enum_type_fn($switch_dt->{DATA});
} elsif ($switch_dt->{DATA}->{TYPE} eq "SCALAR") {
- $switch_type = "g$e->{SWITCH_TYPE}";
+ if (defined $e->{SWITCH_TYPE}) {
+ $switch_type = "g$e->{SWITCH_TYPE}";
+ } else {
+ $switch_type = "g$switch_dt->{DATA}->{NAME}";
+ }
+ } else {
+ $switch_type = "guint32";
}
$moreparam = ", $switch_type *".$name;
$param = $name;
if ($switch_dt->{DATA}->{TYPE} eq "ENUM") {
$switch_type = "g".Parse::Pidl::Typelist::enum_type_fn($switch_dt->{DATA});
} elsif ($switch_dt->{DATA}->{TYPE} eq "SCALAR") {
- $switch_type = "g$e->{SWITCH_TYPE}";
+ if (defined $e->{SWITCH_TYPE}) {
+ $switch_type = "g$e->{SWITCH_TYPE}";
+ } else {
+ $switch_type = "g$switch_dt->{DATA}->{NAME}";
+ }
}
push @$vars, "$switch_type $v;";
$switch_type = "g".Parse::Pidl::Typelist::enum_type_fn($switch_dt->{DATA});
$switch_dissect = "dissect_ndr_" .Parse::Pidl::Typelist::enum_type_fn($switch_dt->{DATA});
} elsif ($switch_dt->{DATA}->{TYPE} eq "SCALAR") {
- $switch_type = "g$e->{SWITCH_TYPE}";
- $switch_dissect = "dissect_ndr_$e->{SWITCH_TYPE}";
+ if (defined $e->{SWITCH_TYPE}) {
+ $switch_type = "g$e->{SWITCH_TYPE}";
+ $switch_dissect = "dissect_ndr_$e->{SWITCH_TYPE}";
+ } else {
+ $switch_type = "g$switch_dt->{DATA}->{NAME}";
+ $switch_dissect = "dissect_ndr_$switch_dt->{DATA}->{NAME}";
+ }
}
$self->pidl_fn_start($dissectorname);