Yes, I agree. I suggested passing a pointer because I assume that it could have lived in the stack, but since the actual context needs to persist between function calls, I'd rather go to your initial fix of casting to `(long long)`, although the right cast to make sure it works in all platforms is `(intptr_t)`. Let's use that one, which ensures we can cast from pointers to int without ever losing precision.