my($uuid_version) = "";
my(@fns) = ();
- foreach my $d (@$idl) {
+ my($d, $e);
+
+ foreach $d (@$idl) {
# Get data from interface definition
$module = $d->{NAME}, if $d->{TYPE} eq "INTERFACE";
if ($d->{TYPE} eq "MODULEHEADER") {
- $uuid = $d->{PROPERTIES}->{uuid};
+ $uuid = $d->{PROPERTIES}->{uuid},
+ if defined($d->{PROPERTIES}->{uuid});
$uuid_version = $d->{PROPERTIES}->{version};
}
# Register function fields (parameter names)
- foreach my $e (@{$d->{DATA}}) {
+ foreach $e (@{$d->{DATA}}) {
AddField($e->{NAME}, $e->{TYPE});
}
}
# Register typedef fields (element names)
if ($d->{DATA}->{TYPE} eq "STRUCT") {
- foreach my $e (@{$d->{DATA}->{ELEMENTS}}) {
+ foreach $e (@{$d->{DATA}->{ELEMENTS}}) {
AddField($e->{NAME}, $e->{TYPE});
}
}
$res .= EtherealFieldDefinitions();
$res .= EtherealSubtreeDefinitions($module);
- foreach my $d (@$idl) {
+ foreach $d (@$idl) {
if ($d->{TYPE} eq "INTERFACE") {
- foreach my $d (@{$d->{DATA}}) {
+ foreach $d (@{$d->{DATA}}) {
# Generate function code fragments
$res .= EtherealSubdissectorRegistration($module, \@fns);
- $res .= EtherealUuidRegistration($module, $uuid, $uuid_version);
- $res .= EtherealModuleRegistration($module,
- EtherealFieldInitialisation($module),
- EtherealSubtreeInitialisation());
+ if ($uuid ne "") {
+ $res .= EtherealUuidRegistration($module, $uuid, $uuid_version);
+ $res .= EtherealModuleRegistration
+ ($module, EtherealFieldInitialisation($module),
+ EtherealSubtreeInitialisation());
+ }
return $res;
}