From a970dc423d59ea844bdb1af48d5d9419a5e2a287 Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Sun, 13 Oct 2013 00:24:05 +0200 Subject: Units: stop newing Unit objects. pass around pointers to "undeletable" Unit objects in the UnitTable. I think we should move to using indexed units, and pass around the index of the unit in the unittable, or smth like that... ? (bzr r12679) --- src/util/expression-evaluator.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/util/expression-evaluator.cpp') diff --git a/src/util/expression-evaluator.cpp b/src/util/expression-evaluator.cpp index 3b7e77c6c..48064e647 100644 --- a/src/util/expression-evaluator.cpp +++ b/src/util/expression-evaluator.cpp @@ -48,7 +48,7 @@ EvaluatorToken::EvaluatorToken() value.fl = 0; } -ExpressionEvaluator::ExpressionEvaluator(const char *string, Unit *unit) : +ExpressionEvaluator::ExpressionEvaluator(const char *string, Unit const *unit) : string(string), unit(unit) { @@ -360,7 +360,7 @@ int ExpressionEvaluator::getIdentifierSize(const char *string, int start_offset) bool ExpressionEvaluator::resolveUnit (const char* identifier, EvaluatorQuantity *result, - Unit* unit) + Unit const* unit) { if (!unit) { result->value = 1; @@ -371,9 +371,9 @@ bool ExpressionEvaluator::resolveUnit (const char* identifier, result->dimension = unit->isAbsolute() ? 1 : 0; return true; } else if (unit_table.hasUnit(identifier)) { - Unit identifier_unit = unit_table.getUnit(identifier); - result->value = Quantity::convert(1, *unit, identifier_unit); - result->dimension = identifier_unit.isAbsolute() ? 1 : 0; + Unit const *identifier_unit = unit_table.getUnit(identifier); + result->value = Quantity::convert(1, unit, identifier_unit); + result->dimension = identifier_unit->isAbsolute() ? 1 : 0; return true; } else { return false; -- cgit v1.2.3