- const INT lx = himl->cx * pimldp->i + pimldp->xBitmap;
- const INT ly = pimldp->yBitmap;
- static INT lx;
- static INT ly;
Should this be really static? Can't this function be called reentrant?
well, static is no worse than const ;) but I'll leave that to dimitrie. I was simply trying to cause as few changes as possible, and changing it to static would make it a global , rather than a stack variable, the same as const.
There is a huge distinction between static and const. static is allocated on the heap as global as you say and that means bad things will happen when the function is called in parallel from several threads.
const basically is only a compiler restriction which prevents the programmer to change the value of a variable after it is initialized. That's why you had to remove it as otherwise the compiler complained that the variable assignement later on would not be valid. But the const variable is still allocated on the stack and therefore threadsafe.
Rolf Kalbermatter