generator: _c_accessor_get_length: remove buggy special case

The function _c_accessor_get_length had a special case handling
for intermixed var and fixed size fields.

However:
* The implementation of that special case was buggy:
  It tried to call a python-dict as a function which causes
  Python to abort the program with a stacktrace and error message.
  So this code was never used.

* The case it tried to handle is handeled elsewhere in the
  meantime: in _c_helper_absolute_name by previous patches
  made by me.

Message-ID: <1409845851-38950-3-git-send-email-chris@demorecorder.com>
Patch-Thread-Subject: [Xcb] support popcount of a list and associated xml changes
Patch-Set: PopcountList
Patch-Number: libxcb 3/4
Patch-Version: V1
Signed-off-by: Christian Linhart <chris@DemoRecorder.com>
This commit is contained in:
Christian Linhart 2014-09-04 17:50:50 +02:00
parent b1e4a3bbd8
commit 422458b663

View File

@ -1590,12 +1590,7 @@ def _c_accessor_get_length(expr, field_mapping=None):
if field_mapping is not None: if field_mapping is not None:
lenfield_name = field_mapping[lenfield_name][0] lenfield_name = field_mapping[lenfield_name][0]
if expr.lenfield is not None and expr.lenfield.prev_varsized_field is not None: if expr.lenfield_name is not None:
# special case: variable and fixed size fields are intermixed
# if the lenfield is among the fixed size fields, there is no need
# to call a special accessor function like <expr.lenfield.c_accessor_name + '(' + prefix + ')'>
return field_mapping(expr.lenfield_name)
elif expr.lenfield_name is not None:
return lenfield_name return lenfield_name
else: else:
return str(expr.nmemb) return str(expr.nmemb)