mirror of
https://github.com/samba-team/samba.git
synced 2025-12-06 16:23:49 +03:00
r21487: Fix warning when using anonymous types, initial work on nested type support in ejs.
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
d2307f3f7e
commit
a396c5de12
@@ -99,7 +99,7 @@ interface rpcecho
|
|||||||
} echo_Enum1_32;
|
} echo_Enum1_32;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
echo_Enum1 e1;
|
enum { foo=1, bar=2} e1;
|
||||||
echo_Enum1_32 e2;
|
echo_Enum1_32 e2;
|
||||||
} echo_Enum2;
|
} echo_Enum2;
|
||||||
|
|
||||||
|
|||||||
@@ -157,7 +157,15 @@ sub EjsPullScalar($$$$$)
|
|||||||
and (defined($pl) and $pl->{TYPE} eq "POINTER")) {
|
and (defined($pl) and $pl->{TYPE} eq "POINTER")) {
|
||||||
$var = get_pointer_to($var);
|
$var = get_pointer_to($var);
|
||||||
}
|
}
|
||||||
pidl "NDR_CHECK(ejs_pull_$e->{TYPE}(ejs, v, $name, $var));";
|
|
||||||
|
my $t;
|
||||||
|
if (ref($e->{TYPE}) eq "HASH") {
|
||||||
|
$t = "$e->{TYPE}->{TYPE}_$e->{TYPE}->{NAME}";
|
||||||
|
} else {
|
||||||
|
$t = $e->{TYPE};
|
||||||
|
}
|
||||||
|
|
||||||
|
pidl "NDR_CHECK(ejs_pull_$t(ejs, v, $name, $var));";
|
||||||
}
|
}
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
@@ -449,7 +457,15 @@ sub EjsPushScalar($$$$$)
|
|||||||
or (defined($pl) and $pl->{TYPE} eq "POINTER")) {
|
or (defined($pl) and $pl->{TYPE} eq "POINTER")) {
|
||||||
$var = get_pointer_to($var);
|
$var = get_pointer_to($var);
|
||||||
}
|
}
|
||||||
pidl "NDR_CHECK(ejs_push_$e->{TYPE}(ejs, v, $name, $var));";
|
|
||||||
|
my $t;
|
||||||
|
if (ref($e->{TYPE}) eq "HASH") {
|
||||||
|
$t = "$e->{TYPE}->{TYPE}_$e->{TYPE}->{NAME}";
|
||||||
|
} else {
|
||||||
|
$t = $e->{TYPE};
|
||||||
|
}
|
||||||
|
|
||||||
|
pidl "NDR_CHECK(ejs_push_$t(ejs, v, $name, $var));";
|
||||||
}
|
}
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
@@ -877,11 +893,17 @@ sub NeededTypedef($$)
|
|||||||
|
|
||||||
foreach (@{$t->{DATA}->{ELEMENTS}}) {
|
foreach (@{$t->{DATA}->{ELEMENTS}}) {
|
||||||
next if (has_property($_, "subcontext")); #FIXME: Support subcontexts
|
next if (has_property($_, "subcontext")); #FIXME: Support subcontexts
|
||||||
unless (defined($needed->{"pull_$_->{TYPE}"})) {
|
my $n;
|
||||||
$needed->{"pull_$_->{TYPE}"} = $needed->{"pull_$t->{NAME}"};
|
if (ref($_->{TYPE}) eq "HASH") {
|
||||||
|
$n = "$_->{TYPE}->{TYPE}_$_->{TYPE}->{NAME}";
|
||||||
|
} else {
|
||||||
|
$n = $_->{TYPE};
|
||||||
}
|
}
|
||||||
unless (defined($needed->{"push_$_->{TYPE}"})) {
|
unless (defined($needed->{"pull_$n"})) {
|
||||||
$needed->{"push_$_->{TYPE}"} = $needed->{"push_$t->{NAME}"};
|
$needed->{"pull_$n"} = $needed->{"pull_$t->{NAME}"};
|
||||||
|
}
|
||||||
|
unless (defined($needed->{"push_$n"})) {
|
||||||
|
$needed->{"push_$n"} = $needed->{"push_$t->{NAME}"};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2651,6 +2651,9 @@ sub NeededElement($$$)
|
|||||||
|
|
||||||
return if ($e->{TYPE} eq "EMPTY");
|
return if ($e->{TYPE} eq "EMPTY");
|
||||||
|
|
||||||
|
return if (ref($e->{TYPE}) eq "HASH" and
|
||||||
|
not defined($e->{TYPE}->{NAME}));
|
||||||
|
|
||||||
my ($t, $rt);
|
my ($t, $rt);
|
||||||
if (ref($e->{TYPE}) eq "HASH") {
|
if (ref($e->{TYPE}) eq "HASH") {
|
||||||
$t = $e->{TYPE}->{TYPE}."_".$e->{TYPE}->{NAME};
|
$t = $e->{TYPE}->{TYPE}."_".$e->{TYPE}->{NAME};
|
||||||
|
|||||||
Reference in New Issue
Block a user