From 176d55b7fab5fad20963ca3c25f190e9abdd5260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Thu, 13 Feb 2020 15:11:44 +0100 Subject: [PATCH] [apps/expression_model] Fix text() implementation --- apps/shared/expression_model.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/shared/expression_model.cpp b/apps/shared/expression_model.cpp index 530f7b200..73ba0a61e 100644 --- a/apps/shared/expression_model.cpp +++ b/apps/shared/expression_model.cpp @@ -24,14 +24,16 @@ ExpressionModel::ExpressionModel() : void ExpressionModel::text(const Storage::Record * record, char * buffer, size_t bufferSize, CodePoint symbol) const { Expression e = expressionClone(record); - if (e.isUninitialized() && bufferSize > 0) { - buffer[0] = 0; - } else { - if (symbol != 0 && !e.isUninitialized()) { - e = e.replaceSymbolWithExpression(Symbol::Builder(UCodePointUnknown), Symbol::Builder(symbol)); + if (e.isUninitialized()) { + if (bufferSize > 0) { + buffer[0] = 0; } - e.serialize(buffer, bufferSize); + return; } + if (symbol != 0) { + e = e.replaceSymbolWithExpression(Symbol::Builder(UCodePointUnknown), Symbol::Builder(symbol)); + } + e.serialize(buffer, bufferSize); } bool ExpressionModel::isCircularlyDefined(const Storage::Record * record, Poincare::Context * context) const {