mirror of
https://github.com/samba-team/samba.git
synced 2025-12-23 00:23:53 +03:00
r20358: - 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
(This used to be commit 02d2ce65e6)
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
1757c0f0a4
commit
3c20e210de
@@ -153,7 +153,8 @@ sub EjsPullScalar($$$$$)
|
|||||||
my $pl = Parse::Pidl::NDR::GetPrevLevel($e, $l);
|
my $pl = Parse::Pidl::NDR::GetPrevLevel($e, $l);
|
||||||
$var = get_pointer_to($var);
|
$var = get_pointer_to($var);
|
||||||
# have to handle strings specially :(
|
# 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);
|
$var = get_pointer_to($var);
|
||||||
}
|
}
|
||||||
pidl "NDR_CHECK(ejs_pull_$e->{TYPE}(ejs, v, $name, $var));";
|
pidl "NDR_CHECK(ejs_pull_$e->{TYPE}(ejs, v, $name, $var));";
|
||||||
@@ -445,7 +446,9 @@ sub EjsPushScalar($$$$$)
|
|||||||
my ($e, $l, $var, $name, $env) = @_;
|
my ($e, $l, $var, $name, $env) = @_;
|
||||||
# have to handle strings specially :(
|
# have to handle strings specially :(
|
||||||
my $pl = Parse::Pidl::NDR::GetPrevLevel($e, $l);
|
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);
|
$var = get_pointer_to($var);
|
||||||
}
|
}
|
||||||
pidl "NDR_CHECK(ejs_push_$e->{TYPE}(ejs, v, $name, $var));";
|
pidl "NDR_CHECK(ejs_push_$e->{TYPE}(ejs, v, $name, $var));";
|
||||||
|
|||||||
@@ -267,9 +267,9 @@ NTSTATUS ejs_pull_ipv4address(struct ejs_rpc *ejs,
|
|||||||
push a ipv4address (internally a string)
|
push a ipv4address (internally a string)
|
||||||
*/
|
*/
|
||||||
NTSTATUS ejs_push_ipv4address(struct ejs_rpc *ejs,
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ NTSTATUS ejs_push_string(struct ejs_rpc *ejs,
|
|||||||
NTSTATUS ejs_pull_ipv4address(struct ejs_rpc *ejs,
|
NTSTATUS ejs_pull_ipv4address(struct ejs_rpc *ejs,
|
||||||
struct MprVar *v, const char *name, const char **s);
|
struct MprVar *v, const char *name, const char **s);
|
||||||
NTSTATUS ejs_push_ipv4address(struct ejs_rpc *ejs,
|
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_int(int eid, const char *name, int value);
|
||||||
void ejs_set_constant_string(int eid, const char *name, const char *value);
|
void ejs_set_constant_string(int eid, const char *name, const char *value);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user