diff --git a/poincare/include/poincare/unit.h b/poincare/include/poincare/unit.h index 84931a149..689203e4a 100644 --- a/poincare/include/poincare/unit.h +++ b/poincare/include/poincare/unit.h @@ -38,6 +38,7 @@ public: m_symbol(symbol), m_exponent(exponent) {} + inline bool operator==(const Prefix& p) const { return m_exponent == p.m_exponent && strcmp(m_symbol, p.m_symbol) == 0; } const char * symbol() const { return m_symbol; } int8_t exponent() const { return m_exponent; } int serialize(char * buffer, int bufferSize) const; diff --git a/poincare/src/unit.cpp b/poincare/src/unit.cpp index 46302f3d3..8082cfef5 100644 --- a/poincare/src/unit.cpp +++ b/poincare/src/unit.cpp @@ -392,16 +392,16 @@ Expression Unit::removeUnit(Expression * unit) { } bool Unit::isSecond() const { - return node()->dimension() == TimeDimension && node()->representative() == SecondRepresentative && node()->prefix() == &EmptyPrefix; + return node()->dimension() == TimeDimension && node()->representative() == SecondRepresentative && *(node()->prefix()) == EmptyPrefix; } bool Unit::isMeter() const { - return node()->dimension() == DistanceDimension && node()->representative() == MeterRepresentative && node()->prefix() == &EmptyPrefix; + return node()->dimension() == DistanceDimension && node()->representative() == MeterRepresentative && *(node()->prefix()) == EmptyPrefix; } bool Unit::isKilogram() const { - return node()->dimension() == MassDimension && node()->representative() == KilogramRepresentative && node()->prefix() == &KiloPrefix; + return node()->dimension() == MassDimension && node()->representative() == KilogramRepresentative && *(node()->prefix()) == KiloPrefix; } bool Unit::IsISSpeed(Expression & e) {