[Bf-committers] I found a GHOSTBuster ;)

Jürgen Herrmann shadowrom at me.com
Sun Apr 28 20:15:38 CEST 2013


Hi Campbell, 

it was quite hard to find because there were multiple exceptions on different points in the message loop.
One was here:

void GHOST_WindowWin32::bringTabletContextToFront()
{
->>	if (m_wintab) {
.
.
.

This had tob e fixed by making m_wintab static.

Another one was here:
LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
...

			if (LOWORD(lParam) == HTCLIENT) {
					// Load the current cursor
-->					window->loadCursor(window->getCursorVisibility(), window->getCursorShape());
...

And so on

This was the point where i took a closer look at the window* at the beginning of s_wndProc

It was:
GHOST_WindowWin32 *window = (GHOST_WindowWin32 *)::GetWindowLong(hwnd, GWL_USERDATA);

I changed it to:
GHOST_WindowWin32 *window = (GHOST_WindowWin32 *)::GetWindowLongPtr(hwnd, GWL_USERDATA);

I'll provide a patch on patchtracker for this ;)

- Jürgen
-----Ursprüngliche Nachricht-----
Von: bf-committers-bounces at blender.org [mailto:bf-committers-bounces at blender.org] Im Auftrag von Campbell Barton
Gesendet: Sonntag, 28. April 2013 20:01
An: bf-blender developers
Betreff: Re: [Bf-committers] I found a GHOSTBuster ;)

On Mon, Apr 29, 2013 at 3:46 AM, Jürgen Herrmann <shadowrom at me.com> wrote:
> I finally found the crashing factor in GHOST Win32 on Win8.
> It was a nasty GetWindowLong that should have been a GetWindowLongPtr.
>
> I tested the change in MSVC 2008, 2010 and 2012. Everything seems to work fine and smooth.
>
> I'll upload 3 test builds and the patch to my site. This could take a while due to a slow Internet connection.
>
> Now I'll focus on fixing OpenCOLLADA and libmv compilation. Maybe I'll find time to build cuda binaries with 2012 too, this guide looks promising:
>
> http://blog.norture.com/2012/10/gpu-parallel-programming-in-vs2012-wit
> h-nvidia-cuda/
>
> If someone wants to try: http://shadowrom.de
>
> Jürgen

Good to hear you found the problem,
Sounds like this fix should be applied to trunk too?, could you make a patch available?

Out of curiosity what made this problem so hard to track down?

--
- Campbell
_______________________________________________
Bf-committers mailing list
Bf-committers at blender.org
http://lists.blender.org/mailman/listinfo/bf-committers



More information about the Bf-committers mailing list