mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 18:31:55 -04:00
fix crash when OPTIMIZE=2
This commit is contained in:
parent
140def8f38
commit
9bec17d962
@ -393,25 +393,15 @@ update_motion_trail (float current_time, LMatrix4f *transform) {
|
|||||||
|
|
||||||
minimum_time = current_time - _time_window;
|
minimum_time = current_time - _time_window;
|
||||||
|
|
||||||
int index;
|
|
||||||
int last_frame_index;
|
|
||||||
list <CMotionTrailFrame>::iterator frame_iterator;
|
|
||||||
CMotionTrailFrame motion_trail_frame;
|
CMotionTrailFrame motion_trail_frame;
|
||||||
|
|
||||||
index = 0;
|
while (!_frame_list.empty()) {
|
||||||
last_frame_index = total_frames - 1;
|
motion_trail_frame = _frame_list.back();
|
||||||
frame_iterator = _frame_list.end ( );
|
|
||||||
while (index <= last_frame_index) {
|
|
||||||
frame_iterator--;
|
|
||||||
motion_trail_frame = *frame_iterator;
|
|
||||||
if (motion_trail_frame._time >= minimum_time) {
|
if (motion_trail_frame._time >= minimum_time) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
_frame_list.pop_back ( );
|
|
||||||
}
|
|
||||||
|
|
||||||
index += 1;
|
_frame_list.pop_back ( );
|
||||||
}
|
}
|
||||||
|
|
||||||
// add new frame to beginning of list
|
// add new frame to beginning of list
|
||||||
@ -440,7 +430,7 @@ update_motion_trail (float current_time, LMatrix4f *transform) {
|
|||||||
list <CMotionTrailVertex>::iterator vertex_iterator;
|
list <CMotionTrailVertex>::iterator vertex_iterator;
|
||||||
|
|
||||||
// convert vertex list to vertex array
|
// convert vertex list to vertex array
|
||||||
index = 0;
|
int index = 0;
|
||||||
_vertex_array = new CMotionTrailVertex [total_vertices];
|
_vertex_array = new CMotionTrailVertex [total_vertices];
|
||||||
for (vertex_iterator = _vertex_list.begin ( ); vertex_iterator != _vertex_list.end ( ); vertex_iterator++) {
|
for (vertex_iterator = _vertex_list.begin ( ); vertex_iterator != _vertex_list.end ( ); vertex_iterator++) {
|
||||||
_vertex_array [index] = *vertex_iterator;
|
_vertex_array [index] = *vertex_iterator;
|
||||||
@ -452,10 +442,7 @@ update_motion_trail (float current_time, LMatrix4f *transform) {
|
|||||||
|
|
||||||
total_segments = total_frames - 1;
|
total_segments = total_frames - 1;
|
||||||
|
|
||||||
frame_iterator = _frame_list.end ( );
|
last_motion_trail_frame = _frame_list.back();
|
||||||
frame_iterator--;
|
|
||||||
last_motion_trail_frame = *frame_iterator;
|
|
||||||
|
|
||||||
minimum_time = last_motion_trail_frame._time;
|
minimum_time = last_motion_trail_frame._time;
|
||||||
delta_time = current_time - minimum_time;
|
delta_time = current_time - minimum_time;
|
||||||
|
|
||||||
@ -499,6 +486,7 @@ update_motion_trail (float current_time, LMatrix4f *transform) {
|
|||||||
|
|
||||||
segment_index = 0;
|
segment_index = 0;
|
||||||
|
|
||||||
|
list <CMotionTrailFrame>::iterator frame_iterator;
|
||||||
frame_iterator = _frame_list.begin ( );
|
frame_iterator = _frame_list.begin ( );
|
||||||
while (segment_index < total_segments) {
|
while (segment_index < total_segments) {
|
||||||
int vertex_segement_index;
|
int vertex_segement_index;
|
||||||
@ -751,6 +739,7 @@ update_motion_trail (float current_time, LMatrix4f *transform) {
|
|||||||
CMotionTrailFrame motion_trail_frame_end;
|
CMotionTrailFrame motion_trail_frame_end;
|
||||||
|
|
||||||
segment_index = 0;
|
segment_index = 0;
|
||||||
|
list <CMotionTrailFrame>::iterator frame_iterator;
|
||||||
frame_iterator = _frame_list.begin ( );
|
frame_iterator = _frame_list.begin ( );
|
||||||
while (segment_index < total_segments) {
|
while (segment_index < total_segments) {
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user