svn commit: samba r20358 - in branches/SAMBA_4_0/source: pidl/lib/Parse/Pidl/Samba4 scripting/ejs

metze at samba.org metze at samba.org
Wed Dec 27 15:36:52 GMT 2006


Author: metze
Date: 2006-12-27 15:36:50 +0000 (Wed, 27 Dec 2006)
New Revision: 20358

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20358

Log:
- fix ejs generated code for ipv4address
- (not Parse::Pidl::Typelist::scalar_is_reference($e->{TYPE}))
  is much more generic than ($e->{TYPE} ne "string")
  and handles ipv4address and other special types...

metze
Modified:
   branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/EJS.pm
   branches/SAMBA_4_0/source/scripting/ejs/ejsrpc.c
   branches/SAMBA_4_0/source/scripting/ejs/ejsrpc.h


Changeset:
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	2006-12-27 15:24:48 UTC (rev 20357)
+++ branches/SAMBA_4_0/source/pidl/lib/Parse/Pidl/Samba4/EJS.pm	2006-12-27 15:36:50 UTC (rev 20358)
@@ -153,7 +153,8 @@
         my $pl = Parse::Pidl::NDR::GetPrevLevel($e, $l);
         $var = get_pointer_to($var);
         # have to handle strings specially :(
-        if ($e->{TYPE} eq "string" && $pl && $pl->{TYPE} eq "POINTER") {
+	if (Parse::Pidl::Typelist::scalar_is_reference($e->{TYPE})
+	    and (defined($pl) and $pl->{TYPE} eq "POINTER")) {
                 $var = get_pointer_to($var);
         }
 	pidl "NDR_CHECK(ejs_pull_$e->{TYPE}(ejs, v, $name, $var));";
@@ -445,7 +446,9 @@
 	my ($e, $l, $var, $name, $env) = @_;
         # have to handle strings specially :(
         my $pl = Parse::Pidl::NDR::GetPrevLevel($e, $l);
-        if ($e->{TYPE} ne "string" || ($pl && $pl->{TYPE} eq "POINTER")) {
+
+	if ((not Parse::Pidl::Typelist::scalar_is_reference($e->{TYPE}))
+	    or (defined($pl) and $pl->{TYPE} eq "POINTER")) {
                 $var = get_pointer_to($var);
         }
 	pidl "NDR_CHECK(ejs_push_$e->{TYPE}(ejs, v, $name, $var));";

Modified: branches/SAMBA_4_0/source/scripting/ejs/ejsrpc.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/ejsrpc.c	2006-12-27 15:24:48 UTC (rev 20357)
+++ branches/SAMBA_4_0/source/scripting/ejs/ejsrpc.c	2006-12-27 15:36:50 UTC (rev 20358)
@@ -267,9 +267,9 @@
   push a ipv4address (internally a string)
 */
 NTSTATUS ejs_push_ipv4address(struct ejs_rpc *ejs, 
-			 struct MprVar *v, const char *name, char * const *s)
+			 struct MprVar *v, const char *name, const char *s)
 {
-	return ejs_push_string(ejs, v, name, *s);
+	return ejs_push_string(ejs, v, name, s);
 }
 
 

Modified: branches/SAMBA_4_0/source/scripting/ejs/ejsrpc.h
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/ejsrpc.h	2006-12-27 15:24:48 UTC (rev 20357)
+++ branches/SAMBA_4_0/source/scripting/ejs/ejsrpc.h	2006-12-27 15:36:50 UTC (rev 20358)
@@ -96,7 +96,7 @@
 NTSTATUS ejs_pull_ipv4address(struct ejs_rpc *ejs, 
 			 struct MprVar *v, const char *name, const char **s);
 NTSTATUS ejs_push_ipv4address(struct ejs_rpc *ejs, 
-			 struct MprVar *v, const char *name, char * const *s);
+			 struct MprVar *v, const char *name, const char *s);
 void ejs_set_constant_int(int eid, const char *name, int value);
 void ejs_set_constant_string(int eid, const char *name, const char *value);
 



More information about the samba-cvs mailing list