Potential memory leak

Đang mở
#12 2 bình luận 1 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
25/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
c, javascript
Lĩnh vực
tooling

Hướng nghiên cứu

Bắt đầu trong tools/gen_lib.js, tại phần cấp phát quanh dòng 52 và phần dọn dẹp quanh dòng 63. Theo dõi điều gì xảy ra khi các lần cấp phát vượt quá FRAME_ALLOC_SIZE, sau đó xác định liệu dự án nên cảnh báo khi đạt giới hạn hay loại bỏ cách tiếp cận cấp phát cố định. Công việc được xem là hoàn tất khi trường hợp cấp phát vượt mức không còn âm thầm gây rò rỉ và hành vi được chọn đã được ghi chép hoặc xác minh.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

It seems memory will be leaked if you allocate more pointers than FRAME_ALLOC_SIZE, or 1024*512, or 524,288.
https://github.com/konsumer/raylib-pointers/blob/7f2340c4b82fd13e4f00fe682c8b234e3b043ae9/tools/gen_lib.js#L52

Here's where you free only up to _frame_alloc_counter.
https://github.com/konsumer/raylib-pointers/blob/7f2340c4b82fd13e4f00fe682c8b234e3b043ae9/tools/gen_lib.js#L63

A few solutions off the top of my head:

  1. Show some warning when reaching the limit to make the memory leak obvious.
  2. Remove FRAME_ALLOC_SIZE altogether. I think a good way to do that is to only ever have one pointer allocated that'll be used to carry the result, but is freed on the next raylib-function call. Then the receiving/duping/allocating can be done by JS on the JS side, instead of the C side.
Ngôn ngữ chính
C
Star
0
Fork
1
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của konsumer/raylib-pointers

Tất cả issue của konsumer/raylib-pointers

Issue tương tự

Thêm issue về C

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.