diff options
author | Stefan Metzmacher <metze@samba.org> | 2009-11-25 14:31:34 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2009-11-26 11:47:42 +0100 |
commit | a20e095b1fffb6d690609c924d03cafedbbce8f3 (patch) | |
tree | b814489c4276d6ae2924fbd4a32eba7d32bf0a5f | |
parent | ab1c92950f3cfdc8c52b772ecef23a5477f48f9d (diff) | |
download | samba-a20e095b1fffb6d690609c924d03cafedbbce8f3.tar.gz samba-a20e095b1fffb6d690609c924d03cafedbbce8f3.tar.bz2 samba-a20e095b1fffb6d690609c924d03cafedbbce8f3.zip |
pidl:Samba3/ClientNDR: $size can be 'foo / 2' so we need to add '(' and ')'
foo / 5 * sizeof(bar)' isn't the same as
'(foo / 2) * sizeof(bar)'.
metze
-rw-r--r-- | pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm | 4 | ||||
-rwxr-xr-x | pidl/tests/samba3-cli.pl | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm b/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm index 3fc63a4999..b26a08e029 100644 --- a/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm +++ b/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm @@ -105,9 +105,9 @@ sub ParseOutputArgument($$$;$$) } else { my $size_is = ParseExpr($l->{SIZE_IS}, $env, $e->{ORIGINAL}); if (has_property($e, "charset")) { - $self->pidl("memcpy(CONST_DISCARD(char *, $o$e->{NAME}), ${r}out.$e->{NAME}, $size_is * sizeof(*$o$e->{NAME}));"); + $self->pidl("memcpy(discard_const_p(uint8_t, $o$e->{NAME}), ${r}out.$e->{NAME}, ($size_is) * sizeof(*$o$e->{NAME}));"); } else { - $self->pidl("memcpy($o$e->{NAME}, ${r}out.$e->{NAME}, $size_is * sizeof(*$o$e->{NAME}));"); + $self->pidl("memcpy($o$e->{NAME}, ${r}out.$e->{NAME}, ($size_is) * sizeof(*$o$e->{NAME}));"); } } } else { diff --git a/pidl/tests/samba3-cli.pl b/pidl/tests/samba3-cli.pl index 1820a69bb3..fcf1fb171b 100755 --- a/pidl/tests/samba3-cli.pl +++ b/pidl/tests/samba3-cli.pl @@ -301,4 +301,4 @@ my $e = { NAME => "foo", ORIGINAL => { FILE => "f", LINE => -1 }, LEVELS => [ { TYPE => "ARRAY", SIZE_IS => "mysize" }, { TYPE => "DATA", DATA_TYPE => "int" } ]}; $x->ParseOutputArgument($fn, $e); -is($x->{res}, "memcpy(foo, r.out.foo, mysize * sizeof(*foo));\n"); +is($x->{res}, "memcpy(foo, r.out.foo, (mysize) * sizeof(*foo));\n"); |