Get rid of the ternary operator in the pb_field_t initialization.
Some compilers where unable to detect that the ternary operator can be evaluated at the compile time. This commit does the evaluation on the Python side, which should fix the problem. The new .pb.c files are generated using PB_FIELD2() macro. The old PB_FIELD() macro remains, so that previously generated files keep working.
This commit is contained in:
@@ -246,13 +246,14 @@ class Field:
|
||||
'''Return the pb_field_t initializer to use in the constant array.
|
||||
prev_field_name is the name of the previous field or None.
|
||||
'''
|
||||
result = ' PB_FIELD(%3d, ' % self.tag
|
||||
result = ' PB_FIELD2(%3d, ' % self.tag
|
||||
result += '%-8s, ' % self.pbtype
|
||||
result += '%s, ' % self.rules
|
||||
result += '%s, ' % self.allocation
|
||||
result += '%s, ' % self.struct_name
|
||||
result += '%s, ' % self.name
|
||||
result += '%s, ' % (prev_field_name or self.name)
|
||||
result += '%s, ' % ("first" if not prev_field_name else "other")
|
||||
|
||||
if self.pbtype == 'MESSAGE':
|
||||
result += '&%s_fields)' % self.submsgname
|
||||
|
||||
Reference in New Issue
Block a user