TONPPAMF

The Official NPPAngband And NPPMoria Forum

You are not logged in.

Announcement

November 28, 2016 - NPPAngband forum has been migrated to a new host. SSL has been enabled so please use https:// if possible.

#1 2016-03-15 13:03:39

hydraa
Member
Registered: 2004-10-11
Posts: 421

8.0.4 crash when starting

Just tried out the new version.
Downloaded and unzipped and changed my permanent wall terrain color
opened all windows
options set autoscum, all display and birth money to on playing ascii tiles with solid walls on, turned off targeting buttons.
Played a bit (testing for ghost file gen), went down, found something (was blind as I bought no torch), died.
Played with the close window options a bit, including a create spolier that I don't normally do.
Attempted to start a new game off the save file, after starting there was a crash.  (had all windows open for both starts to try to see if it would crash).

Try to narrow down the cause, and I sometimes get a crash on a initial start and sometimes on a 2nd start after dying in a first round.

Playing with all windows closed allow me to do a restart without a crash, so there must still be something in the window code somewhere that it does not like.

Last edited by hydraa (2016-03-15 13:09:14)

Offline

#2 2016-03-15 13:27:09

hydraa
Member
Registered: 2004-10-11
Posts: 421

Re: 8.0.4 crash when starting

replicated the first scenario in the debugger
(start new game all windows open, die on level 1, create spoilers look other items, restart game with save file (using the menu bar individual selection of the save file), get a crash before the game can start again.

>~"\nProgram received signal "
>~"SIGSEGV, Segmentation fault.\n"

>~"0x6b7f0fcb in QtSharedPointer::ExternalRefCountData::getAndRef (obj=0x1d4d6ef8) at tools\\qsharedpointer.cpp:1328\n"
>&"1328\ttools\\qsharedpointer.cpp: No such file or directory.\n"
>*stopped,reason="signal-received",signal-name="SIGSEGV",signal-meaning="Segmentation fault",frame={addr="0x6b7f0fcb",func="QtSharedPointer::ExternalRefCountData::getAndRef",args=[{name="obj",value="0x1d4d6ef8"}],file="tools\\qsharedpointer.cpp",fullname="C:/Qt/5.5/mingw492_32\\qtbase\\src\\corelib/tools\\qsharedpointer.cpp",line="1328"},thread-id="1",stopped-threads="all"
dNOTE: INFERIOR SPONTANEOUS STOP
sStopped.
dState changed from InferiorRunOk(11) to InferiorStopOk(14) [master]
<22importPlainDumpers off
dHANDLING SIGNAL SIGSEGV
sStopped: Segmentation fault (Signal SIGSEGV).

Offline

#3 2016-03-15 13:41:19

hydraa
Member
Registered: 2004-10-11
Posts: 421

Re: 8.0.4 crash when starting

Looks like line 222 of player_screen.cpp where it

// This should only receive equipment labels created in the function below
// For efficiency's sake, this is not checked
static void update_equippy_labels(QList<QLabel *> this_list)
{
    for (int x = 0; x < this_list.size(); x++)
    {
        QPointer<QLabel> this_lbl = this_list.at(x);

Offline

#4 2016-03-15 17:37:21

NPPAngband
NPPAngband Maintainer
Registered: 2004-07-01
Posts: 1,647
Website

Re: 8.0.4 crash when starting

Again, thank you.   The main difference is while I am playtesting I tend to open a character and immediately see if a feature works.  I rarely open a character, close it (or die), then re-open the savefile while playtesting.

The reason this bug was introduced was me attempting to simplify the code that redraws the screen.  There are times when things are drawn multiple times for no reason, and times when things were was not being drawn at all.  But in streamlining the redraws, the check that was preventing the screen update was bypassed.  Clearly, that check was preventing the crash in the above circumstance as well.

The commit that *should* fix this has been uploaded.

Offline

Board footer

Powered by FluxBB