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