@@ -333,11 +333,11 @@ struct evsel *evsel__new_cycles(bool precise, __u32 type, __u64 config)
333333 goto out ;
334334}
335335
336- static int evsel__copy_config_terms (struct evsel * dst , struct evsel * src )
336+ int copy_config_terms (struct list_head * dst , struct list_head * src )
337337{
338338 struct evsel_config_term * pos , * tmp ;
339339
340- list_for_each_entry (pos , & src -> config_terms , list ) {
340+ list_for_each_entry (pos , src , list ) {
341341 tmp = malloc (sizeof (* tmp ));
342342 if (tmp == NULL )
343343 return - ENOMEM ;
@@ -350,11 +350,16 @@ static int evsel__copy_config_terms(struct evsel *dst, struct evsel *src)
350350 return - ENOMEM ;
351351 }
352352 }
353- list_add_tail (& tmp -> list , & dst -> config_terms );
353+ list_add_tail (& tmp -> list , dst );
354354 }
355355 return 0 ;
356356}
357357
358+ static int evsel__copy_config_terms (struct evsel * dst , struct evsel * src )
359+ {
360+ return copy_config_terms (& dst -> config_terms , & src -> config_terms );
361+ }
362+
358363/**
359364 * evsel__clone - create a new evsel copied from @orig
360365 * @orig: original evsel
@@ -1385,18 +1390,23 @@ int evsel__disable(struct evsel *evsel)
13851390 return err ;
13861391}
13871392
1388- static void evsel__free_config_terms (struct evsel * evsel )
1393+ void free_config_terms (struct list_head * config_terms )
13891394{
13901395 struct evsel_config_term * term , * h ;
13911396
1392- list_for_each_entry_safe (term , h , & evsel -> config_terms , list ) {
1397+ list_for_each_entry_safe (term , h , config_terms , list ) {
13931398 list_del_init (& term -> list );
13941399 if (term -> free_str )
13951400 zfree (& term -> val .str );
13961401 free (term );
13971402 }
13981403}
13991404
1405+ static void evsel__free_config_terms (struct evsel * evsel )
1406+ {
1407+ free_config_terms (& evsel -> config_terms );
1408+ }
1409+
14001410void evsel__exit (struct evsel * evsel )
14011411{
14021412 assert (list_empty (& evsel -> core .node ));
0 commit comments