diff --git a/drivers/pulseaudio/audio_driver_pulseaudio.cpp b/drivers/pulseaudio/audio_driver_pulseaudio.cpp index 0c517f4a545..f5fde816a16 100644 --- a/drivers/pulseaudio/audio_driver_pulseaudio.cpp +++ b/drivers/pulseaudio/audio_driver_pulseaudio.cpp @@ -138,21 +138,20 @@ Error AudioDriverPulseAudio::detect_channels(bool input) { } } - char dev[1024]; if (device == "Default") { - strcpy(dev, input ? default_input_device.utf8().get_data() : default_output_device.utf8().get_data()); - } else { - strcpy(dev, device.utf8().get_data()); + device = input ? default_input_device : default_output_device; } - print_verbose("PulseAudio: Detecting channels for device: " + String(dev)); + print_verbose("PulseAudio: Detecting channels for device: " + device); + + CharString device_utf8 = device.utf8(); // Now using the device name get the amount of channels pa_status = 0; pa_operation *pa_op; if (input) { - pa_op = pa_context_get_source_info_by_name(pa_ctx, dev, &AudioDriverPulseAudio::pa_source_info_cb, (void *)this); + pa_op = pa_context_get_source_info_by_name(pa_ctx, device_utf8.get_data(), &AudioDriverPulseAudio::pa_source_info_cb, (void *)this); } else { - pa_op = pa_context_get_sink_info_by_name(pa_ctx, dev, &AudioDriverPulseAudio::pa_sink_info_cb, (void *)this); + pa_op = pa_context_get_sink_info_by_name(pa_ctx, device_utf8.get_data(), &AudioDriverPulseAudio::pa_sink_info_cb, (void *)this); } if (pa_op) { diff --git a/editor/plugins/tiles/tile_map_layer_editor.cpp b/editor/plugins/tiles/tile_map_layer_editor.cpp index d823e5caff8..bf2e6da9442 100644 --- a/editor/plugins/tiles/tile_map_layer_editor.cpp +++ b/editor/plugins/tiles/tile_map_layer_editor.cpp @@ -4078,7 +4078,7 @@ Vector TileMapLayerEditor::get_line(const TileMapLayer *p_tile_map_lay if (sign.x == 0) { current += Vector2(sign.y, 0); } else { - current += Vector2(bool(current.y % 2) ^ (sign.x < 0) ? sign.x : 0, sign.y); + current += Vector2(bool(current.y % 2) != (sign.x < 0) ? sign.x : 0, sign.y); } err -= err_step.x; } else { @@ -4095,7 +4095,7 @@ Vector TileMapLayerEditor::get_line(const TileMapLayer *p_tile_map_lay if (sign.x == 0) { current += Vector2(0, sign.y); } else { - current += Vector2(bool(current.y % 2) ^ (sign.x < 0) ? sign.x : 0, sign.y); + current += Vector2(bool(current.y % 2) != (sign.x < 0) ? sign.x : 0, sign.y); } err -= err_step.y; } else { diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp index 4d2bb090df2..e01f81c6ed1 100644 --- a/modules/gdscript/gdscript_analyzer.cpp +++ b/modules/gdscript/gdscript_analyzer.cpp @@ -5335,7 +5335,7 @@ Variant GDScriptAnalyzer::make_call_reduced_value(GDScriptParser::CallNode *p_ca Vector args; args.resize(p_call->arguments.size()); - const Variant **argptrs = (const Variant **)alloca(sizeof(const Variant **) * args.size()); + const Variant **argptrs = (const Variant **)alloca(sizeof(const Variant *) * args.size()); for (int i = 0; i < p_call->arguments.size(); i++) { bool is_arg_value_reduced = false; Variant arg_value = make_expression_reduced_value(p_call->arguments[i], is_arg_value_reduced); diff --git a/servers/rendering/rendering_device.cpp b/servers/rendering/rendering_device.cpp index 18adea7ae94..1ca9633757a 100644 --- a/servers/rendering/rendering_device.cpp +++ b/servers/rendering/rendering_device.cpp @@ -7287,7 +7287,10 @@ void RenderingDevice::_set_max_fps(int p_max_fps) { RenderingDevice *RenderingDevice::create_local_device() { RenderingDevice *rd = memnew(RenderingDevice); - rd->initialize(context); + if (rd->initialize(context) != OK) { + memdelete(rd); + return nullptr; + } return rd; }