Skip to content

Commit e12a784

Browse files
committed
[Cleanup] Keep flash string when executing internal commands
This did cause a crash when fetching an event from the 2nd heap.
1 parent ac715a9 commit e12a784

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

src/src/Commands/InternalCommands.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ command_case_data::command_case_data(const char *cmd, struct EventStruct *event,
133133

134134
// Wrapper to reduce generated code by macro
135135
bool do_command_case_all(command_case_data & data,
136-
const String & cmd_test,
136+
const __FlashStringHelper * cmd_test,
137137
command_function_fs pFunc,
138138
int nrArguments)
139139
{
@@ -142,7 +142,7 @@ bool do_command_case_all(command_case_data & data,
142142

143143

144144
bool do_command_case_all(command_case_data & data,
145-
const String & cmd_test,
145+
const __FlashStringHelper * cmd_test,
146146
command_function pFunc,
147147
int nrArguments)
148148
{
@@ -151,7 +151,7 @@ bool do_command_case_all(command_case_data & data,
151151

152152
// Wrapper to reduce generated code by macro
153153
bool do_command_case_all_restricted(command_case_data & data,
154-
const String & cmd_test,
154+
const __FlashStringHelper * cmd_test,
155155
command_function_fs pFunc,
156156
int nrArguments)
157157
{
@@ -160,7 +160,7 @@ bool do_command_case_all_restricted(command_case_data & data,
160160

161161

162162
bool do_command_case_all_restricted(command_case_data & data,
163-
const String & cmd_test,
163+
const __FlashStringHelper * cmd_test,
164164
command_function pFunc,
165165
int nrArguments)
166166
{
@@ -169,9 +169,9 @@ bool do_command_case_all_restricted(command_case_data & data,
169169

170170

171171
bool do_command_case_check(command_case_data & data,
172-
const String & cmd_test,
173-
int nrArguments,
174-
EventValueSourceGroup::Enum group)
172+
const __FlashStringHelper * cmd_test,
173+
int nrArguments,
174+
EventValueSourceGroup::Enum group)
175175
{
176176
// The data struct is re-used on each attempt to process an internal command.
177177
// Re-initialize the only two members that may have been altered by a previous call.
@@ -202,7 +202,7 @@ bool do_command_case_check(command_case_data & data,
202202
}
203203

204204
bool do_command_case(command_case_data & data,
205-
const String & cmd_test,
205+
const __FlashStringHelper * cmd_test,
206206
command_function_fs pFunc,
207207
int nrArguments,
208208
EventValueSourceGroup::Enum group)
@@ -217,7 +217,7 @@ bool do_command_case(command_case_data & data,
217217

218218

219219
bool do_command_case(command_case_data & data,
220-
const String & cmd_test,
220+
const __FlashStringHelper * cmd_test,
221221
command_function pFunc,
222222
int nrArguments,
223223
EventValueSourceGroup::Enum group)

src/src/Commands/InternalCommands.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ struct command_case_data {
3232

3333
};
3434

35-
bool do_command_case(command_case_data& data, const String& cmd_test, command_function_fs pFunc, int nrArguments, EventValueSourceGroup::Enum group);
36-
bool do_command_case(command_case_data& data, const String& cmd_test, command_function pFunc, int nrArguments, EventValueSourceGroup::Enum group);
35+
bool do_command_case(command_case_data& data, const __FlashStringHelper * cmd_test, command_function_fs pFunc, int nrArguments, EventValueSourceGroup::Enum group);
36+
bool do_command_case(command_case_data& data, const __FlashStringHelper * cmd_test, command_function pFunc, int nrArguments, EventValueSourceGroup::Enum group);
3737

3838

3939
/*********************************************************************************************\

0 commit comments

Comments
 (0)