News:

Want to praise Simutrans?
Your feedback is important for us ;D.

r2015 - Crash when I sell convoy in depot or when exiting game

Started by z9999, September 12, 2008, 04:49:12 AM

Previous topic - Next topic

0 Members and 5 Guests are viewing this topic.

z9999

simutrans r2015, pak64

Problem:
- If there is a convoy in train depot, monorail depot or air depot...
-- Crash when exit the game.
-- Crash when sell this convoy.

How to reproduce:
1. Load attached savegame
2. Open train depot
3. Do one of these
a. Click "sell" button.
b. Exit the game

Result:
Crash.

Note:
This problem happened with train, monorail and airplane depot.
This problem didn't happen with car and ship depot.

Quote
Message: depot_frame_t::build_vehicle_lists():   finally 20 passenger vehicle, 38  engines, 23 good wagons
Message: waggon_t::setze_convoi():   new=00000000 old=05BAE4C0
FATAL ERROR: vector_tpl<T>::[]
index out of bounds: 1 not in 0..-1
Aborting program execution ...

The Hood

I got that as well with linux r2014 and pak128 r100, exactly the same error message.

z9999

In r2016.
Problem still happens when I sell an airplane in air depot.


EDIT: It also crash when I click "start" button in air depot window.

z9999

In r2018.
Problem still happens.

- Crash when I sell an airplane in air depot.
- Crash when I exit game, if there is an airplane in depot.

prissi


z9999

I don't know the difference of these code, but when I used old code, crash didn't happen.
But compiler complained.

I hope this might help you.

In bool aircraft_t::block_reserver( uint32 start, uint32 end, bool reserve )

old code (r2009):
Quote
      for(  uint32 i=start; success  &&  i<end  &&  (sint32)i<=route->gib_max_n(); i++) {

new code (r2018):
Quote
      for(  uint32 i=start;  success  &&  i<end  &&  i<=route->gib_max_n();  i++) {

warning for old code:
Quote
vehicle/simvehikel.cc: In member function `bool aircraft_t::block_reserver(uint32, uint32, bool)':
vehicle/simvehikel.cc:2899: warning: comparison between signed and unsigned integer expressions

prissi

This was part of a patch to reduce warnings. But, my reluctance to fix working stuff was also justified in this case :( This value will be signed again.

z9999

Crash didn't happen in r2020, seems to be solved this problem.
Thank you.