действительно нехватает, а вот насчёт остального: подумай, что будет, если в MT-данных где-нибудь (например вначале) появятся данные типа data_null
Я так понимаю речь идет о такой скажем ситуации:
мт поток:
...
data_int 3
data_null
data_str 'test'
data_str 'asdadad'
...
data_null - ни одно поле не содержит валидных данных
data_int - поле idata и ldata обязаны содержать валидные данные
data_str - поле sdata и ldata обязаны содержать валидные данные
...
и т.д.