summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2012-06-01 05:31:53 +0000
committerJay Freeman (saurik) <saurik@saurik.com>2012-06-01 05:31:53 +0000
commit37e55bd3ab15f915e0b7860ded1b6f6e5aefd249 (patch)
treebfb728838ee547917e9f0d78a686e9d7efe3bc0e
parent0183260a5f128e3a0a5331ce89f7e88aa79feb2e (diff)
Separate unregisters/register, don't interleave.
-rw-r--r--uicache.mm11
1 files changed, 9 insertions, 2 deletions
diff --git a/uicache.mm b/uicache.mm
index 28c518d..91609b7 100644
--- a/uicache.mm
+++ b/uicache.mm
@@ -116,14 +116,21 @@ int main(int argc, const char *argv[]) {
[cache writeToFile:path atomically:YES];
- if (workspace != nil)
- for (NSString *bundle in bundles) {
+ if (workspace != nil) {
+ for (NSString *identifier in bundles) {
NSString *path([bundles objectForKey:identifier]);
[workspace unregisterApplication:[NSURL fileURLWithPath:path]];
+ }
+
+ for (NSString *identifier in bundles)
if ([workspace respondsToSelector:@selector(invalidateIconCache:)])
[workspace invalidateIconCache:identifier];
+
+ for (NSString *identifier in bundles) {
+ NSString *path([bundles objectForKey:identifier]);
[workspace registerApplication:[NSURL fileURLWithPath:path]];
}
+ }
if (false) error:
fprintf(stderr, "%s\n", error == nil ? strerror(errno) : [[error localizedDescription] UTF8String]);