openframeworks / openframeworks/openFrameworks
ofPixels, problem to allocate huge size of pixels.
Open
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 2.6k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 9
Description
Hello,
I found a bug in bytesFromPixelFormat.
template<typename PixelType>
static int bytesFromPixelFormat(int w, int h, ofPixelFormat format){
return w*h*pixelBitsFromPixelFormat<PixelType>(format)/8;
}
this code should be
template<typename PixelType>
static int bytesFromPixelFormat(int w, int h, ofPixelFormat format){
return w*h*(pixelBitsFromPixelFormat<PixelType>(format)/8);
}
e.g.
to try to allocate 10000w * 10000h, RGBA pixels,
the order of calculation will be
10,000 * 10,000 = 100,000,000
100,000,000 * 32 = 3,200,000,000 <- overflow!!!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Locate the bytesFromPixelFormat function and inspect how its multiplication is evaluated for large dimensions and RGBA formats. Reproduce the 10,000 × 10,000 allocation case, then verify that the calculated byte count no longer overflows and that relevant existing tests pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100