idl: add parser for the to_null property
authorDavid Disseldorp <ddiss@suse.de>
Sun, 13 Nov 2011 19:39:58 +0000 (20:39 +0100)
committerKarolin Seeger <kseeger@samba.org>
Mon, 23 Jan 2012 20:29:51 +0000 (21:29 +0100)
Compile into a ndr_pull_charset_to_null call.

Signed-off-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit ec05a11c362f0aa4875c8dd3cfb853d0fae84c4c)

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

index 7cda2729fcef626a134a49072ef4c561c26c233e..2078f583ba76e1a86f3c1050bfce0b54a42ed0e5 100644 (file)
@@ -1033,7 +1033,11 @@ sub ParseElementPullLevel
                                if ($l->{IS_ZERO_TERMINATED}) {
                                        $self->CheckStringTerminator($ndr, $e, $l, $length);
                                }
-                               $self->pidl("NDR_CHECK(ndr_pull_charset($ndr, $ndr_flags, ".get_pointer_to($var_name).", $length, sizeof(" . mapTypeName($nl->{DATA_TYPE}) . "), CH_$e->{PROPERTIES}->{charset}));");
+                               if ($l->{IS_TO_NULL}) {
+                                       $self->pidl("NDR_CHECK(ndr_pull_charset_to_null($ndr, $ndr_flags, ".get_pointer_to($var_name).", $length, sizeof(" . mapTypeName($nl->{DATA_TYPE}) . "), CH_$e->{PROPERTIES}->{charset}));");
+                               } else {
+                                       $self->pidl("NDR_CHECK(ndr_pull_charset($ndr, $ndr_flags, ".get_pointer_to($var_name).", $length, sizeof(" . mapTypeName($nl->{DATA_TYPE}) . "), CH_$e->{PROPERTIES}->{charset}));");
+                               }
                                return;
                        } elsif (has_fast_array($e, $l)) {
                                if ($l->{IS_ZERO_TERMINATED}) {