while (substream.bytes_left && *size < iter->current->array_size)
{
void *pItem = (uint8_t*)iter->pData + iter->current->data_size * (*size);
- if (!func(stream, iter->current, pItem))
+ if (!func(&substream, iter->current, pItem))
return false;
(*size)++;
}
if (!pb_field_find(&iter, tag))
{
/* No match found, skip data */
- skip(stream, wire_type);
+ if (!skip(stream, wire_type))
+ return false;
continue;
}