Author: jelmer Date: 2007-02-21 11:32:48 +0000 (Wed, 21 Feb 2007) New Revision: 21487
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21487 Log: Fix warning when using anonymous types, initial work on nested type support in ejs. Modified: branches/SAMBA_4_0/ branches/SAMBA_4_0/source/librpc/idl/echo.idl branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/EJS.pm branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm Changeset: Property changes on: branches/SAMBA_4_0 ___________________________________________________________________ Name: bzr:merge - [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] + [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] Modified: branches/SAMBA_4_0/source/librpc/idl/echo.idl =================================================================== --- branches/SAMBA_4_0/source/librpc/idl/echo.idl 2007-02-21 10:55:03 UTC (rev 21486) +++ branches/SAMBA_4_0/source/librpc/idl/echo.idl 2007-02-21 11:32:48 UTC (rev 21487) @@ -99,7 +99,7 @@ } echo_Enum1_32; typedef struct { - echo_Enum1 e1; + enum { foo=1, bar=2} e1; echo_Enum1_32 e2; } echo_Enum2; Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/EJS.pm =================================================================== --- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/EJS.pm 2007-02-21 10:55:03 UTC (rev 21486) +++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/EJS.pm 2007-02-21 11:32:48 UTC (rev 21487) @@ -157,7 +157,15 @@ and (defined($pl) and $pl->{TYPE} eq "POINTER")) { $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 @@ or (defined($pl) and $pl->{TYPE} eq "POINTER")) { $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,12 +893,18 @@ foreach (@{$t->{DATA}->{ELEMENTS}}) { next if (has_property($_, "subcontext")); #FIXME: Support subcontexts - unless (defined($needed->{"pull_$_->{TYPE}"})) { - $needed->{"pull_$_->{TYPE}"} = $needed->{"pull_$t->{NAME}"}; + my $n; + if (ref($_->{TYPE}) eq "HASH") { + $n = "$_->{TYPE}->{TYPE}_$_->{TYPE}->{NAME}"; + } else { + $n = $_->{TYPE}; } - unless (defined($needed->{"push_$_->{TYPE}"})) { - $needed->{"push_$_->{TYPE}"} = $needed->{"push_$t->{NAME}"}; + unless (defined($needed->{"pull_$n"})) { + $needed->{"pull_$n"} = $needed->{"pull_$t->{NAME}"}; } + unless (defined($needed->{"push_$n"})) { + $needed->{"push_$n"} = $needed->{"push_$t->{NAME}"}; + } } } Modified: branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm =================================================================== --- branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm 2007-02-21 10:55:03 UTC (rev 21486) +++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm 2007-02-21 11:32:48 UTC (rev 21487) @@ -2651,6 +2651,9 @@ return if ($e->{TYPE} eq "EMPTY"); + return if (ref($e->{TYPE}) eq "HASH" and + not defined($e->{TYPE}->{NAME})); + my ($t, $rt); if (ref($e->{TYPE}) eq "HASH") { $t = $e->{TYPE}->{TYPE}."_".$e->{TYPE}->{NAME};