commit 1094439c2b341030c39e8f25c7befcbf538d9af4
Author: Thibaut Cuvelier <[email protected]>
Date: Sat Feb 8 01:23:38 2025 +0100
MathML: fix a crash in InsetMathMacro due to MacroData::mathml_type
returning the address of a local object.
---
src/mathed/InsetMathMacro.cpp | 2 +-
src/mathed/MacroTable.cpp | 5 ++---
src/mathed/MacroTable.h | 2 +-
3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/mathed/InsetMathMacro.cpp b/src/mathed/InsetMathMacro.cpp
index 75520a7566..5513542365 100644
--- a/src/mathed/InsetMathMacro.cpp
+++ b/src/mathed/InsetMathMacro.cpp
@@ -1318,7 +1318,7 @@ void InsetMathMacro::mathmlize(MathMLStream & ms) const
if (d->macro_) {
docstring const xmlname = d->macro_->xmlname();
if (!xmlname.empty()) {
- char const * type = d->macro_->MathMLtype();
+ const std::string type = d->macro_->mathml_type();
ms << MTagInline(type) << xmlname << ETagInline(type);
return;
}
diff --git a/src/mathed/MacroTable.cpp b/src/mathed/MacroTable.cpp
index d540a50a62..56f36a4595 100644
--- a/src/mathed/MacroTable.cpp
+++ b/src/mathed/MacroTable.cpp
@@ -129,10 +129,9 @@ docstring const MacroData::xmlname() const
}
-char const * MacroData::MathMLtype() const
+std::string MacroData::mathml_type() const
{
- // TODO: when LyX requires C++17, move to string_view.
- return sym_ ? sym_->mathml_type().c_str() : nullptr;
+ return sym_ ? sym_->mathml_type() : "";
}
diff --git a/src/mathed/MacroTable.h b/src/mathed/MacroTable.h
index 6c17d63470..0c905d6c3c 100644
--- a/src/mathed/MacroTable.h
+++ b/src/mathed/MacroTable.h
@@ -65,7 +65,7 @@ public:
///
docstring const xmlname() const;
///
- char const * MathMLtype() const;
+ std::string mathml_type() const;
///
latexkeys const * symbol() const { return sym_; }
///
--
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs