diff options
author | Frediano Ziglio <freddy77@gmail.com> | 2020-09-30 14:15:44 +0100 |
---|---|---|
committer | Frediano Ziglio <freddy77@gmail.com> | 2023-12-16 18:48:31 +0000 |
commit | e40a5b621c6b808ff425ddd65431f158072a5a1f (patch) | |
tree | 784598a5869a232cf236adba53f8211e29510c13 | |
parent | 0961ea7154290b2f6f7d7f3ec78e63e55876a977 (diff) |
TRY message for SRP6zero_terminated
-rw-r--r-- | python_modules/ptypes.py | 3 | ||||
-rw-r--r-- | tests/test-marshallers.proto | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/python_modules/ptypes.py b/python_modules/ptypes.py index 72f608c..1838ea9 100644 --- a/python_modules/ptypes.py +++ b/python_modules/ptypes.py @@ -550,7 +550,8 @@ class ArrayType(Type): return writer.writeln('SpiceChunks *%s;' % name) if member.has_attr("as_ptr"): len_var = member.attributes["as_ptr"][0] - writer.writeln('uint32_t %s;' % len_var) + if not self.is_identifier_length() or len_var != self.size: + writer.writeln('uint32_t %s;' % len_var) return writer.writeln('%s *%s;' % (self.c_type(), name)) if member.has_attr("to_ptr"): return writer.writeln('%s *%s;' % (self.c_type(), name)) diff --git a/tests/test-marshallers.proto b/tests/test-marshallers.proto index 6ca2d4c..7ec803f 100644 --- a/tests/test-marshallers.proto +++ b/tests/test-marshallers.proto @@ -35,6 +35,13 @@ channel TestChannel { uint16 txt4_len; uint8 txt4[txt4_len] @end @zero_terminated; } @declare ZeroLen1; + + message { + uint16 pwd_len; + uint8 pwd[pwd_len] @as_ptr(pwd_len); + uint16 A_len; + uint8 A[A_len] @as_ptr(A_len); + } @declare Srp; }; protocol Spice { |