(svn r14265) -Fix (r10750): desyncs after deleting a waypoint because of explicit destructor call instead of using operator delete

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
smatz 16 years ago
parent 12dcb3adb4
commit 2c0a95ed66

@ -293,7 +293,7 @@ void WaypointsDailyLoop()
/* Check if we need to delete a waypoint */ /* Check if we need to delete a waypoint */
FOR_ALL_WAYPOINTS(wp) { FOR_ALL_WAYPOINTS(wp) {
if (wp->deleted != 0 && --wp->deleted == 0) DeleteWaypoint(wp); if (wp->deleted != 0 && --wp->deleted == 0) delete wp;
} }
} }

@ -44,11 +44,6 @@ static inline bool IsValidWaypointID(WaypointID index)
return index < GetWaypointPoolSize() && GetWaypoint(index)->IsValid(); return index < GetWaypointPoolSize() && GetWaypoint(index)->IsValid();
} }
static inline void DeleteWaypoint(Waypoint *wp)
{
wp->~Waypoint();
}
#define FOR_ALL_WAYPOINTS_FROM(wp, start) for (wp = GetWaypoint(start); wp != NULL; wp = (wp->index + 1U < GetWaypointPoolSize()) ? GetWaypoint(wp->index + 1U) : NULL) if (wp->IsValid()) #define FOR_ALL_WAYPOINTS_FROM(wp, start) for (wp = GetWaypoint(start); wp != NULL; wp = (wp->index + 1U < GetWaypointPoolSize()) ? GetWaypoint(wp->index + 1U) : NULL) if (wp->IsValid())
#define FOR_ALL_WAYPOINTS(wp) FOR_ALL_WAYPOINTS_FROM(wp, 0) #define FOR_ALL_WAYPOINTS(wp) FOR_ALL_WAYPOINTS_FROM(wp, 0)

Loading…
Cancel
Save