API - Switched to std::unique_ptr

This commit is contained in:
dabinat 2019-03-22 10:07:44 -07:00
parent 2f255307e3
commit 0364bfa518

View File

@ -485,26 +485,23 @@ Metadata* ModelState::decode_metadata(vector<float>& logits)
{ {
vector<Output> out = decode_raw(logits); vector<Output> out = decode_raw(logits);
Metadata* metadata = new Metadata; std::unique_ptr<Metadata> metadata(new Metadata);
metadata->num_items = out[0].tokens.size(); metadata->num_items = out[0].tokens.size();
metadata->items = new MetadataItem[metadata->num_items]; std::unique_ptr<MetadataItem> items(new MetadataItem[metadata->num_items]);
metadata->items = items.release();
// Loop through each character // Loop through each character
for (int i = 0; i < out[0].tokens.size(); ++i) { for (int i = 0; i < out[0].tokens.size(); ++i) {
MetadataItem *item = new MetadataItem; metadata->items[i].character = (char*)alphabet->StringFromLabel(out[0].tokens[i]).c_str();
item->character = (char*)alphabet->StringFromLabel(out[0].tokens[i]).c_str(); metadata->items[i].timestep = out[0].timesteps[i];
item->timestep = out[0].timesteps[i]; metadata->items[i].start_time = static_cast<float>(out[0].timesteps[i] * AUDIO_WIN_STEP);
item->start_time = static_cast<float>(out[0].timesteps[i] * AUDIO_WIN_STEP);
if (item->start_time < 0) { if (metadata->items[i].start_time < 0) {
item->start_time = 0; metadata->items[i].start_time = 0;
} }
metadata->items[i] = *item;
delete(item);
} }
return metadata; return metadata.release();
} }
#ifdef USE_TFLITE #ifdef USE_TFLITE