aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2016-02-13 22:58:15 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2016-02-15 15:00:55 +0100
commit5fce211a42f644b0b44ab7c20fa030465dfb1d98 (patch)
treecbc282844e15af0482263d31d6dbe50b98280109
parentbc67058d3934ccdbf636571a6f8838ab83ac7af2 (diff)
downloadsciteco-5fce211a42f644b0b44ab7c20fa030465dfb1d98.tar.gz
fixed segfaults due to missing undo restoration QReg argument variables
* test case: "@^Ua{eq.a$}Ma" and rubbing out until "}", reinserting it * this means that probably a lot of rubout/reinsertion cases were broken
-rw-r--r--src/qregisters.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/qregisters.cpp b/src/qregisters.cpp
index 995edb9..6be0469 100644
--- a/src/qregisters.cpp
+++ b/src/qregisters.cpp
@@ -969,7 +969,7 @@ State *
StateEQCommand::got_register(QRegister *reg)
{
BEGIN_EXEC(&States::loadqreg);
- register_argument = reg;
+ undo.push_var(register_argument) = reg;
return &States::loadqreg;
}
@@ -1009,7 +1009,7 @@ State *
StateEPctCommand::got_register(QRegister *reg)
{
BEGIN_EXEC(&States::saveqreg);
- register_argument = reg;
+ undo.push_var(register_argument) = reg;
return &States::saveqreg;
}
@@ -1141,7 +1141,7 @@ State *
StateCtlUCommand::got_register(QRegister *reg)
{
BEGIN_EXEC(&States::setqregstring_nobuilding);
- register_argument = reg;
+ undo.push_var(register_argument) = reg;
return &States::setqregstring_nobuilding;
}
@@ -1159,7 +1159,7 @@ State *
StateEUCommand::got_register(QRegister *reg)
{
BEGIN_EXEC(&States::setqregstring_building);
- register_argument = reg;
+ undo.push_var(register_argument) = reg;
return &States::setqregstring_building;
}