diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2013-10-12 22:24:05 +0000 |
|---|---|---|
| committer | Johan B. C. Engelen <j.b.c.engelen@alumnus.utwente.nl> | 2013-10-12 22:24:05 +0000 |
| commit | a970dc423d59ea844bdb1af48d5d9419a5e2a287 (patch) | |
| tree | 8f6a51df0574fe048ae7e791f276e72716aa090c /src/util/expression-evaluator.cpp | |
| parent | Fix crash with experimental lpe tool. (diff) | |
| download | inkscape-a970dc423d59ea844bdb1af48d5d9419a5e2a287.tar.gz inkscape-a970dc423d59ea844bdb1af48d5d9419a5e2a287.zip | |
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)
Diffstat (limited to 'src/util/expression-evaluator.cpp')
| -rw-r--r-- | src/util/expression-evaluator.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
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; |
