src/macosx/native/sun/awt/CMenuBar.m
Print this page
*** 378,412 ****
* Class: sun_lwawt_macosx_CMenuBar
* Method: nativeCreateMenuBar
* Signature: ()J
*/
JNIEXPORT jlong JNICALL
! Java_sun_lwawt_macosx_CMenuBar_nativeCreateMenuBar
! (JNIEnv *env, jobject peer)
{
! CMenuBar *aCMenuBar = nil;
! JNF_COCOA_ENTER(env);
!
! jobject cPeerObjGlobal = (*env)->NewGlobalRef(env, peer);
!
! // We use an array here only to be able to get a return value
! NSMutableArray *args = [[NSMutableArray alloc] initWithObjects:[NSValue valueWithBytes:&cPeerObjGlobal objCType:@encode(jobject)], nil];
!
! [ThreadUtilities performOnMainThread:@selector(_create_OnAppKitThread:) on:[CMenuBar alloc] withObject:args waitUntilDone:YES];
! aCMenuBar = (CMenuBar *)[args objectAtIndex: 0];
! if (aCMenuBar == nil) {
! return 0L;
! }
!
! // [args release];
!
! // A strange memory managment after that.
- JNF_COCOA_EXIT(env);
return ptr_to_jlong(aCMenuBar);
}
/*
* Class: sun_lwawt_macosx_CMenuBar
--- 378,400 ----
* Class: sun_lwawt_macosx_CMenuBar
* Method: nativeCreateMenuBar
* Signature: ()J
*/
JNIEXPORT jlong JNICALL
! Java_sun_lwawt_macosx_CMenuBar_nativeCreateMenuBar(JNIEnv *env, jobject peer)
{
! __block CMenuBar *aCMenuBar = nil;
! JNF_COCOA_ENTER(env);
! jobject cPeerObjGlobal = (*env)->NewGlobalRef(env, peer);
! [ThreadUtilities performOnMainThreadWaiting:YES block:^() {
! aCMenuBar = [[CMenuBar alloc] initWithPeer:cPeerObjGlobal];
! }];
+ JNF_COCOA_EXIT(env);
return ptr_to_jlong(aCMenuBar);
}
/*
* Class: sun_lwawt_macosx_CMenuBar