- _data = realloc(_data, _data_length + length);
- memcpy((uint8_t*)_data + _data_length, data, length);
- _data_length += length;
+ _data = realloc(_data, (_sample_count + samples) * _unit_size);
+ memcpy((uint8_t*)_data + _sample_count * _unit_size,
+ data, samples * _unit_size);
+ _sample_count += samples;