r26049: pidl: don't use ndr_pull_save anymore
authorStefan Metzmacher <metze@samba.org>
Tue, 20 Nov 2007 10:07:50 +0000 (11:07 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:45:47 +0000 (05:45 +0100)
metze

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

index 1a84ee4f0bb4e4b0c0bb842292f262b3b8cb1738..c9b48b017c85f1c4296a1438c5602dcb65e76694 100644 (file)
@@ -1095,8 +1095,8 @@ sub ParseElementPullLevel
                        $self->indent;
 
                        if ($l->{POINTER_TYPE} eq "relative") {
-                               $self->pidl("struct ndr_pull_save _relative_save;");
-                               $self->pidl("ndr_pull_save(ndr, &_relative_save);");
+                               $self->pidl("uint32_t _relative_save_offset;");
+                               $self->pidl("_relative_save_offset = ndr->offset;");
                                $self->pidl("NDR_CHECK(ndr_pull_relative_ptr2(ndr, $var_name));");
                        }
                }
@@ -1110,7 +1110,7 @@ sub ParseElementPullLevel
 
                if ($l->{POINTER_TYPE} ne "ref") {
                        if ($l->{POINTER_TYPE} eq "relative") {
-                               $self->pidl("ndr_pull_restore(ndr, &_relative_save);");
+                               $self->pidl("ndr->offset = _relative_save_offset;");
                        }
                        $self->deindent;
                        $self->pidl("}");