Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nanopb/nanopb.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'generator/nanopb_generator.py')
-rwxr-xr-xgenerator/nanopb_generator.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py
index 8a1dc5f..9f5cb63 100755
--- a/generator/nanopb_generator.py
+++ b/generator/nanopb_generator.py
@@ -1518,10 +1518,14 @@ class Message(ProtoElement):
return result
- def fields_declaration_cpp_lookup(self):
+ def fields_declaration_cpp_lookup(self, local_defines):
result = 'template <>\n'
result += 'struct MessageDescriptor<%s> {\n' % (self.name)
result += ' static PB_INLINE_CONSTEXPR const pb_size_t fields_array_length = %d;\n' % (self.count_all_fields())
+
+ if f"{self.name}_size" in local_defines:
+ result += ' static PB_INLINE_CONSTEXPR const pb_size_t max_size = %s_size;\n' % (self.name)
+
result += ' static inline const pb_msgdesc_t* fields() {\n'
result += ' return &%s_msg;\n' % (self.name)
result += ' }\n'
@@ -2167,7 +2171,7 @@ class ProtoFile:
yield '/* Message descriptors for nanopb */\n'
yield 'namespace nanopb {\n'
for msg in self.messages:
- yield msg.fields_declaration_cpp_lookup() + '\n'
+ yield msg.fields_declaration_cpp_lookup(local_defines) + '\n'
yield '} // namespace nanopb\n'
yield '\n'
yield '#endif /* __cplusplus */\n'