diff options
author | Stefan Metzmacher <metze@samba.org> | 2009-07-27 15:52:16 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2009-07-27 17:51:32 +0200 |
commit | 7ccc9a6ef563cc855752b4e74152420b9be5af43 (patch) | |
tree | eeef8cf5ee5bc648b79c7dbf9eee903dac2ce39b /pidl/lib/Parse/Pidl/NDR.pm | |
parent | b7c003c09c06ef5a23beb0928affaba75f65587c (diff) | |
download | samba-7ccc9a6ef563cc855752b4e74152420b9be5af43.tar.gz samba-7ccc9a6ef563cc855752b4e74152420b9be5af43.tar.bz2 samba-7ccc9a6ef563cc855752b4e74152420b9be5af43.zip |
pidl: add support for [string] on fixed size arrays.
midl also supports this:
struct {
long l1;
[string] wchar_t str[16];
long l2;
};
Where the wire size of str is encoded like a length_is() header:
4-byte offset == 0;
4-byte array length;
The strings are zero terminated.
metze
Diffstat (limited to 'pidl/lib/Parse/Pidl/NDR.pm')
-rw-r--r-- | pidl/lib/Parse/Pidl/NDR.pm | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/pidl/lib/Parse/Pidl/NDR.pm b/pidl/lib/Parse/Pidl/NDR.pm index 95cd4b9dc3..8440f0183d 100644 --- a/pidl/lib/Parse/Pidl/NDR.pm +++ b/pidl/lib/Parse/Pidl/NDR.pm @@ -142,6 +142,13 @@ sub GetElementLevelTable($$) $is_fixed = 1 if (not $is_conformant and Parse::Pidl::Util::is_constant($size)); $is_inline = 1 if (not $is_conformant and not Parse::Pidl::Util::is_constant($size)); + if ($i == 0 and $is_fixed and has_property($e, "string")) { + $is_fixed = 0; + $is_varying = 1; + $is_string = 1; + delete($e->{PROPERTIES}->{string}); + } + push (@$order, { TYPE => "ARRAY", SIZE_IS => $size, |