pidl:NDR/Parser: $size can be 'foo / 2' so we need to add '(' and ')'
authorStefan Metzmacher <metze@samba.org>
Wed, 25 Nov 2009 13:21:32 +0000 (14:21 +0100)
committerKarolin Seeger <kseeger@samba.org>
Mon, 30 Nov 2009 13:44:54 +0000 (14:44 +0100)
foo / 5 * sizeof(bar)' isn't the same as
'(foo / 2) * sizeof(bar)'.

metze
(cherry picked from commit ab1c92950f3cfdc8c52b772ecef23a5477f48f9d)

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

index 7ce9708e148d31a21fa1c3a6aa7fdd958e1d5923..a5ee9481498e1b3d748636a48835d64972ae5f1f 100644 (file)
@@ -2119,7 +2119,7 @@ sub AllocateArrayLevel($$$$$$)
                $self->pidl("}");
                if (grep(/in/,@{$e->{DIRECTION}}) and
                    grep(/out/,@{$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}));");
                }
                return;
        }