- while (field->tag != 0)
- {
- pData = (const char*)pData + prev_size + field->data_offset;
- if (PB_ATYPE(field->type) == PB_ATYPE_POINTER)
- prev_size = sizeof(const void*);
- else
- prev_size = field->data_size;
-
- /* Special case for static arrays */
- if (PB_ATYPE(field->type) == PB_ATYPE_STATIC &&
- PB_HTYPE(field->type) == PB_HTYPE_REPEATED)
- {
- prev_size *= field->array_size;
- }
-
- if (PB_LTYPE(field->type) == PB_LTYPE_EXTENSION)