Refactor `codegen_deferred_annotations_body` to ensure `mangled` is decref'd
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 77.2k
- Fork
- 35.9k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
Bug report
Bug description:
Follow-up item from this PR: https://github.com/python/cpython/pull/146443#pullrequestreview-4033013919
During error cases we may fail to decref mangled while using these ADDOP* and VISIT macros. As a result, we can extract the for loop's body into a subfunction that we check the return of and decref mangled if needed.
// NOTE: ref of mangled can be leaked on ADDOP* and VISIT macros due to early returns
// fixing would require an overhaul of these macros
CPython versions tested on:
CPython main branch
Operating systems tested on:
Windows
Linked PRs
- gh-148060
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách tìm codegen_deferred_annotations_body và kiểm tra vòng lặp for sử dụng các macro ADDOP* và VISIT, sau đó xem lại các PR 146443 và PR 148060 được liên kết để biết ngữ cảnh. Công việc được xem là hoàn tất khi nhánh xử lý lỗi của vòng lặp không còn để lại các đối tượng bị hỏng chưa được giải phóng, đồng thời vẫn giữ nguyên hành vi tạo mã hiện có.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- c
- Lĩnh vực
- compilers
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100