mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-20 19:05:25 +00:00
fix(addressbook): use pool to lower memory usage
This commit is contained in:
@@ -691,7 +691,7 @@
|
||||
else
|
||||
[self appendMissingObjectRef: url
|
||||
toBuffer: buffer];
|
||||
if (count % 10 == 0)
|
||||
if (count > 0 && count % 10 == 0)
|
||||
{
|
||||
RELEASE(pool);
|
||||
pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
@@ -1288,11 +1288,13 @@ groupObjectClasses: (NSArray *) newGroupObjectClasses
|
||||
withCriteria: (NSArray *) criteria
|
||||
inDomain: (NSString *) theDomain
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
NGLdapConnection *ldapConnection;
|
||||
NGLdapEntry *currentEntry;
|
||||
NSEnumerator *entries;
|
||||
NSMutableArray *contacts;
|
||||
EOQualifier *qualifier;
|
||||
unsigned int i;
|
||||
|
||||
contacts = [NSMutableArray array];
|
||||
|
||||
@@ -1313,9 +1315,21 @@ groupObjectClasses: (NSArray *) newGroupObjectClasses
|
||||
entries = [ldapConnection deepSearchAtBaseDN: _baseDN
|
||||
qualifier: qualifier
|
||||
attributes: _lookupFields];
|
||||
|
||||
i = 0;
|
||||
pool = [NSAutoreleasePool new];
|
||||
while ((currentEntry = [entries nextObject]))
|
||||
[contacts addObject:
|
||||
[self _convertLDAPEntryToContact: currentEntry]];
|
||||
{
|
||||
[contacts addObject:
|
||||
[self _convertLDAPEntryToContact: currentEntry]];
|
||||
i++;
|
||||
if (i % 10 == 0)
|
||||
{
|
||||
[pool release];
|
||||
pool = [NSAutoreleasePool new];
|
||||
}
|
||||
}
|
||||
[pool release];
|
||||
}
|
||||
|
||||
return contacts;
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import <Foundation/NSAutoreleasePool.h>
|
||||
|
||||
#import <NGExtensions/NSNull+misc.h>
|
||||
#import <NGExtensions/NSObject+Logs.h>
|
||||
|
||||
@@ -1202,6 +1205,7 @@ static Class NSNullK;
|
||||
matching: (NSString *) filter
|
||||
inDomain: (NSString *) domain
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
NSMutableArray *contacts;
|
||||
NSEnumerator *sources;
|
||||
NSString *sourceID;
|
||||
@@ -1211,11 +1215,13 @@ static Class NSNullK;
|
||||
sources = [sourcesList objectEnumerator];
|
||||
while ((sourceID = [sources nextObject]))
|
||||
{
|
||||
pool = [[NSAutoreleasePool alloc] init];
|
||||
currentSource = [_sources objectForKey: sourceID];
|
||||
[contacts addObjectsFromArray:
|
||||
[currentSource fetchContactsMatching: filter
|
||||
withCriteria: nil
|
||||
inDomain: domain]];
|
||||
RELEASE(pool);
|
||||
}
|
||||
|
||||
return [self _compactAndCompleteContacts: [contacts objectEnumerator]];
|
||||
|
||||
Reference in New Issue
Block a user