X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsubwindows%2Fdecoder_selector%2Fsubwindow.cpp;h=e768a5fcb28f330d3f76cb92f3b48f2846d57815;hp=719d2efa1456142ac940936ec80560e671ad2a6e;hb=8f7c2dce763c9d3439e99b0215a3654f6a18ef11;hpb=b229a1b72d6f675e0fcf14aa83285e5c3ca122be diff --git a/pv/subwindows/decoder_selector/subwindow.cpp b/pv/subwindows/decoder_selector/subwindow.cpp index 719d2ef..e768a5f 100644 --- a/pv/subwindows/decoder_selector/subwindow.cpp +++ b/pv/subwindows/decoder_selector/subwindow.cpp @@ -141,39 +141,32 @@ const srd_decoder* SubWindow::get_srd_decoder_from_id(QString id) const { const srd_decoder* ret_val = nullptr; - GSList* l = g_slist_copy((GSList*)srd_decoder_list()); - for (GSList* li = l; li; li = li->next) { + for (GSList* li = (GSList*)srd_decoder_list(); li; li = li->next) { const srd_decoder* d = (srd_decoder*)li->data; assert(d); if (QString::fromUtf8(d->id) == id) ret_val = d; } - g_slist_free(l); return ret_val; } -vector SubWindow::decoder_inputs(const srd_decoder* d) const +vector SubWindow::get_decoder_inputs(const srd_decoder* d) const { vector ret_val; - GSList* l = g_slist_copy(d->inputs); - for (GSList* li = l; li; li = li->next) { - const char* input = (const char*)li->data; - ret_val.push_back(input); - } - g_slist_free(l); + for (GSList* li = d->inputs; li; li = li->next) + ret_val.push_back((const char*)li->data); return ret_val; } -vector SubWindow::decoders_providing(const char* output) const +vector SubWindow::get_decoders_providing(const char* output) const { vector ret_val; - GSList* l = g_slist_copy((GSList*)srd_decoder_list()); - for (GSList* li = l; li; li = li->next) { + for (GSList* li = (GSList*)srd_decoder_list(); li; li = li->next) { const srd_decoder* d = (srd_decoder*)li->data; assert(d); @@ -184,7 +177,6 @@ vector SubWindow::decoders_providing(const char* output) con if (strncmp((char*)(d->outputs->data), output, strlen(output)) == 0) ret_val.push_back(d); } - g_slist_free(l); return ret_val; } @@ -208,14 +200,12 @@ void SubWindow::on_item_changed(const QModelIndex& index) const QString doc = QString::fromUtf8(srd_decoder_doc_get(d)); QString tags; - GSList* l = g_slist_copy((GSList*)d->tags); - for (GSList* li = l; li; li = li->next) { - QString s = (li == l) ? + for (GSList* li = (GSList*)d->tags; li; li = li->next) { + QString s = (li == (GSList*)d->tags) ? tr((char*)li->data) : QString(tr(", %1")).arg(tr((char*)li->data)); tags.append(s); } - g_slist_free(l); info_label_header_->setText(QString("%1 (%2)
%3") .arg(longname, id, desc)); @@ -239,7 +229,7 @@ void SubWindow::on_item_activated(const QModelIndex& index) decoders.push_back(chosen_decoder); // If the decoder only depends on logic inputs, we add it and are done - vector inputs = decoder_inputs(decoders.front()); + vector inputs = get_decoder_inputs(decoders.front()); if (inputs.size() == 0) { qWarning() << "Protocol decoder" << decoder_name << "cannot have 0 inputs!"; return; @@ -252,7 +242,7 @@ void SubWindow::on_item_activated(const QModelIndex& index) // Check if we can automatically fulfill the stacking requirements while (strncmp(inputs.at(0), "logic", 5) != 0) { - vector prov_decoders = decoders_providing(inputs.at(0)); + vector prov_decoders = get_decoders_providing(inputs.at(0)); if (prov_decoders.size() == 0) { // Emit warning and add the stack that we could gather so far @@ -283,7 +273,7 @@ void SubWindow::on_item_activated(const QModelIndex& index) decoders.push_back(get_srd_decoder_from_id(d)); } - inputs = decoder_inputs(decoders.back()); + inputs = get_decoder_inputs(decoders.back()); } // Reverse decoder list and add the stack