From ae819b4f85218c37496a763a1ee3ff6161e87da4 Mon Sep 17 00:00:00 2001 From: arngo <27396817+arngo@users.noreply.github.com> Date: Sun, 23 Jan 2022 19:09:56 -0500 Subject: fix creating a new rectangle in mrb_Rectangle_get_collision_rec --- src/raylib.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/raylib.c b/src/raylib.c index 3deb6a7..ce33713 100644 --- a/src/raylib.c +++ b/src/raylib.c @@ -684,15 +684,16 @@ mrb_Circle_collide_with_rec(mrb_state* mrb, mrb_value self) { static mrb_value mrb_Rectangle_get_collision_rec(mrb_state* mrb, mrb_value self) { mrb_value rec_obj; - mrb_value collision_rec_obj; mrb_get_args(mrb, "o", &rec_obj); Rectangle *rec_self = DATA_GET_PTR(mrb, self, &Rectangle_type, Rectangle); Rectangle *rec_other = DATA_GET_PTR(mrb, rec_obj, &Rectangle_type, Rectangle); - Rectangle collision_rec = GetCollisionRec(*rec_self, *rec_other); + Rectangle *collision_rec = (Rectangle *)mrb_malloc(mrb, sizeof(Rectangle)); + *collision_rec = GetCollisionRec(*rec_self, *rec_other); - mrb_data_init(collision_rec_obj, &collision_rec, &Rectangle_type); - return collision_rec_obj; + struct RClass *c = mrb_module_get(mrb, "Raylib"); + struct RClass *rec_class = mrb_class_get_under(mrb, c, Rectangle_type.struct_name); + return mrb_obj_value(Data_Wrap_Struct(mrb, rec_class, &Rectangle_type, collision_rec)); } static mrb_value -- cgit v1.2.3