diff mbox

trace: Allow events without arguments

Message ID 147220276782.31645.5491006457066656304.stgit@fimbulvetr.bsc.es
State New
Headers show

Commit Message

Lluís Vilanova Aug. 26, 2016, 9:12 a.m. UTC
Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---
 scripts/tracetool/__init__.py |    5 +++++
 1 file changed, 5 insertions(+)

Comments

Stefan Hajnoczi Sept. 5, 2016, 5:49 p.m. UTC | #1
On Fri, Aug 26, 2016 at 11:12:47AM +0200, Lluís Vilanova wrote:
> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
> ---
>  scripts/tracetool/__init__.py |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
> index be24039..96657e6 100644
> --- a/scripts/tracetool/__init__.py
> +++ b/scripts/tracetool/__init__.py
> @@ -72,6 +72,11 @@ class Arguments:
>          arg_str : str
>              String describing the event arguments.
>          """
> +        # check for empty argument list
> +        arg_str = arg_str.strip()
> +        if arg_str == "":
> +            return Arguments([])
> +

Why is this necessary?  C syntax uses f(void) and not f().

We already have trace events with no argument.  They use the correct C
syntax.

Stefan
Lluís Vilanova Sept. 6, 2016, 8:47 a.m. UTC | #2
Stefan Hajnoczi writes:

> On Fri, Aug 26, 2016 at 11:12:47AM +0200, Lluís Vilanova wrote:
>> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
>> ---
>> scripts/tracetool/__init__.py |    5 +++++
>> 1 file changed, 5 insertions(+)
>> 
>> diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
>> index be24039..96657e6 100644
>> --- a/scripts/tracetool/__init__.py
>> +++ b/scripts/tracetool/__init__.py
>> @@ -72,6 +72,11 @@ class Arguments:
>> arg_str : str
>> String describing the event arguments.
>> """
>> +        # check for empty argument list
>> +        arg_str = arg_str.strip()
>> +        if arg_str == "":
>> +            return Arguments([])
>> +

> Why is this necessary?  C syntax uses f(void) and not f().

> We already have trace events with no argument.  They use the correct C
> syntax.

Sorry, I wasn't aware of that. My bad.


Thanks,
  Lluis
Stefan Hajnoczi Sept. 13, 2016, 3:40 p.m. UTC | #3
On Tue, Sep 06, 2016 at 10:47:33AM +0200, Lluís Vilanova wrote:
> Stefan Hajnoczi writes:
> 
> > On Fri, Aug 26, 2016 at 11:12:47AM +0200, Lluís Vilanova wrote:
> >> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
> >> ---
> >> scripts/tracetool/__init__.py |    5 +++++
> >> 1 file changed, 5 insertions(+)
> >> 
> >> diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
> >> index be24039..96657e6 100644
> >> --- a/scripts/tracetool/__init__.py
> >> +++ b/scripts/tracetool/__init__.py
> >> @@ -72,6 +72,11 @@ class Arguments:
> >> arg_str : str
> >> String describing the event arguments.
> >> """
> >> +        # check for empty argument list
> >> +        arg_str = arg_str.strip()
> >> +        if arg_str == "":
> >> +            return Arguments([])
> >> +
> 
> > Why is this necessary?  C syntax uses f(void) and not f().
> 
> > We already have trace events with no argument.  They use the correct C
> > syntax.
> 
> Sorry, I wasn't aware of that. My bad.

BTW the details of this syntax difference exists between C and C++:

In C++ foo() means foo(void).

In C you can say foo() but it means something different.  It means the
parameters are unspecified.  You can pass any arguments and the compiler
will do no type-checking!

Stefan
diff mbox

Patch

diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
index be24039..96657e6 100644
--- a/scripts/tracetool/__init__.py
+++ b/scripts/tracetool/__init__.py
@@ -72,6 +72,11 @@  class Arguments:
         arg_str : str
             String describing the event arguments.
         """
+        # check for empty argument list
+        arg_str = arg_str.strip()
+        if arg_str == "":
+            return Arguments([])
+
         res = []
         for arg in arg_str.split(","):
             arg = arg.strip()