Skip copying values constructed immediately before returning

This commit is contained in:
Aaron Franke 2025-09-26 19:13:23 -07:00
parent 9283328fe7
commit 754d49ac81
No known key found for this signature in database
GPG key ID: 40A1750B977E56BF
14 changed files with 35 additions and 60 deletions

View file

@ -76,8 +76,7 @@ void EditorExpressionEvaluator::_clear() {
}
void EditorExpressionEvaluator::_remote_object_selected(ObjectID p_id) {
Array arr = { p_id };
editor_debugger->emit_signal(SNAME("remote_objects_requested"), arr);
editor_debugger->emit_signal(SNAME("remote_objects_requested"), Array{ p_id });
}
void EditorExpressionEvaluator::_on_expression_input_changed(const String &p_expression) {

View file

@ -288,8 +288,7 @@ void ScriptEditorDebugger::clear_inspector(bool p_send_msg) {
}
void ScriptEditorDebugger::_remote_object_selected(ObjectID p_id) {
Array arr = { p_id };
emit_signal(SNAME("remote_objects_requested"), arr);
emit_signal(SNAME("remote_objects_requested"), Array{ p_id });
}
void ScriptEditorDebugger::_remote_objects_edited(const String &p_prop, const TypedDictionary<uint64_t, Variant> &p_values, const String &p_field) {

View file

@ -1114,8 +1114,7 @@ HashMap<Vector2i, TileMapCell> TileMapLayerEditorTilesPlugin::_draw_rect(Vector2
// Get or create the pattern.
Ref<TileMapPattern> pattern = p_erase ? erase_pattern : selection_pattern;
HashMap<Vector2i, TileMapCell> err_output;
ERR_FAIL_COND_V(pattern->is_empty(), err_output);
ERR_FAIL_COND_V(pattern->is_empty(), (HashMap<Vector2i, TileMapCell>()));
// Compute the offset to align things to the bottom or right.
bool aligned_right = p_end_cell.x < p_start_cell.x;

View file

@ -1476,8 +1476,7 @@ void TileSetAtlasSourceEditor::_end_dragging() {
undo_redo->add_do_method(tile_set_atlas_source, "move_tile_in_atlas", drag_start_tile_shape.position, drag_current_tile, tile_set_atlas_source->get_tile_size_in_atlas(drag_current_tile));
undo_redo->add_do_method(this, "_set_selection_from_array", _get_selection_as_array());
undo_redo->add_undo_method(tile_set_atlas_source, "move_tile_in_atlas", drag_current_tile, drag_start_tile_shape.position, drag_start_tile_shape.size);
Array array = { drag_start_tile_shape.position, 0 };
undo_redo->add_undo_method(this, "_set_selection_from_array", array);
undo_redo->add_undo_method(this, "_set_selection_from_array", Array{ drag_start_tile_shape.position, 0 });
undo_redo->commit_action(false);
}
break;
@ -1574,8 +1573,7 @@ void TileSetAtlasSourceEditor::_end_dragging() {
undo_redo->add_do_method(tile_set_atlas_source, "move_tile_in_atlas", drag_start_tile_shape.position, drag_current_tile, tile_set_atlas_source->get_tile_size_in_atlas(drag_current_tile));
undo_redo->add_do_method(this, "_set_selection_from_array", _get_selection_as_array());
undo_redo->add_undo_method(tile_set_atlas_source, "move_tile_in_atlas", drag_current_tile, drag_start_tile_shape.position, drag_start_tile_shape.size);
Array array = { drag_start_tile_shape.position, 0 };
undo_redo->add_undo_method(this, "_set_selection_from_array", array);
undo_redo->add_undo_method(this, "_set_selection_from_array", Array{ drag_start_tile_shape.position, 0 });
undo_redo->commit_action(false);
}
break;
@ -1663,8 +1661,7 @@ void TileSetAtlasSourceEditor::_menu_option(int p_option) {
case TILE_CREATE: {
undo_redo->create_action(TTR("Create a tile"));
undo_redo->add_do_method(tile_set_atlas_source, "create_tile", menu_option_coords);
Array array = { menu_option_coords, 0 };
undo_redo->add_do_method(this, "_set_selection_from_array", array);
undo_redo->add_do_method(this, "_set_selection_from_array", Array{ menu_option_coords, 0 });
undo_redo->add_undo_method(tile_set_atlas_source, "remove_tile", menu_option_coords);
undo_redo->add_undo_method(this, "_set_selection_from_array", _get_selection_as_array());
undo_redo->commit_action();

View file

@ -265,7 +265,7 @@ void ENetConnection::get_peers(List<Ref<ENetPacketPeer>> &r_peers) {
}
TypedArray<ENetPacketPeer> ENetConnection::_get_peers() {
ERR_FAIL_NULL_V_MSG(host, Array(), "The ENetConnection instance isn't currently active.");
ERR_FAIL_NULL_V_MSG(host, TypedArray<ENetPacketPeer>(), "The ENetConnection instance isn't currently active.");
TypedArray<ENetPacketPeer> out;
for (const Ref<ENetPacketPeer> &I : peers) {
out.push_back(I);

View file

@ -885,8 +885,8 @@ const Array &ExtendGDScriptParser::get_member_completions() {
}
Dictionary ExtendGDScriptParser::dump_function_api(const GDScriptParser::FunctionNode *p_func) const {
ERR_FAIL_NULL_V(p_func, Dictionary());
Dictionary func;
ERR_FAIL_NULL_V(p_func, func);
func["name"] = p_func->identifier->name;
func["return_type"] = p_func->get_datatype().to_string();
func["rpc_config"] = p_func->rpc_config;
@ -909,10 +909,9 @@ Dictionary ExtendGDScriptParser::dump_function_api(const GDScriptParser::Functio
}
Dictionary ExtendGDScriptParser::dump_class_api(const GDScriptParser::ClassNode *p_class) const {
ERR_FAIL_NULL_V(p_class, Dictionary());
Dictionary class_api;
ERR_FAIL_NULL_V(p_class, class_api);
class_api["name"] = p_class->identifier != nullptr ? String(p_class->identifier->name) : String();
class_api["path"] = path;
Array extends_class;

View file

@ -355,13 +355,11 @@ Dictionary GDScriptTextDocument::resolve(const Dictionary &p_params) {
}
Array GDScriptTextDocument::foldingRange(const Dictionary &p_params) {
Array arr;
return arr;
return Array();
}
Array GDScriptTextDocument::codeLens(const Dictionary &p_params) {
Array arr;
return arr;
return Array();
}
Array GDScriptTextDocument::documentLink(const Dictionary &p_params) {
@ -379,8 +377,7 @@ Array GDScriptTextDocument::documentLink(const Dictionary &p_params) {
}
Array GDScriptTextDocument::colorPresentation(const Dictionary &p_params) {
Array arr;
return arr;
return Array();
}
Variant GDScriptTextDocument::hover(const Dictionary &p_params) {
@ -416,8 +413,7 @@ Array GDScriptTextDocument::definition(const Dictionary &p_params) {
LSP::TextDocumentPositionParams params;
params.load(p_params);
List<const LSP::DocumentSymbol *> symbols;
Array arr = find_symbols(params, symbols);
return arr;
return find_symbols(params, symbols);
}
Variant GDScriptTextDocument::declaration(const Dictionary &p_params) {

View file

@ -575,8 +575,7 @@ struct SaveOptions {
*/
struct ColorProviderOptions {
Dictionary to_json() {
Dictionary dict;
return dict;
return Dictionary();
}
};
@ -585,8 +584,7 @@ struct ColorProviderOptions {
*/
struct FoldingRangeProviderOptions {
Dictionary to_json() {
Dictionary dict;
return dict;
return Dictionary();
}
};

View file

@ -271,7 +271,7 @@ Ref<RegExMatch> RegEx::search(const String &p_subject, int p_offset, int p_end)
}
TypedArray<RegExMatch> RegEx::search_all(const String &p_subject, int p_offset, int p_end) const {
ERR_FAIL_COND_V_MSG(p_offset < 0, Array(), "RegEx search offset must be >= 0");
ERR_FAIL_COND_V_MSG(p_offset < 0, TypedArray<RegExMatch>(), "RegEx search offset must be >= 0");
int last_end = 0;
TypedArray<RegExMatch> result;

View file

@ -571,23 +571,19 @@ void TileMap::set_pattern(int p_layer, const Vector2i &p_position, const Ref<Til
}
HashMap<Vector2i, TileSet::TerrainsPattern> TileMap::terrain_fill_constraints(int p_layer, const Vector<Vector2i> &p_to_replace, int p_terrain_set, const RBSet<TerrainConstraint> &p_constraints) {
HashMap<Vector2i, TileSet::TerrainsPattern> err_value;
TILEMAP_CALL_FOR_LAYER_V(p_layer, err_value, terrain_fill_constraints, p_to_replace, p_terrain_set, p_constraints);
TILEMAP_CALL_FOR_LAYER_V(p_layer, (HashMap<Vector2i, TileSet::TerrainsPattern>()), terrain_fill_constraints, p_to_replace, p_terrain_set, p_constraints);
}
HashMap<Vector2i, TileSet::TerrainsPattern> TileMap::terrain_fill_connect(int p_layer, const Vector<Vector2i> &p_coords_array, int p_terrain_set, int p_terrain, bool p_ignore_empty_terrains) {
HashMap<Vector2i, TileSet::TerrainsPattern> err_value;
TILEMAP_CALL_FOR_LAYER_V(p_layer, err_value, terrain_fill_connect, p_coords_array, p_terrain_set, p_terrain, p_ignore_empty_terrains);
TILEMAP_CALL_FOR_LAYER_V(p_layer, (HashMap<Vector2i, TileSet::TerrainsPattern>()), terrain_fill_connect, p_coords_array, p_terrain_set, p_terrain, p_ignore_empty_terrains);
}
HashMap<Vector2i, TileSet::TerrainsPattern> TileMap::terrain_fill_path(int p_layer, const Vector<Vector2i> &p_coords_array, int p_terrain_set, int p_terrain, bool p_ignore_empty_terrains) {
HashMap<Vector2i, TileSet::TerrainsPattern> err_value;
TILEMAP_CALL_FOR_LAYER_V(p_layer, err_value, terrain_fill_path, p_coords_array, p_terrain_set, p_terrain, p_ignore_empty_terrains);
TILEMAP_CALL_FOR_LAYER_V(p_layer, (HashMap<Vector2i, TileSet::TerrainsPattern>()), terrain_fill_path, p_coords_array, p_terrain_set, p_terrain, p_ignore_empty_terrains);
}
HashMap<Vector2i, TileSet::TerrainsPattern> TileMap::terrain_fill_pattern(int p_layer, const Vector<Vector2i> &p_coords_array, int p_terrain_set, TileSet::TerrainsPattern p_terrains_pattern, bool p_ignore_empty_terrains) {
HashMap<Vector2i, TileSet::TerrainsPattern> err_value;
TILEMAP_CALL_FOR_LAYER_V(p_layer, err_value, terrain_fill_pattern, p_coords_array, p_terrain_set, p_terrains_pattern, p_ignore_empty_terrains);
TILEMAP_CALL_FOR_LAYER_V(p_layer, (HashMap<Vector2i, TileSet::TerrainsPattern>()), terrain_fill_pattern, p_coords_array, p_terrain_set, p_terrains_pattern, p_ignore_empty_terrains);
}
void TileMap::set_cells_terrain_connect(int p_layer, TypedArray<Vector2i> p_cells, int p_terrain_set, int p_terrain, bool p_ignore_empty_terrains) {

View file

@ -2391,9 +2391,9 @@ HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_constrain
}
HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_connect(const Vector<Vector2i> &p_coords_array, int p_terrain_set, int p_terrain, bool p_ignore_empty_terrains) const {
ERR_FAIL_COND_V(tile_set.is_null(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
HashMap<Vector2i, TileSet::TerrainsPattern> output;
ERR_FAIL_COND_V(tile_set.is_null(), output);
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), output);
// Build list and set of tiles that can be modified (painted and their surroundings).
Vector<Vector2i> can_modify_list;
@ -2491,14 +2491,13 @@ HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_connect(c
}
// Fill the terrains.
output = terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
return output;
return terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
}
HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_path(const Vector<Vector2i> &p_coords_array, int p_terrain_set, int p_terrain, bool p_ignore_empty_terrains) const {
ERR_FAIL_COND_V(tile_set.is_null(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
HashMap<Vector2i, TileSet::TerrainsPattern> output;
ERR_FAIL_COND_V(tile_set.is_null(), output);
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), output);
// Make sure the path is correct and build the peering bit list while doing it.
Vector<TileSet::CellNeighbor> neighbor_list;
@ -2564,14 +2563,13 @@ HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_path(cons
}
// Fill the terrains.
output = terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
return output;
return terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
}
HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_pattern(const Vector<Vector2i> &p_coords_array, int p_terrain_set, TileSet::TerrainsPattern p_terrains_pattern, bool p_ignore_empty_terrains) const {
ERR_FAIL_COND_V(tile_set.is_null(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
HashMap<Vector2i, TileSet::TerrainsPattern> output;
ERR_FAIL_COND_V(tile_set.is_null(), output);
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), output);
// Build list and set of tiles that can be modified (painted and their surroundings).
Vector<Vector2i> can_modify_list;
@ -2616,8 +2614,7 @@ HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_pattern(c
}
// Fill the terrains.
output = terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
return output;
return terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
}
TileMapCell TileMapLayer::get_cell(const Vector2i &p_coords) const {
@ -3596,11 +3593,10 @@ TileMapLayer::~TileMapLayer() {
}
HashMap<Vector2i, TileSet::CellNeighbor> TerrainConstraint::get_overlapping_coords_and_peering_bits() const {
ERR_FAIL_COND_V(is_center_bit(), (HashMap<Vector2i, TileSet::CellNeighbor>()));
ERR_FAIL_COND_V(tile_set.is_null(), (HashMap<Vector2i, TileSet::CellNeighbor>()));
HashMap<Vector2i, TileSet::CellNeighbor> output;
ERR_FAIL_COND_V(is_center_bit(), output);
ERR_FAIL_COND_V(tile_set.is_null(), output);
TileSet::TileShape shape = tile_set->get_tile_shape();
if (shape == TileSet::TILE_SHAPE_SQUARE) {
switch (bit) {

View file

@ -67,8 +67,7 @@ Array ResourcePreloader::_get_resources() const {
i++;
}
Array res = { names, arr };
return res;
return Array{ names, arr };
}
void ResourcePreloader::add_resource(const StringName &p_name, const Ref<Resource> &p_resource) {

View file

@ -1301,12 +1301,10 @@ Array TileSet::map_tile_proxy(int p_source_from, Vector2i p_coords_from, int p_a
// Source matches.
if (source_level_proxies.has(p_source_from)) {
Array output = { source_level_proxies[p_source_from], p_coords_from, p_alternative_from };
return output;
return Array{ source_level_proxies[p_source_from], p_coords_from, p_alternative_from };
}
Array output = { p_source_from, p_coords_from, p_alternative_from };
return output;
return Array{ p_source_from, p_coords_from, p_alternative_from };
}
void TileSet::cleanup_invalid_tile_proxies() {

View file

@ -73,8 +73,7 @@ bool ServersDebugger::ResourceUsage::deserialize(const Array &p_arr) {
}
Array ServersDebugger::ScriptFunctionSignature::serialize() {
Array arr = { name, id };
return arr;
return Array{ name, id };
}
bool ServersDebugger::ScriptFunctionSignature::deserialize(const Array &p_arr) {