mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[poincare/unit] Check uninitialized expressions
In Calculation, keeping the BACK key pressed can lead to iffy simplifications and uninitialized expressions beign passed to ShouldDisplayAdditionalOutputs and SetAdditionalExpressions methods. Change-Id: If248ab193c471ff433828fc841e01a391e0c052d
This commit is contained in:
committed by
Émilie Feral
parent
bc7ca057a0
commit
0c1d0195cd
@@ -769,6 +769,9 @@ void Unit::ChooseBestRepresentativeAndPrefixForValue(Expression units, double *
|
||||
}
|
||||
|
||||
bool Unit::ShouldDisplayAdditionalOutputs(double value, Expression unit, Preferences::UnitFormat unitFormat) {
|
||||
if (unit.isUninitialized()) {
|
||||
return false;
|
||||
}
|
||||
UnitNode::Vector<int> vector = UnitNode::Vector<int>::FromBaseUnits(unit);
|
||||
const Representative * representative = Representative::RepresentativeForDimension(vector);
|
||||
|
||||
@@ -781,6 +784,9 @@ bool Unit::ShouldDisplayAdditionalOutputs(double value, Expression unit, Prefere
|
||||
}
|
||||
|
||||
int Unit::SetAdditionalExpressions(Expression units, double value, Expression * dest, int availableLength, ExpressionNode::ReductionContext reductionContext) {
|
||||
if (units.isUninitialized()) {
|
||||
return 0;
|
||||
}
|
||||
const Representative * representative = units.type() == ExpressionNode::Type::Unit ? static_cast<Unit &>(units).node()->representative() : UnitNode::Representative::RepresentativeForDimension(UnitNode::Vector<int>::FromBaseUnits(units));
|
||||
if (!representative) {
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user