summaryrefslogtreecommitdiffstats
path: root/src/util/expression-evaluator.cpp
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2013-10-12 22:24:05 +0000
committerJohan B. C. Engelen <j.b.c.engelen@alumnus.utwente.nl>2013-10-12 22:24:05 +0000
commita970dc423d59ea844bdb1af48d5d9419a5e2a287 (patch)
tree8f6a51df0574fe048ae7e791f276e72716aa090c /src/util/expression-evaluator.cpp
parentFix crash with experimental lpe tool. (diff)
downloadinkscape-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.cpp10
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;