Skip to content

Commit 682f2d6

Browse files
Tor Didriksendahlerlend
Tor Didriksen
authored andcommitted
Bug#37692054 Do not use c_ptr_safe() [noclose]
Do not use String::c_ptr_safe(), it has unclear semantics. See comments in the source code. Change-Id: I1da3fea12d8d3d9ebad23658a89da8a7655d5eb9
1 parent b604356 commit 682f2d6

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

plugin/group_replication/src/perfschema/table_replication_group_configuration_version.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ PSI_table_handle *Pfs_table_replication_group_configuration_version::open_table(
169169
struct Replication_group_configuration_version row;
170170

171171
table->field[0]->val_str(&string);
172-
row.name.assign(string.c_ptr_safe(), string.length());
172+
row.name.assign(to_string_view(string));
173173

174174
row.version = table->field[1]->val_int();
175175

plugin/group_replication/src/perfschema/table_replication_group_member_actions.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,20 +190,20 @@ PSI_table_handle *Pfs_table_replication_group_member_actions::open_table(
190190
struct Replication_group_member_actions row;
191191

192192
table->field[0]->val_str(&string);
193-
row.name.assign(string.c_ptr_safe(), string.length());
193+
row.name.assign(to_string_view(string));
194194

195195
table->field[1]->val_str(&string);
196-
row.event.assign(string.c_ptr_safe(), string.length());
196+
row.event.assign(to_string_view(string));
197197

198198
row.enabled = table->field[2]->val_int();
199199

200200
table->field[3]->val_str(&string);
201-
row.type.assign(string.c_ptr_safe(), string.length());
201+
row.type.assign(to_string_view(string));
202202

203203
row.priority = table->field[4]->val_int();
204204

205205
table->field[5]->val_str(&string);
206-
row.error_handling.assign(string.c_ptr_safe(), string.length());
206+
row.error_handling.assign(to_string_view(string));
207207

208208
t->rows.push_back(row);
209209
} while (!key_access.next());

plugin/group_replication/src/plugin_handlers/member_actions_handler_configuration.cc

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ Member_actions_handler_configuration::enable_disable_action(
8282
char buffer[MAX_FIELD_WIDTH];
8383
String string(buffer, sizeof(buffer), &my_charset_bin);
8484
table->field[3]->val_str(&string);
85-
std::string type(string.c_ptr_safe(), string.length());
85+
std::string type = to_string(string);
8686
uint priority = static_cast<uint>(table->field[4]->val_int());
8787
table->field[5]->val_str(&string);
88-
std::string error_handling(string.c_ptr_safe(), string.length());
88+
std::string error_handling = to_string(string);
8989

9090
// delete row
9191
error |= table->file->ha_delete_row(table->record[0]);
@@ -188,21 +188,21 @@ bool Member_actions_handler_configuration::get_actions_for_event(
188188
protobuf_replication_group_member_actions::Action *action =
189189
action_list.add_action();
190190
table->field[0]->val_str(&string);
191-
action->set_name(string.c_ptr_safe(), string.length());
191+
action->set_name(to_string(string));
192192

193193
table->field[1]->val_str(&string);
194-
action->set_event(string.c_ptr_safe(), string.length());
194+
action->set_event(to_string(string));
195195

196196
action->set_enabled(table->field[2]->val_int());
197197

198198
table->field[3]->val_str(&string);
199-
action->set_type(string.c_ptr_safe(), string.length());
199+
action->set_type(to_string(string));
200200

201201
uint priority = static_cast<uint>(table->field[4]->val_int());
202202
action->set_priority(priority);
203203

204204
table->field[5]->val_str(&string);
205-
action->set_error_handling(string.c_ptr_safe(), string.length());
205+
action->set_error_handling(to_string(string));
206206
} while (!key_access.next());
207207
} else if (HA_ERR_END_OF_FILE == key_error) {
208208
/* Table is empty, nothing to read. */
@@ -265,21 +265,21 @@ bool Member_actions_handler_configuration::get_all_actions_internal(
265265
protobuf_replication_group_member_actions::Action *action =
266266
action_list.add_action();
267267
table->field[0]->val_str(&string);
268-
action->set_name(string.c_ptr_safe(), string.length());
268+
action->set_name(to_string(string));
269269

270270
table->field[1]->val_str(&string);
271-
action->set_event(string.c_ptr_safe(), string.length());
271+
action->set_event(to_string(string));
272272

273273
action->set_enabled(table->field[2]->val_int());
274274

275275
table->field[3]->val_str(&string);
276-
action->set_type(string.c_ptr_safe(), string.length());
276+
action->set_type(to_string(string));
277277

278278
uint priority = static_cast<uint>(table->field[4]->val_int());
279279
action->set_priority(priority);
280280

281281
table->field[5]->val_str(&string);
282-
action->set_error_handling(string.c_ptr_safe(), string.length());
282+
action->set_error_handling(to_string(string));
283283
} while (!key_access.next());
284284
} else if (HA_ERR_END_OF_FILE == key_error) {
285285
/* Table is already empty, nothing to read. */

0 commit comments

Comments
 (0)