/** * @since Available in iOS 2.0 and later. */ public static void removeSystemSoundCompletion(int systemSoundID) { removeSystemSoundCompletion0(systemSoundID); synchronized (completionListeners) { completionListeners.remove(systemSoundID); } } /**
private static void setPeerObject(long handle, ObjCObject o) { synchronized (objcBridgeLock) { if (o == null) { peers.remove(handle); } else { peers.put(handle, new ObjCObjectRef(o)); } } }
@Override protected void dispose(boolean finalizing) { CADisplayLink.listeners.remove(getHandle()); super.dispose(finalizing); } /*<methods>*/
@Callback private static void cbReleaseInfo(@Pointer long infoId) { synchronized (infos) { infos.remove(infoId); } } /*<methods>*/
@Callback private static void cbReleaseInfo(@Pointer long infoId) { synchronized (infos) { infos.remove(infoId); } } /*<methods>*/
/** * @throws OSStatusException * @since Available in iOS 5.0 and later. */ public void dispose() throws OSStatusException { OSStatus status = dispose0(); if (OSStatusException.throwIfNecessary(status)) { synchronized (userCallbacks) { userCallbacks.remove(cid); } } } /**
/** * @throws OSStatusException * @since Available in iOS 2.0 and later. */ public void close() throws OSStatusException { OSStatus status = close0(); OSStatusException.throwIfNecessary(status); // Remove parse listener. synchronized (parseListeners) { parseListeners.remove(this.cid); } } /*<methods>*/
@Callback private static void cbFinalize(MTAudioProcessingTap tap) { long storage = tap.getStorage(); Callbacks cb = null; synchronized (callbacks) { cb = callbacks.remove(storage); } cb.finalize(tap); } @Callback
public void unregisterExternalChangeCallback(ExternalChangeCallback callback) { long refconId = 0; synchronized (externalChangeCallbacks) { for (LongMap.Entry<ExternalChangeCallback> entry : externalChangeCallbacks.entries()) { if (entry.value == callback) { refconId = entry.key; externalChangeCallbacks.remove(refconId); break; } } } unregisterExternalChangeCallback(new FunctionPtr(cbExternalChange), refconId); }
private static void removePeerObject(ObjCObject o) { synchronized (objcBridgeLock) { long handle = o.getHandle(); ObjCObjectRef ref = peers.remove(handle); ObjCObject p = ref != null ? ref.get() : null; if (p != null && o != p) { // Not the same peer. Put it back. peers.put(handle, new ObjCObjectRef(p)); } } }
@TypeEncoding("v@:@:^v") @Method(selector = "video:didFinishSavingWithError:contextInfo:") private void didFinishSaving(String videoPath, NSError error, @Pointer long contextInfo) { callback.invoke(videoPath, error); synchronized (callbacks) { callbacks.remove(contextInfo); } } }
@TypeEncoding("v@:@:^v") @Method(selector = "image:didFinishSavingWithError:contextInfo:") private void didFinishSaving(UIImage image, NSError error, @Pointer long contextInfo) { callback.invoke(image, error); synchronized (callbacks) { callbacks.remove(contextInfo); } } }
public static void setAssociatedObject(ObjCObject object, Object key, Object value) { synchronized (ASSOCIATED_OBJECTS) { Map<Object, Object> map = ASSOCIATED_OBJECTS.get(object.getHandle()); if (map == null && value == null) { return; } if (map == null) { map = new HashMap<Object, Object>(); enableListener(object.getHandle()); ASSOCIATED_OBJECTS.put(object.getHandle(), map); } if (value != null) { map.put(key, value); } else { map.remove(key); if (map.isEmpty()) { disableListener(object.getHandle()); ASSOCIATED_OBJECTS.remove(object.getHandle()); } } } }
public void setActionListener(OnActionListener action) { this.actionListener = action; Selector sel = null; if (action != null) { sel = getUniqueSelector(); } setAction(sel); synchronized (items) { if (action != null) { items.put(sel.getHandle(), this); } else { items.remove(sel.getHandle()); } } } public OnActionListener getActionListener() {
public void setCompletionListener(CompletionListener listener) { long cid = getCompletionProcUserData(); if (listener == null) { setCompletionProc(null); setCompletionProcUserData(0); if (cid > 0) { synchronized (completionCallbacks) { completionCallbacks.remove(cid); } } } else { if (cid == 0) { cid = callbackId.getAndIncrement(); setCompletionProcUserData(cid); setCompletionProc(new FunctionPtr(cbComplete)); } synchronized (completionCallbacks) { completionCallbacks.put(cid, listener); } } } /*<members>*/
public void setCompletionListener(CompletionListener listener) { long cid = getCompletionProcUserData(); if (listener == null) { setCompletionProc(null); setCompletionProcUserData(0); if (cid > 0) { synchronized (completionCallbacks) { completionCallbacks.remove(cid); } } } else { if (cid == 0) { cid = callbackId.getAndIncrement(); setCompletionProcUserData(cid); setCompletionProc(new FunctionPtr(cbComplete)); } synchronized (completionCallbacks) { completionCallbacks.put(cid, listener); } } } /*<members>*/
/** * @throws OSStatusException * @since Available in iOS 5.0 and later. */ public void setUserCallback(UserCallback callback) throws OSStatusException { if (callback == null) { synchronized (userCallbacks) { userCallbacks.remove(cid); } OSStatus status = setUserCallback0(null, cid); OSStatusException.throwIfNecessary(status); } else { OSStatus status = setUserCallback0(new FunctionPtr(cbUser), cid); if (OSStatusException.throwIfNecessary(status)) { synchronized (userCallbacks) { userCallbacks.put(cid, callback); } } } } /**
public void setMIDICallbacks(AUOutputMIDICallback callback, AUScope scope) throws OSStatusException { AUOutputMIDICallbacksStruct struct = null; if (callback == null) { struct = getProperty(AUOutputProperty.MIDICallbacks, AUOutputMIDICallbacksStruct.class, scope); if (struct != null) { setProperty(AUOutputProperty.MIDICallbacks, null, scope); synchronized (midiCallbacks) { midiCallbacks.remove(struct.getUserData()); } } } else { long cid = callbackId.getAndIncrement(); struct = new AUOutputMIDICallbacksStruct(cid, new FunctionPtr(cbMIDIEvent), new FunctionPtr(cbMIDISysEx)); setProperty(AUOutputProperty.MIDICallbacks, struct, scope); synchronized (midiCallbacks) { midiCallbacks.put(cid, callback); } } } /* End: Convenience methods for getting/setting properties */
@Callback private static void release(@Pointer long self, @Pointer long sel) { int count = ObjCRuntime.int_objc_msgSend(self, retainCount); if (count <= 2) { synchronized (CUSTOM_OBJECTS) { CUSTOM_OBJECTS.remove(self); } } long cls = ObjCRuntime.object_getClass(self); if (logRetainRelease) { logRetainRelease(cls, self, count, false); } Super sup = new Super(self, getNativeSuper(cls)); ObjCRuntime.void_objc_msgSendSuper(sup.getHandle(), sel); }
@Callback static void release(@Pointer long self, @Pointer long sel) { int count = ObjCRuntime.int_objc_msgSend(self, retainCount.getHandle()); if (count == 1) { long owner = VM.getPointer(self + OWNER_IVAR_OFFSET); synchronized (ASSOCIATED_OBJECTS) { ASSOCIATED_OBJECTS.remove(owner); } } if(logRetainRelease) { long cls = ObjCRuntime.object_getClass(self); logRetainRelease(cls, self, count, false); } ObjCRuntime.void_objc_msgSendSuper(new Super(self, NS_OBJECT_CLASS).getHandle(), sel); } }