From fb6ee4a8495b064e6a64e1abec212941ce7c96f9 Mon Sep 17 00:00:00 2001 From: rafael-g Date: Sun, 5 Jun 2016 08:32:58 +0200 Subject: [Bug #1550178] Inkscape crashed with segfault in ExpressionEvaluator on OpenBSD. Fixed bugs: - https://launchpad.net/bugs/1550178 (bzr r14951) --- src/util/expression-evaluator.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/util/expression-evaluator.cpp') diff --git a/src/util/expression-evaluator.cpp b/src/util/expression-evaluator.cpp index 48064e647..b0b8e6036 100644 --- a/src/util/expression-evaluator.cpp +++ b/src/util/expression-evaluator.cpp @@ -28,6 +28,8 @@ #include "util/expression-evaluator.h" #include "util/units.h" +#include + #include #include @@ -49,7 +51,7 @@ EvaluatorToken::EvaluatorToken() } ExpressionEvaluator::ExpressionEvaluator(const char *string, Unit const *unit) : - string(string), + string(g_locale_to_utf8(string,-1,0,0,0)), unit(unit) { current_token.type = TOKEN_END; -- cgit v1.2.3 From 8e79c58572bac72489bde00c15d092bce02e850a Mon Sep 17 00:00:00 2001 From: rafael-g Date: Sun, 5 Jun 2016 08:43:06 +0200 Subject: [Bug #1587311] Entering + into stroke width dialog crashes Inkscape. Fixed bugs: - https://launchpad.net/bugs/1587311 (bzr r14952) --- src/util/expression-evaluator.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/util/expression-evaluator.cpp') diff --git a/src/util/expression-evaluator.cpp b/src/util/expression-evaluator.cpp index b0b8e6036..dd7ce97f7 100644 --- a/src/util/expression-evaluator.cpp +++ b/src/util/expression-evaluator.cpp @@ -208,8 +208,11 @@ EvaluatorQuantity ExpressionEvaluator::evaluateFactor() { EvaluatorQuantity evaluated_factor = EvaluatorQuantity(); EvaluatorToken consumed_token = EvaluatorToken(); - - if (acceptToken(TOKEN_NUM, &consumed_token)) { + + if (acceptToken(TOKEN_END, &consumed_token)) { + return evaluated_factor; + } + else if (acceptToken(TOKEN_NUM, &consumed_token)) { evaluated_factor.value = consumed_token.value.fl; } else if (acceptToken('(', NULL)) { evaluated_factor = evaluateExpression(); -- cgit v1.2.3