diff options
author | Sven Gothel <[email protected]> | 2013-01-18 03:38:35 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2013-01-18 03:38:35 +0100 |
commit | 34687193484b2404d83eebf5d008b71d54e52286 (patch) | |
tree | 5e8d58b86a586f66cf18e281775d8bc6f91d200d /src/jogl/native/timespec.c | |
parent | 896a0821b78c9aadf38e0d881922e03849584984 (diff) |
Fix Bug 669: Recursive GLContext makeCurrent()/release()
Culprit:
GLContext's makeCurrent() didn't clear the boolean flag 'unlockContextAndSurface'
in case the context is already current (-> recursion).
Above case was detected within a code block tailed by a finally block,
which acted on mentioned flag, i.e. called lock.unlock() and hence decremented the lock count
even though the method return w/ successful state.
Fixed.
Added debug code:
GLContext.release() debug code (DEBUG | TRACE_SWITCH),
recording stack trace of last release() call, which is dumped in case no current was current.
Added 2 unit tests:
- Simple recursive GLContext makeCurrent()/release() from within GLEventListener's display().
Test also validates lock count and lock ownership.
- GLAutoDrawable display() of another GLAutoDrawable
from within GLEventListener's display(..).
Diffstat (limited to 'src/jogl/native/timespec.c')
0 files changed, 0 insertions, 0 deletions