equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. Oracle designates this |
7 * published by the Free Software Foundation. Oracle designates this |
39 fPeer = peer; |
39 fPeer = peer; |
40 } |
40 } |
41 return self; |
41 return self; |
42 } |
42 } |
43 |
43 |
44 -(void) cleanup { |
44 - (void)dealloc { |
45 // Used by subclasses |
|
46 } |
|
47 |
|
48 -(void) disposer { |
|
49 JNIEnv *env = [ThreadUtilities getJNIEnvUncached]; |
45 JNIEnv *env = [ThreadUtilities getJNIEnvUncached]; |
50 JNFDeleteGlobalRef(env, fPeer); |
46 JNFDeleteGlobalRef(env, fPeer); |
51 fPeer = NULL; |
47 fPeer = NULL; |
52 |
48 |
53 [self cleanup]; |
49 [super dealloc]; |
54 [self release]; |
|
55 } |
50 } |
56 |
|
57 // The method is used by all subclasses, since the process of the creation |
|
58 // is the same. The only exception is the CMenuItem class. |
|
59 - (void) _create_OnAppKitThread: (NSMutableArray *)argValue { |
|
60 jobject cPeerObjGlobal = (jobject)[[argValue objectAtIndex: 0] pointerValue]; |
|
61 CMenuItem *aCMenuItem = [self initWithPeer:cPeerObjGlobal]; |
|
62 [argValue removeAllObjects]; |
|
63 [argValue addObject: aCMenuItem]; |
|
64 } |
|
65 |
|
66 @end |
51 @end |
67 |
|
68 /* |
|
69 * Class: sun_lwawt_macosx_CMenuComponent |
|
70 * Method: nativeDispose |
|
71 * Signature: (J)V |
|
72 */ |
|
73 JNIEXPORT void JNICALL |
|
74 Java_sun_lwawt_macosx_CMenuComponent_nativeDispose |
|
75 (JNIEnv *env, jobject peer, jlong menuItemObj) |
|
76 { |
|
77 JNF_COCOA_ENTER(env); |
|
78 |
|
79 [ThreadUtilities performOnMainThread:@selector(disposer) |
|
80 on:((id)jlong_to_ptr(menuItemObj)) |
|
81 withObject:nil |
|
82 waitUntilDone:NO]; |
|
83 |
|
84 JNF_COCOA_EXIT(env); |
|
85 } |
|