Review request for MACOSX_PORT-176: AWT Splashscreen support

Eric Richardson ekrichardson at gmail.com
Fri Dec 9 12:35:14 PST 2011


Hi Anthony,

Not an expert or anything - just taking a peek - looks pretty clean. Found
one comment that seems to need rewording.

490 #ifdef MACOSX
 491     // if we got here, we know that "what" is a main class, and it has
been loaded
 492     SetMainClassForAWT(env, mainClass);
 493     jvmInstance = vm;
 494     ShowSplashScreen();
 495 #endif

Eric

On Fri, Dec 9, 2011 at 7:13 AM, Anthony Petrov <anthony.petrov at oracle.com>wrote:

> Hi Mike et al.,
>
> Here's the final version of the fix:
>
> http://cr.openjdk.java.net/~**anthony/x-3-**splashAndOSXGUILib.1/<http://cr.openjdk.java.net/%7Eanthony/x-3-splashAndOSXGUILib.1/>
>
> To summarize essential changes introduced with the fix:
>
> 1. The NSApplicationAWT code has been moved to a separate library
> libosxapp.dylib so that it be available from both AWT and splash screen
> code.
>
> 2. The QueuingApplicationDelegate class allows us to postpone creating the
> real ApplicationDelegate instance later when AWT has finally started up.
> All the events delivered to the QAD will be posted to the real delegate
> once it's installed.
>
> 3. On the Mac the SplashScreen is initialized only after the JVM has been
> started and the main application class has been identified, but, obviously,
> before calling user's main() method. This is because we need the main class
> name to set the app's name in the dock, as well as we need to access a
> couple of Java system properties when an NSApplicationAWT instance is
> created. java.c and java_md.c contain the corresponding changes.
>
> 4. The splash screen code now uses blocks and [JNFRunLoop
> performOnMainThreadWaiting] method instead of the AppKitThreadHelper
> utility class.
>
> I'm going to push this fix early next week. Thanks in advance for any
> additional reviews!
>
> --
> best regards,
> Anthony
>


More information about the macosx-port-dev mailing list