Summary: | Jogl 2.1.2-rc-20131031 crash on OSX when closing NEWT window | ||
---|---|---|---|
Product: | [JogAmp] Jogl | Reporter: | johan |
Component: | macosx | Assignee: | Sven Gothel <sgothel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | sgothel |
Priority: | --- | ||
Version: | 2 | ||
Hardware: | pc_x86_64 | ||
OS: | macosx | ||
Type: | --- | SCM Refs: |
cc57413180edc4e5102f6729ccca6c4695d93e42
85878162940067b39b17c71878446dff0759040d
|
Workaround: | --- | ||
Attachments: | crash log |
Thank you! Re-dir to Bug 883, which I filed as well w/ more details :) *** This bug has been marked as a duplicate of bug 883 *** *** Bug 883 has been marked as a duplicate of this bug. *** ok .. not stealing your credentials :) reproduced LoL, since you fix the bugs you can have all the credentials :-) - Check JavaVM and JNIEnv handles before usage in NewtMacWindow (Not the culprit .. but more safe) - Release NewtMacWindow manually in close0() - Mark [NewtMacWindow setReleasedWhenClosed: NO] in init0(..) - Release NewtMacWindow manually in close0(..) - Check pointer args in close0(..) All unit tests passes on OSX 10.9, but the 'ususal suspect' (2 failed focus issues) |
Created attachment 532 [details] crash log The following will show a NEWT-window on OSX 10.9, JDK 1.7_u40. But when closing the window there is a crash in native code. public static void main(String[] args) { final GLCapabilities caps = new GLCapabilities(GLProfile.get(GLProfile.GL4)); caps.setBackgroundOpaque(true); caps.setDoubleBuffered(true); caps.setDepthBits(16); GLWindow glWindow = GLWindow.create(caps); glWindow.addGLEventListener(new GLEventListener() { @Override public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) { } @Override public void init(GLAutoDrawable drawable) { System.out.println("init: " + drawable); } @Override public void dispose(GLAutoDrawable drawable) { System.out.println("dispose: " + drawable); } @Override public void display(GLAutoDrawable drawable) { } }); glWindow.setTitle("Test"); glWindow.setSize(1024, 768); glWindow.setUndecorated(false); glWindow.setPointerVisible(true); glWindow.setVisible(true); glWindow.setFullscreen(false); glWindow.setDefaultCloseOperation(WindowClosingProtocol.WindowClosingMode.DISPOSE_ON_CLOSE); Animator animator = new Animator(glWindow); animator.start(); }