Graf Zahl wrote:... reintroducing one serious crash bug again!
I won't bother with Linux warning removal patches anymore. Yours was not the first that did some careless things.
??? what are you talking about? The patch I previously posted is not doing careless things at all
Edit: OK sorry but I am not used to unsigned/signed mixes, actually the code in m_options.cpp contains
frightening things like
(unsigned int)itemnum which is a very big number when itemnum is -1 and so is always >= Joysticks.Size(). They are not "Linux" warnings, they are warnings for a pure reason: they conceal possible bugs (on all OSes), so I was just proposing a patch to fix that problem but did not realize that many signed/unsigned re-casting were used later in code, sorry.
The correct patch would be:
Code: Select all
Index: src/v_video.cpp
===================================================================
--- src/v_video.cpp (revisione 413)
+++ src/v_video.cpp (copia locale)
@@ -1499,6 +1499,9 @@
M_InitVideoModesMenu();
BorderNeedRefresh = screen->GetPageCount ();
setsizeneeded = true;
+#ifndef _WIN32
+ setmodeneeded = false;
+#endif
}
void V_Shutdown()
Index: src/m_options.cpp
===================================================================
--- src/m_options.cpp (revisione 413)
+++ src/m_options.cpp (copia locale)
@@ -3211,7 +3211,7 @@
void UpdateJoystickMenu(IJoystickConfig *selected)
{
- int i;
+ unsigned int i;
menuitem_t item = { whitetext };
int itemnum = -1;
@@ -3223,7 +3223,7 @@
}
if (selected != NULL)
{
- for (i = 0; (unsigned)i < Joysticks.Size(); ++i)
+ for (i = 0; i < Joysticks.Size(); ++i)
{
if (Joysticks[i] == selected)
{
@@ -3281,10 +3281,10 @@
item.type = joymore;
item.e.mfunc = StartJoystickConfigMenu;
- for (int i = 0; i < (int)Joysticks.Size(); ++i)
+ for (i = 0; i < Joysticks.Size(); ++i)
{
item.a.joyselection = i;
- if (i == itemnum)
+ if (i == (unsigned int)itemnum)
{
JoystickMenu.lastOn = JoystickItems.Size();
}
@@ -3308,14 +3308,14 @@
// If the joystick config menu is open, close it if the device it's
// open for is gone.
- for (i = 0; (unsigned)i < Joysticks.Size(); ++i)
+ for (i = 0; i < Joysticks.Size(); ++i)
{
if (Joysticks[i] == SELECTED_JOYSTICK)
{
break;
}
}
- if (i == (int)Joysticks.Size())
+ if (i == Joysticks.Size())
{
SELECTED_JOYSTICK = NULL;
if (CurrentMenu == &JoystickConfigMenu)
Index: src/gl/old_renderer/gl1_flats.cpp
===================================================================
--- src/gl/old_renderer/gl1_flats.cpp (revisione 413)
+++ src/gl/old_renderer/gl1_flats.cpp (copia locale)
@@ -575,13 +575,13 @@
fixed_t lastceilingheight=sector->CenterCeiling(); // render only in the range of the
fixed_t lastfloorheight=sector->CenterFloor(); // current sector part (if applicable)
F3DFloor * rover;
- int k;
+ unsigned int k;
// floors are ordered now top to bottom so scanning the list for the best match
// is no longer necessary.
ceiling=true;
- for(k=0;k<(int)x.ffloors.Size();k++)
+ for(k=0;k<x.ffloors.Size();k++)
{
rover=x.ffloors[k];
@@ -638,7 +638,7 @@
}
ceiling=false;
- for(k=x.ffloors.Size()-1;k>=0;k--)
+ for(int k=(int)x.ffloors.Size()-1;k>=0;k--)
{
rover=x.ffloors[k];
I am experiencing bad latencies when trying to read the classic Doom demos, glitches when restoring the Xorg screen coming from a virtual terminal and the complete loss of mouselook between certain load/save sequences...are other Linux users experiencing these problems?