349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
|
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
|
-
+
-
-
+
+
|
}
} else
[_dataStorage setDictionary: nil
forPath: @"roster.items"];
}
for (OFXMLElement *element in [rosterElement children]) {
OFAutoreleasePool *pool;
void *pool = objc_autoreleasePoolPush();
XMPPRosterItem *rosterItem;
if (![[element name] isEqual: @"item"] ||
![[element namespace] isEqual: XMPP_NS_ROSTER])
continue;
pool = [[OFAutoreleasePool alloc] init];
rosterItem = [self XMPP_rosterItemWithXMLElement: element];
[self XMPP_updateRosterItem: rosterItem];
[pool release];
objc_autoreleasePoolPop(pool);
}
if ([connection supportsRosterVersioning] && rosterElement != nil) {
OFString *ver =
[[rosterElement attributeForName: @"ver"] stringValue];
[_dataStorage setStringValue: ver
forPath: @"roster.ver"];
|