Stefan Hajnoczi writes:

> Language keywords cannot be used as argument names.  The DTrace backend
> appends an underscore to the argument name in order to make the argument
> name legal.

> This patch adds 'in', 'next', and 'self' keywords to dtrace.py.

> Also drop the unnecessary argument name lstrip() call.  The
> Arguments.build() method already ensures there is no space around
> argument names.  Furthermore it is misleading to do the lstrip() *after*
> checking against keywords because the keyword check would not match if
> spaces were in the name.

> Signed-off-by: Stefan Hajnoczi <stefa...@linux.vnet.ibm.com>

Reviewed-by: Lluís Vilanova <vilan...@ac.upc.edu>

> ---
>  scripts/tracetool/backend/dtrace.py |    8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

> diff --git a/scripts/tracetool/backend/dtrace.py 
> b/scripts/tracetool/backend/dtrace.py
> index cebbd57..9cab75c 100644
> --- a/scripts/tracetool/backend/dtrace.py
> +++ b/scripts/tracetool/backend/dtrace.py
> @@ -86,10 +86,10 @@ def stap(events):
>          i = 1
>          if len(e.args) > 0:
>              for name in e.args.names():
> -                # 'limit' is a reserved keyword
> -                if name == 'limit':
> -                    name = '_limit'
> -                out('  %s = $arg%d;' % (name.lstrip(), i))
> +                # Append underscore to reserved keywords
> +                if name in ('limit', 'in', 'next', 'self'):
> +                    name += '_'
> +                out('  %s = $arg%d;' % (name, i))
>                  i += 1
 
>          out('}')
> -- 
> 1.7.9.5


-- 
 "And it's much the same thing with knowledge, for whenever you learn
 something new, the whole world becomes that much richer."
 -- The Princess of Pure Reason, as told by Norton Juster in The Phantom
 Tollbooth

Reply via email to