Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Executing Packed*Array.set crashes Godot #46395

Closed
qarmin opened this issue Feb 24, 2021 · 0 comments · Fixed by #36476
Closed

Executing Packed*Array.set crashes Godot #46395

qarmin opened this issue Feb 24, 2021 · 0 comments · Fixed by #36476

Comments

@qarmin
Copy link
Contributor

qarmin commented Feb 24, 2021

Godot version:
4.0.dev.custom_build. 3bb628d

OS
Ubuntu 20.04 - Ubuntu 3.36 X11

Issue description:
Executing

extends Node2D

var q_PackedByteArray: PackedByteArray = Autoload.get_packedbytearray()

func _process(delta) -> void:
	if randi() % 2 == 1:
		q_PackedByteArray = PackedByteArray()
	
	if randi() % 2 == 1:
		q_PackedByteArray.set(randi()% 100 - 500, randi()% 100 - 500)

crashes with backtrace

[1] /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7fed8c227210] (??:0)
[2] CowData<unsigned char>::set(int, unsigned char const&) (/mnt/Miecz/godot/./core/templates/cowdata.h:145 (discriminator 7))
[3] Vector<unsigned char>::set(int, unsigned char const&) (/mnt/Miecz/godot/./core/templates/vector.h:86)
[4] void call_with_variant_args_helper<Vector<unsigned char>, int, unsigned char const&, 0ul, 1ul>(Vector<unsigned char>*, void (Vector<unsigned char>::*)(int, unsigned char const&), Variant const**, Callable::CallError&, IndexSequence<0ul, 1ul>) (/mnt/Miecz/godot/./core/variant/binder_common.h:202 (discriminator 4))
[5] void call_with_variant_args_dv<Vector<unsigned char>, int, unsigned char const&>(Vector<unsigned char>*, void (Vector<unsigned char>::*)(int, unsigned char const&), Variant const**, int, Callable::CallError&, Vector<Variant> const&) (/mnt/Miecz/godot/./core/variant/binder_common.h:315)
[6] godot4() [0x542f268] (/mnt/Miecz/godot/core/variant/variant_call.cpp:57)
[7] godot4() [0x53b62b7] (/mnt/Miecz/godot/core/variant/variant_call.cpp:1315)
[8] Variant::call(StringName const&, Variant const**, int, Variant&, Callable::CallError&) (/mnt/Miecz/godot/core/variant/variant_call.cpp:626)
[9] GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Callable::CallError&, GDScriptFunction::CallState*) (/mnt/Miecz/godot/modules/gdscript/gdscript_vm.cpp:1374)
[10] GDScriptInstance::call(StringName const&, Variant const**, int, Callable::CallError&) (/mnt/Miecz/godot/modules/gdscript/gdscript.cpp:1544)
[11] ScriptInstance::call(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/mnt/Miecz/godot/core/object/script_language.cpp:323)
[12] Node::_notification(int) (/mnt/Miecz/godot/scene/main/node.cpp:58)
[13] Node::_notificationv(int, bool) (/mnt/Miecz/godot/./scene/main/node.h:45 (discriminator 14))
[14] CanvasItem::_notificationv(int, bool) (/mnt/Miecz/godot/./scene/main/canvas_item.h:164 (discriminator 3))
[15] Node2D::_notificationv(int, bool) (/mnt/Miecz/godot/./scene/2d/node_2d.h:37 (discriminator 3))
[16] Object::notification(int, bool) (/mnt/Miecz/godot/core/object/object.cpp:795)
[17] SceneTree::_notify_group_pause(StringName const&, int) (/mnt/Miecz/godot/scene/main/scene_tree.cpp:812)
[18] SceneTree::process(float) (/mnt/Miecz/godot/scene/main/scene_tree.cpp:441 (discriminator 2))
[19] Main::iteration() (/mnt/Miecz/godot/main/main.cpp:2486)
[20] OS_LinuxBSD::run() (/mnt/Miecz/godot/platform/linuxbsd/os_linuxbsd.cpp:261)
[21] godot4(main+0x166) [0x1e449ac] (/mnt/Miecz/godot/platform/linuxbsd/godot_linuxbsd.cpp:60)
[22] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7fed8c2080b3] (??:0)
[23] godot4(_start+0x2e) [0x1e4478e] (??:?)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant