1
2
3
4
5
6
7
8
9
|
/*
* Copyright (c) 2012, 2019, Jonathan Schleifer <js@webkeks.org>
*
* https://heap.zone/objxmpp/
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice is present in all copies.
*
|
|
|
1
2
3
4
5
6
7
8
9
|
/*
* Copyright (c) 2012, 2019, 2021, Jonathan Schleifer <js@nil.im>
*
* https://heap.zone/objxmpp/
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice is present in all copies.
*
|
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
continue;
[_delegates removeItemAtIndex: i];
return;
}
}
- (bool)broadcastSelector: (SEL)selector
withObject: (id)object
{
void *pool = objc_autoreleasePoolPush();
OFMutableData *currentDelegates = [[_delegates copy] autorelease];
id const *items = currentDelegates.items;
size_t i, count = currentDelegates.count;
bool handled = false;
|
|
<
|
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
continue;
[_delegates removeItemAtIndex: i];
return;
}
}
- (bool)broadcastSelector: (SEL)selector withObject: (id)object
{
void *pool = objc_autoreleasePoolPush();
OFMutableData *currentDelegates = [[_delegates copy] autorelease];
id const *items = currentDelegates.items;
size_t i, count = currentDelegates.count;
bool handled = false;
|