pidl: $size can be 'foo / 2' so we need to add '(' and ')'
authorStefan Metzmacher <metze@samba.org>
Wed, 13 Feb 2008 12:04:54 +0000 (13:04 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 13 Feb 2008 12:09:17 +0000 (13:09 +0100)
'foo / 5 * sizeof(bar)' isn't the same as
'(foo / 2) * sizeof(bar)'.

metze
(This used to be commit a496abc4042a98835d485769e0972826da161984)

source4/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm

index 60d5bf8781dde25ba83ce1465c9b4fe15c16ca5a..ef3eb3dbcf6fab773305ac6535eb2777685b3a14 100644 (file)
@@ -2149,9 +2149,9 @@ sub ParseFunctionPull($$)
                        $self->pidl("NDR_PULL_ALLOC_N(ndr, r->out.$e->{NAME}, $size);");
 
                        if (grep(/in/, @{$e->{DIRECTION}})) {
-                               $self->pidl("memcpy(r->out.$e->{NAME}, r->in.$e->{NAME}, $size * sizeof(*r->in.$e->{NAME}));");
+                               $self->pidl("memcpy(r->out.$e->{NAME}, r->in.$e->{NAME}, ($size) * sizeof(*r->in.$e->{NAME}));");
                        } else {
-                               $self->pidl("memset(r->out.$e->{NAME}, 0, $size * sizeof(*r->out.$e->{NAME}));");
+                               $self->pidl("memset(r->out.$e->{NAME}, 0, ($size) * sizeof(*r->out.$e->{NAME}));");
                        }
                } else {
                        $self->pidl("NDR_PULL_ALLOC(ndr, r->out.$e->{NAME});");