Wolfgang Thallergcc16 merge934c3885 months agoHistory
106 lines · 2.7 KB · C++
RawDownload
/* Copyright (C) 2021-2026 Free Software Foundation, Inc.   Contributed by Oracle.    This file is part of GNU Binutils.    This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 3, or (at your option)   any later version.    This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.    You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, 51 Franklin Street - Fifth Floor, Boston,   MA 02110-1301, USA.  */ #include "config.h"#include "Experiment.h"#include "StringBuilder.h"#include "FilterSet.h"#include "Filter.h"#include "i18n.h" FilterSet::FilterSet (DbeView *_dbev, Experiment *_exp){  dbev = _dbev;  exp = _exp;  enbl = false;  dfilter = new Vector<FilterNumeric *>;  FilterNumeric *f;  f = new FilterNumeric (exp, "sample", GTXT ("Samples"));  f->prop_name = NTXT ("SAMPLE_MAP");  dfilter->append (f);  f = new FilterNumeric (exp, "thread", GTXT ("Threads"));  f->prop_name = NTXT ("THRID");  dfilter->append (f);  f = new FilterNumeric (exp, "LWP", GTXT ("LWPs"));  f->prop_name = NTXT ("LWPID");  dfilter->append (f);  f = new FilterNumeric (exp, "cpu", GTXT ("CPUs"));  f->prop_name = NTXT ("CPUID");  dfilter->append (f);  f = new FilterNumeric (exp, "gcevent", GTXT ("GCEvents"));  f->prop_name = NTXT ("GCEVENT_MAP");  dfilter->append (f); // must add new numeric below} FilterSet::~FilterSet (){  dfilter->destroy ();  delete dfilter;} FilterNumeric *FilterSet::get_filter (int index){  if (index < dfilter->size () && index >= 0)    return dfilter->fetch (index);  return NULL;} char *FilterSet::get_advanced_filter (){  StringBuilder sb;  bool filtrIsFalse = false;   if (get_enabled ())    {      Vector<FilterNumeric*> *filts = get_all_filters ();      if (filts == NULL)	return NULL;      for (int i = 0; i < filts->size (); i++)	{	  FilterNumeric *f = filts->fetch (i);	  if (f == NULL)	    continue;	  char *s = f->get_advanced_filter ();	  if (s == NULL)	    continue;	  if (streq (s, NTXT ("0")))	    {	      free (s);	      sb.setLength (0);	      filtrIsFalse = true;	      break;	    }	  if (sb.length () != 0)	    sb.append (NTXT (" && "));	  sb.append (s);	  free (s);	}    }  else    filtrIsFalse = true;  if (filtrIsFalse)    sb.append ('0');  else if (sb.length () == 0)    return NULL;  return sb.toString ();} 

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t