Skip to main content
Topic: r2015 - Crash when I sell convoy in depot or when exiting game (Read 4882 times) previous topic - next topic

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

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 p****enger 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 ...

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

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

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

Reply #2
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.

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

Reply #3
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.

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

Reply #4
Not in my version ... unsure how to handle this.

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

Reply #5
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

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

Reply #6
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.

 

[solved]Re: r2015 - Crash when I sell convoy in depot or when exiting game

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