summaryrefslogtreecommitdiff
path: root/Cydia.mm
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2009-04-24 21:53:06 +0000
committerJay Freeman (saurik) <saurik@saurik.com>2010-09-30 07:13:14 +0000
commit20cb1497dc6be5c6f6af8fd79a04ec8aed24df48 (patch)
tree7845f14be2db38a1855446c6256e4ebc7e7273c6 /Cydia.mm
parentb62612d455418a28dc51e86290c43e2dda4e6fa5 (diff)
Fixed memory retain issue in _H<> and a crash bug in sources_ (causing nils).
Diffstat (limited to 'Cydia.mm')
-rw-r--r--Cydia.mm10
1 files changed, 8 insertions, 2 deletions
diff --git a/Cydia.mm b/Cydia.mm
index 29c4df3..4966a1b 100644
--- a/Cydia.mm
+++ b/Cydia.mm
@@ -1,5 +1,5 @@
/* Cydia - iPhone UIKit Front-End for Debian APT
- * Copyright (C) 2008 Jay Freeman (saurik)
+ * Copyright (C) 2008-2009 Jay Freeman (saurik)
*/
/*
@@ -216,6 +216,11 @@ class _H {
}
public:
+ _finline _H(const This_ &rhs) :
+ value_(rhs.value_ == nil ? nil : [rhs.value_ retain])
+ {
+ }
+
_finline _H(Type_ *value = NULL, bool mended = false) :
value_(value)
{
@@ -3428,7 +3433,8 @@ static NSArray *Finishes_;
}
- (Source *) getSource:(pkgCache::PkgFileIterator)file {
- return sources_[file->ID];
+ SourceMap::const_iterator i(sources_.find(file->ID));
+ return i == sources_.end() ? nil : i->second;
}
@end