[v3,01/11] perf jevents metric: Correct Function equality

Message ID 20230124063320.668917-2-irogers@google.com
State New
Headers
Series jevents/pmu-events improvements |

Commit Message

Ian Rogers Jan. 24, 2023, 6:33 a.m. UTC
  rhs may not be defined, say for source_count, so add a guard.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/pmu-events/metric.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
  

Comments

kajoljain Jan. 25, 2023, 4:55 a.m. UTC | #1
On 1/24/23 12:03, Ian Rogers wrote:
> rhs may not be defined, say for source_count, so add a guard.
> 
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  tools/perf/pmu-events/metric.py | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric.py
> index 4797ed4fd817..2f2fd220e843 100644
> --- a/tools/perf/pmu-events/metric.py
> +++ b/tools/perf/pmu-events/metric.py
> @@ -261,8 +261,10 @@ class Function(Expression):
>  
>    def Equals(self, other: Expression) -> bool:
>      if isinstance(other, Function):
> -      return self.fn == other.fn and self.lhs.Equals(
> -          other.lhs) and self.rhs.Equals(other.rhs)
> +      result = self.fn == other.fn and self.lhs.Equals(other.lhs)
> +      if self.rhs:
> +        result = result and self.rhs.Equals(other.rhs)
> +      return result
>      return False
>  
>  

Patch looks good to me.

Reviewed-by: Kajol Jain<kjain@linux.ibm.com>

Thanks,
Kajol Jain
  

Patch

diff --git a/tools/perf/pmu-events/metric.py b/tools/perf/pmu-events/metric.py
index 4797ed4fd817..2f2fd220e843 100644
--- a/tools/perf/pmu-events/metric.py
+++ b/tools/perf/pmu-events/metric.py
@@ -261,8 +261,10 @@  class Function(Expression):
 
   def Equals(self, other: Expression) -> bool:
     if isinstance(other, Function):
-      return self.fn == other.fn and self.lhs.Equals(
-          other.lhs) and self.rhs.Equals(other.rhs)
+      result = self.fn == other.fn and self.lhs.Equals(other.lhs)
+      if self.rhs:
+        result = result and self.rhs.Equals(other.rhs)
+      return result
     return False