I am using 4coder_casey.cpp with my own 4coder configuration.
With the new version of 4coder, a bug showed up.
One of my static variables is erased by the following code (line 1331):
| Casey_Scroll_Velocity casey_scroll_velocity_[16] = {0};
Casey_Scroll_Velocity *casey_scroll_velocity = casey_scroll_velocity_;
SCROLL_RULE_SIG(casey_smooth_scroll_rule){
float dt = 1.0f/60.0f; // TODO(casey): Why do I not get the timestep here?
Casey_Scroll_Velocity *velocity = casey_scroll_velocity + view_id;
|
It seems that 4coder has: 1 <= view_id <= 16.
When view_id is 16, casey_scroll_velocity_ overflows.
Here is how it is done in 4coder_default_include.cpp (line 732):
| Scroll_Velocity scroll_velocity_[16] = {0};
Scroll_Velocity *scroll_velocity = scroll_velocity_ - 1;
|
This fixed the bug:
| Casey_Scroll_Velocity *casey_scroll_velocity = casey_scroll_velocity_ - 1;
|