Monotone-Parent: 56370c6160c963011c084c7793dbe96aef748e92

Monotone-Revision: 3a115c300e05230d3e0392a7aa86ccee296f50cc

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2011-11-22T19:43:46
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2011-11-22 19:43:46 +00:00
parent bbc52412ef
commit 5c7d7aa062
4 changed files with 27 additions and 0 deletions

View File

@ -2,6 +2,7 @@
* OpenChange/NSArray+MAPIStore.m (-asMVUnicodeInMemCtx:) renamed
from "asArrayOfUnicodeStringsInCtx".
(-asMVUnicodeInMemCtx:): new conversion method.
* OpenChange/MAPIStoreTypes.m (NSObjectFromValuePointer):
simplified method by using set_SPropValue_proptag and

View File

@ -41,6 +41,7 @@
+ (id) arrayFromMVUnicode: (const struct WStringArray_r *) mvUnicode;
- (struct WStringArray_r *) asMVUnicodeInMemCtx: (void *) memCtx;
+ (id) arrayFromMVBinary: (const struct BinaryArray_r *) mvBinary;
- (struct BinaryArray_r *) asMVBinaryInMemCtx: (void *) memCtx;
+ (id) arrayFromMVGuid: (const struct FlatUIDArray_r *) mvGuid;
+ (id) arrayFromMVFileTime: (const struct DateTimeArray_r *) mvGuid;

View File

@ -230,6 +230,28 @@
return mvResult;
}
- (struct BinaryArray_r *) asMVBinaryInMemCtx: (void *) memCtx
{
struct BinaryArray_r *list;
NSData *data;
NSInteger count, max;
max = [self count];
list = talloc_zero(memCtx,struct BinaryArray_r);
list->cValues = max;
list->lpbin = talloc_array(list, struct Binary_r, max);
for (count = 0; count < max; count++)
{
data = [self objectAtIndex: count];
list->lpbin[count].cb = [data length];
list->lpbin[count].lpb = talloc_memdup (list->lpbin, [data bytes], list->lpbin[count].cb);
}
return list;
}
+ (id) arrayFromMVGuid: (const struct FlatUIDArray_r *) mvGuid
{
NSUInteger count;

View File

@ -115,6 +115,9 @@ static int MAPIStoreTallocWrapperDestroy (void *data)
case PT_MV_UNICODE:
*data = [(NSArray *) self asMVUnicodeInMemCtx: memCtx];
break;
case PT_MV_BINARY:
*data = [(NSArray *) self asMVBinaryInMemCtx: memCtx];
break;
default:
[self errorWithFormat: @"object type not handled: %d (0x%.4x)",