Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Mismatch between sizeof(Partio::ParticleIndex), sizeof(size_t), sizeof(int)

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

Maintainer thường phản hồi trong vòng 1 ngày

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

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
cpp
Lĩnh vực
api, computer-graphics

Hướng nghiên cứu

Bắt đầu bằng cách so sánh việc xử lý chỉ mục trong src/liboslexec/pointcloud.cpp tại các dòng được tham chiếu với Partio.h, nơi ParticleIndex được định nghĩa là uint64_t. Kiểm tra các khai báo API của pointcloud_search và pointcloud_get, đồng thời xác minh kiểu được đề xuất trên các bản build 32-bit và 64-bit; được xem là hoàn tất khi các giao diện biên dịch nhất quán với kiểu chỉ mục của Partio.

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

Mô tả

There is some assumption Partio uses size_t for its index type:

https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/blob/7e34ce27c7f759b40333a99cf26860f99c9ba2dd/src/liboslexec/pointcloud.cpp#L360-L365

which is apparently wrong (for the last 12 years):
https://github.com/wdas/partio/blob/7cb3743c6e19c04ac049c05f8f81af2f24410ea3/src/lib/Partio.h#L55
typedef uint64_t ParticleIndex;

On 32 bit archs the compilation then fails due to:
https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/blob/7e34ce27c7f759b40333a99cf26860f99c9ba2dd/src/liboslexec/pointcloud.cpp#L114-L118

Wouldn't it be better change it to unsigned long* out_indices in RendererServices::pointcloud_search? (This may require a version bump for 64bit archs, but only if size_t != unsigned long. For 32bit archs, the current code does not work anyway). Dito for pointcloud_get.

Ngôn ngữ chính
C++
Star
2.3k
Fork
415
Merge trung bình
2 ngày 10 giờ
Pull request đã merge (30 ngày)
14

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

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 AcademySoftwareFoundation/OpenShadingLanguage

Tất cả issue của AcademySoftwareFoundation/OpenShadingLanguage

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.