diff options
| -rw-r--r-- | pidl/lib/Parse/Pidl/NDR.pm | 5 | ||||
| -rw-r--r-- | pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 10 | 
2 files changed, 9 insertions, 6 deletions
diff --git a/pidl/lib/Parse/Pidl/NDR.pm b/pidl/lib/Parse/Pidl/NDR.pm index a36f638092..7aebed0fe2 100644 --- a/pidl/lib/Parse/Pidl/NDR.pm +++ b/pidl/lib/Parse/Pidl/NDR.pm @@ -363,7 +363,10 @@ sub find_largest_alignment($)  		my $a = 1;  		if ($e->{POINTERS}) { -			$a = 4;  +			# this is a hack for NDR64 +			# the NDR layer translates this into +			# an alignment of 4 for NDR and 8 for NDR64 +			$a = 5;  		} elsif (has_property($e, "subcontext")) {   			$a = 1;  		} elsif (has_property($e, "transmit_as")) { diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm index cc8085a54f..27299c8025 100644 --- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm @@ -204,12 +204,12 @@ sub ParseArrayPushHeader($$$$$$)  	}  	if ((!$l->{IS_SURROUNDING}) and $l->{IS_CONFORMANT}) { -		$self->pidl("NDR_CHECK(ndr_push_uint32($ndr, NDR_SCALARS, $size));"); +		$self->pidl("NDR_CHECK(ndr_push_uint3264($ndr, NDR_SCALARS, $size));");  	}  	if ($l->{IS_VARYING}) { -		$self->pidl("NDR_CHECK(ndr_push_uint32($ndr, NDR_SCALARS, 0));");  # array offset -		$self->pidl("NDR_CHECK(ndr_push_uint32($ndr, NDR_SCALARS, $length));"); +		$self->pidl("NDR_CHECK(ndr_push_uint3264($ndr, NDR_SCALARS, 0));");  # array offset +		$self->pidl("NDR_CHECK(ndr_push_uint3264($ndr, NDR_SCALARS, $length));");  	}   	return $length; @@ -1220,9 +1220,9 @@ sub ParseStructPushPrimitives($$$$$)  				$size = ParseExpr($e->{LEVELS}[0]->{SIZE_IS}, $env, $e->{ORIGINAL});  			} -			$self->pidl("NDR_CHECK(ndr_push_uint32($ndr, NDR_SCALARS, $size));"); +			$self->pidl("NDR_CHECK(ndr_push_uint3264($ndr, NDR_SCALARS, $size));");  		} else { -			$self->pidl("NDR_CHECK(ndr_push_uint32($ndr, NDR_SCALARS, ndr_string_array_size($ndr, $varname->$e->{NAME})));"); +			$self->pidl("NDR_CHECK(ndr_push_uint3264($ndr, NDR_SCALARS, ndr_string_array_size($ndr, $varname->$e->{NAME})));");  		}  	}  | 
