}
Option::Option(const struct sr_option *structure,
- shared_ptr<const struct sr_option> structure_array) :
+ shared_ptr<const struct sr_option *> structure_array) :
structure(structure),
structure_array(structure_array)
{
map<string, shared_ptr<Option>> OutputFormat::get_options()
{
- const struct sr_option *option = sr_output_options_get(structure);
- auto option_array = shared_ptr<const struct sr_option>(
- option, [=](const struct sr_option *) {
- sr_output_options_free(structure); });
+ const struct sr_option **options = sr_output_options_get(structure);
+ auto option_array = shared_ptr<const struct sr_option *>(
+ options, sr_output_options_free);
map<string, shared_ptr<Option>> result;
- for (; option->id; option++)
- result[option->id] = shared_ptr<Option>(
- new Option(option, option_array), Option::Deleter());
+ for (int i = 0; options[i]; i++)
+ result[options[i]->id] = shared_ptr<Option>(
+ new Option(options[i], option_array), Option::Deleter());
return result;
}
vector<Glib::VariantBase> get_values();
protected:
Option(const struct sr_option *structure,
- shared_ptr<const struct sr_option> structure_array);
+ shared_ptr<const struct sr_option *> structure_array);
~Option();
const struct sr_option *structure;
- shared_ptr<const struct sr_option> structure_array;
+ shared_ptr<const struct sr_option *> structure_array;
/** Deleter needed to allow shared_ptr use with protected destructor. */
class Deleter
{