Page 1 of 1

[BUG] Access violation exception

Posted: Sat Oct 20, 2012 15:50
by cziter15pl
Hello,

I have a problem, it appears sometimes, when I'm logging to my game.

It's my debug log:

Code: Select all

[8204] [DEBUG] [GameLoginWindow::~GameLoginWindow] destructor
[8204] [DEBUG] [LobbyWindow::LobbyWindow] constructor
[8204] [DEBUG] [ServerListWindow::~ServerListWindow] destructor
[8204] [ERROR] [ExcHandler] CRITICAL ERROR c0000005 at 00523BF2


When we go into it we will see:

Code: Select all

00523BF2 - 38 9e d8 05 00 00          - cmp [esi+000005d8],bl <-- bug
00523BF8 - 74 31                      - je 00523c2b
00523BFA - ba 60 3c 5a 00             - mov edx,005a3c60 : ["Pushed"]
00523BFF - 38 9e d9 05 00 00          - cmp [esi+000005d9],bl
00523C05 - 75 05                      - jne 00523c0c
00523C07 - ba 54 3c 5a 00             - mov edx,005a3c54 : ["PushedOff"]
00523C0C - 8b c2                      - mov eax,edx
00523C0E - 8d 68 01                   - lea ebp,[eax+01]


It crashes after loading layout. It looks like a bug in this function (FalButton.cpp)

Code: Select all

 void FalagardButton::render()
    {
        ButtonBase* w = (ButtonBase*)d_window;
        const WidgetLookFeel& wlf = getLookNFeel();

        bool norm = false;
        String state;

      if (w->isDisabled()) //exception here !!!
      {
          state = "Disabled";
      }
      else if (w->isPushed())
      {
            state = w->isHovering() ? "Pushed" : "PushedOff";
      }
        else if (w->isHovering())
      {
          state = "Hover";
      }
      else
      {
          state = "Normal";
          norm = true;
      }

        if (!norm && !wlf.isStateImageryPresent(state))
        {
            state = "Normal";
        }

        wlf.getStateImagery(actualStateName(state)).render(*w);
    }


Looks like w == NULL. Am I doing something wrong or it's CEGUI ?
It's trying to operate on ButtonBase* w = (ButtonBase*)d_window which is NULL.