From 09e6fcc3ff2021b1a9a4a2d99e8a4a852f8c5c93 Mon Sep 17 00:00:00 2001 From: Kamen Mazdrashki Date: Thu, 20 Mar 2014 14:24:58 +0100 Subject: [PATCH] oc-sogo: try/catch to guard only the actual impelementation rather than *everything* Signed-off-by: Kamen Mazdrashki --- OpenChange/MAPIStoreSOGo.m | 237 +++++++++++++++++++++++-------------- 1 file changed, 149 insertions(+), 88 deletions(-) diff --git a/OpenChange/MAPIStoreSOGo.m b/OpenChange/MAPIStoreSOGo.m index 97d1d7d7c..3ff960714 100644 --- a/OpenChange/MAPIStoreSOGo.m +++ b/OpenChange/MAPIStoreSOGo.m @@ -176,7 +176,6 @@ sogo_backend_create_context(TALLOC_CTX *mem_ctx, struct indexing_context *indexing, const char *uri, void **context_object) { - TRYCATCH_START NSAutoreleasePool *pool; MAPIStoreContext *context; int rc; @@ -188,12 +187,14 @@ sogo_backend_create_context(TALLOC_CTX *mem_ctx, if (MAPIStoreContextK) { + TRYCATCH_START rc = [MAPIStoreContextK openContext: &context withURI: uri connectionInfo: conn_info andTDBIndexing: indexing]; if (rc == MAPISTORE_SUCCESS) *context_object = [context tallocWrapper: mem_ctx]; + TRYCATCH_END } else rc = MAPISTORE_ERROR; @@ -202,7 +203,6 @@ sogo_backend_create_context(TALLOC_CTX *mem_ctx, GSUnregisterCurrentThread (); return rc; - TRYCATCH_END } static enum mapistore_error @@ -212,7 +212,6 @@ sogo_backend_create_root_folder (const char *username, // struct indexing_context *indexing, TALLOC_CTX *mem_ctx, char **mapistore_urip) { - TRYCATCH_START NSAutoreleasePool *pool; NSString *userName, *folderName; NSString *mapistoreUri; @@ -225,6 +224,7 @@ sogo_backend_create_root_folder (const char *username, if (MAPIStoreContextK) { + TRYCATCH_START userName = [NSString stringWithUTF8String: username]; folderName = [NSString stringWithUTF8String: name]; rc = [MAPIStoreContextK createRootFolder: &mapistoreUri @@ -234,6 +234,7 @@ sogo_backend_create_root_folder (const char *username, withRole: role]; if (rc == MAPISTORE_SUCCESS) *mapistore_urip = [mapistoreUri asUnicodeInMemCtx: mem_ctx]; + TRYCATCH_END } else rc = MAPISTORE_ERROR; @@ -242,7 +243,6 @@ sogo_backend_create_root_folder (const char *username, GSUnregisterCurrentThread (); return rc; - TRYCATCH_END } static enum mapistore_error @@ -250,7 +250,6 @@ sogo_backend_list_contexts(const char *username, struct indexing_context *indexi TALLOC_CTX *mem_ctx, struct mapistore_contexts_list **contexts_listp) { - TRYCATCH_START NSAutoreleasePool *pool; NSString *userName; int rc; @@ -262,11 +261,13 @@ sogo_backend_list_contexts(const char *username, struct indexing_context *indexi if (MAPIStoreContextK) { + TRYCATCH_START userName = [NSString stringWithUTF8String: username]; *contexts_listp = [MAPIStoreContextK listAllContextsForUser: userName withIndexing: indexing inMemCtx: mem_ctx]; rc = MAPISTORE_SUCCESS; + TRYCATCH_END } else rc = MAPISTORE_ERROR; @@ -275,7 +276,6 @@ sogo_backend_list_contexts(const char *username, struct indexing_context *indexi GSUnregisterCurrentThread (); return rc; - TRYCATCH_END } // andFID: fid @@ -297,7 +297,6 @@ static enum mapistore_error sogo_context_get_path(void *backend_object, TALLOC_CTX *mem_ctx, uint64_t fmid, char **path) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreContext *context; @@ -311,7 +310,11 @@ sogo_context_get_path(void *backend_object, TALLOC_CTX *mem_ctx, context = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [context getPath: path ofFMID: fmid inMemCtx: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -321,14 +324,12 @@ sogo_context_get_path(void *backend_object, TALLOC_CTX *mem_ctx, } return rc; - TRYCATCH_END } static enum mapistore_error sogo_context_get_root_folder(void *backend_object, TALLOC_CTX *mem_ctx, uint64_t fid, void **folder_object) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreContext *context; @@ -343,9 +344,13 @@ sogo_context_get_root_folder(void *backend_object, TALLOC_CTX *mem_ctx, context = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [context getRootFolder: &folder withFID: fid]; if (rc == MAPISTORE_SUCCESS) *folder_object = [folder tallocWrapper: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -355,7 +360,6 @@ sogo_context_get_root_folder(void *backend_object, TALLOC_CTX *mem_ctx, } return rc; - TRYCATCH_END } /** @@ -370,7 +374,6 @@ sogo_context_get_root_folder(void *backend_object, TALLOC_CTX *mem_ctx, static enum mapistore_error sogo_folder_open_folder(void *folder_object, TALLOC_CTX *mem_ctx, uint64_t fid, void **childfolder_object) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreFolder *folder, *childFolder; @@ -384,10 +387,14 @@ sogo_folder_open_folder(void *folder_object, TALLOC_CTX *mem_ctx, uint64_t fid, folder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [folder openFolder: &childFolder withFID: fid]; if (rc == MAPISTORE_SUCCESS) *childfolder_object = [childFolder tallocWrapper: mem_ctx]; // [context tearDownRequest]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -397,7 +404,6 @@ sogo_folder_open_folder(void *folder_object, TALLOC_CTX *mem_ctx, uint64_t fid, } return rc; - TRYCATCH_END } /** @@ -412,7 +418,6 @@ sogo_folder_create_folder(void *folder_object, TALLOC_CTX *mem_ctx, uint64_t fid, struct SRow *aRow, void **childfolder_object) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreFolder *folder, *childFolder; @@ -426,9 +431,13 @@ sogo_folder_create_folder(void *folder_object, TALLOC_CTX *mem_ctx, folder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [folder createFolder: &childFolder withRow: aRow andFID: fid]; if (rc == MAPISTORE_SUCCESS) *childfolder_object = [childFolder tallocWrapper: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -438,7 +447,6 @@ sogo_folder_create_folder(void *folder_object, TALLOC_CTX *mem_ctx, } return rc; - TRYCATCH_END } /** @@ -453,7 +461,6 @@ sogo_folder_create_folder(void *folder_object, TALLOC_CTX *mem_ctx, static enum mapistore_error sogo_folder_delete(void *folder_object) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreFolder *folder; @@ -467,7 +474,11 @@ sogo_folder_delete(void *folder_object) folder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [folder deleteFolder]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -477,13 +488,11 @@ sogo_folder_delete(void *folder_object) } return rc; - TRYCATCH_END } static enum mapistore_error sogo_folder_get_child_count(void *folder_object, enum mapistore_table_type table_type, uint32_t *child_count) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreFolder *folder; @@ -497,7 +506,11 @@ sogo_folder_get_child_count(void *folder_object, enum mapistore_table_type table folder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [folder getChildCount: child_count ofTableType: table_type]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -507,7 +520,6 @@ sogo_folder_get_child_count(void *folder_object, enum mapistore_table_type table } return rc; - TRYCATCH_END } static enum mapistore_error @@ -516,7 +528,6 @@ sogo_folder_open_message(void *folder_object, uint64_t mid, bool write_access, void **message_object) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreFolder *folder; @@ -531,12 +542,16 @@ sogo_folder_open_message(void *folder_object, folder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [folder openMessage: &message withMID: mid forWriting: write_access inMemCtx: mem_ctx]; if (rc == MAPISTORE_SUCCESS) *message_object = [message tallocWrapper: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -546,7 +561,6 @@ sogo_folder_open_message(void *folder_object, } return rc; - TRYCATCH_END } static enum mapistore_error @@ -556,7 +570,6 @@ sogo_folder_create_message(void *folder_object, uint8_t associated, void **message_object) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreFolder *folder; @@ -571,11 +584,15 @@ sogo_folder_create_message(void *folder_object, folder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [folder createMessage: &message withMID: mid isAssociated: associated]; if (rc == MAPISTORE_SUCCESS) *message_object = [message tallocWrapper: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -585,13 +602,11 @@ sogo_folder_create_message(void *folder_object, } return rc; - TRYCATCH_END } static enum mapistore_error sogo_folder_delete_message(void *folder_object, uint64_t mid, uint8_t flags) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreFolder *folder; @@ -605,7 +620,11 @@ sogo_folder_delete_message(void *folder_object, uint64_t mid, uint8_t flags) folder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [folder deleteMessageWithMID: mid andFlags: flags]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -615,7 +634,6 @@ sogo_folder_delete_message(void *folder_object, uint64_t mid, uint8_t flags) } return rc; - TRYCATCH_END } static enum mapistore_error @@ -627,7 +645,6 @@ sogo_folder_move_copy_messages(void *folder_object, struct Binary_r **target_change_keys, uint8_t want_copy) { - TRYCATCH_START MAPIStoreFolder *sourceFolder, *targetFolder; NSAutoreleasePool *pool; struct MAPIStoreTallocWrapper *wrapper; @@ -645,6 +662,8 @@ sogo_folder_move_copy_messages(void *folder_object, GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [targetFolder moveCopyMessagesWithMIDs: src_mids andCount: mid_count fromFolder: sourceFolder @@ -652,6 +671,8 @@ sogo_folder_move_copy_messages(void *folder_object, andChangeKeys: target_change_keys wantCopy: want_copy inMemCtx: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -661,14 +682,12 @@ sogo_folder_move_copy_messages(void *folder_object, } return rc; - TRYCATCH_END } static enum mapistore_error sogo_folder_move_folder(void *folder_object, void *target_folder_object, TALLOC_CTX *mem_ctx, const char *new_folder_name) { - TRYCATCH_START NSAutoreleasePool *pool; MAPIStoreFolder *moveFolder, *targetFolder; NSString *newFolderName; @@ -696,11 +715,13 @@ sogo_folder_move_folder(void *folder_object, void *target_folder_object, else newFolderName = nil; + TRYCATCH_START rc = [moveFolder moveCopyToFolder: targetFolder withNewName: newFolderName isMove: YES isRecursive: YES inMemCtx: mem_ctx]; + TRYCATCH_END [pool release]; GSUnregisterCurrentThread (); @@ -711,14 +732,12 @@ sogo_folder_move_folder(void *folder_object, void *target_folder_object, } return rc; - TRYCATCH_END } static enum mapistore_error sogo_folder_copy_folder(void *folder_object, void *target_folder_object, TALLOC_CTX *mem_ctx, bool recursive, const char *new_folder_name) { - TRYCATCH_START NSAutoreleasePool *pool; MAPIStoreFolder *copyFolder, *targetFolder; NSString *newFolderName; @@ -740,12 +759,14 @@ sogo_folder_copy_folder(void *folder_object, void *target_folder_object, TALLOC_ newFolderName = [NSString stringWithUTF8String: new_folder_name]; + TRYCATCH_START rc = [copyFolder moveCopyToFolder: targetFolder withNewName: newFolderName isMove: NO isRecursive: recursive inMemCtx: mem_ctx]; - + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -755,7 +776,6 @@ sogo_folder_copy_folder(void *folder_object, void *target_folder_object, TALLOC_ } return rc; - TRYCATCH_END } static enum mapistore_error @@ -763,7 +783,6 @@ sogo_folder_get_deleted_fmids(void *folder_object, TALLOC_CTX *mem_ctx, enum mapistore_table_type table_type, uint64_t change_num, struct UI8Array_r **fmidsp, uint64_t *cnp) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreFolder *folder; @@ -777,11 +796,15 @@ sogo_folder_get_deleted_fmids(void *folder_object, TALLOC_CTX *mem_ctx, folder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [folder getDeletedFMIDs: fmidsp andCN: cnp fromChangeNumber: change_num inTableType: table_type inMemCtx: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -791,7 +814,6 @@ sogo_folder_get_deleted_fmids(void *folder_object, TALLOC_CTX *mem_ctx, } return rc; - TRYCATCH_END } static enum mapistore_error @@ -799,7 +821,6 @@ sogo_folder_open_table(void *folder_object, TALLOC_CTX *mem_ctx, enum mapistore_table_type table_type, uint32_t handle_id, void **table_object, uint32_t *row_count) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreFolder *folder; @@ -814,12 +835,16 @@ sogo_folder_open_table(void *folder_object, TALLOC_CTX *mem_ctx, folder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [folder getTable: &table andRowCount: row_count tableType: table_type andHandleId: handle_id]; if (rc == MAPISTORE_SUCCESS) *table_object = [table tallocWrapper: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -829,7 +854,6 @@ sogo_folder_open_table(void *folder_object, TALLOC_CTX *mem_ctx, } return rc; - TRYCATCH_END } static enum mapistore_error @@ -837,7 +861,6 @@ sogo_folder_modify_permissions(void *folder_object, uint8_t flags, uint16_t pcount, struct PermissionData *permissions) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreFolder *folder; @@ -851,9 +874,13 @@ sogo_folder_modify_permissions(void *folder_object, uint8_t flags, folder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [folder modifyPermissions: permissions withCount: pcount andFlags: flags]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -863,13 +890,11 @@ sogo_folder_modify_permissions(void *folder_object, uint8_t flags, } return rc; - TRYCATCH_END } static enum mapistore_error sogo_folder_preload_message_bodies(void *folder_object, enum mapistore_table_type table_type, const struct UI8Array_r *mids) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreFolder *folder; @@ -883,8 +908,12 @@ sogo_folder_preload_message_bodies(void *folder_object, enum mapistore_table_typ folder = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [folder preloadMessageBodiesWithMIDs: mids ofTableType: table_type]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -894,7 +923,6 @@ sogo_folder_preload_message_bodies(void *folder_object, enum mapistore_table_typ } return rc; - TRYCATCH_END } static enum mapistore_error @@ -902,7 +930,6 @@ sogo_message_get_message_data(void *message_object, TALLOC_CTX *mem_ctx, struct mapistore_message **msg_dataP) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreMessage *message; @@ -916,8 +943,12 @@ sogo_message_get_message_data(void *message_object, message = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START [message getMessageData: msg_dataP inMemCtx: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); rc = MAPISTORE_SUCCESS; @@ -928,13 +959,11 @@ sogo_message_get_message_data(void *message_object, } return rc; - TRYCATCH_END } static enum mapistore_error sogo_message_create_attachment (void *message_object, TALLOC_CTX *mem_ctx, void **attachment_object, uint32_t *aidp) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreMessage *message; @@ -949,10 +978,14 @@ sogo_message_create_attachment (void *message_object, TALLOC_CTX *mem_ctx, void message = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [message createAttachment: &attachment inAID: aidp]; if (rc == MAPISTORE_SUCCESS) *attachment_object = [attachment tallocWrapper: mem_ctx]; // [context tearDownRequest]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -962,14 +995,12 @@ sogo_message_create_attachment (void *message_object, TALLOC_CTX *mem_ctx, void } return rc; - TRYCATCH_END } static enum mapistore_error sogo_message_open_attachment (void *message_object, TALLOC_CTX *mem_ctx, uint32_t aid, void **attachment_object) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreMessage *message; @@ -984,10 +1015,14 @@ sogo_message_open_attachment (void *message_object, TALLOC_CTX *mem_ctx, message = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [message getAttachment: &attachment withAID: aid]; if (rc == MAPISTORE_SUCCESS) *attachment_object = [attachment tallocWrapper: mem_ctx]; // [context tearDownRequest]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -997,13 +1032,11 @@ sogo_message_open_attachment (void *message_object, TALLOC_CTX *mem_ctx, } return rc; - TRYCATCH_END } static enum mapistore_error sogo_message_get_attachment_table (void *message_object, TALLOC_CTX *mem_ctx, void **table_object, uint32_t *row_count) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreMessage *message; @@ -1018,11 +1051,15 @@ sogo_message_get_attachment_table (void *message_object, TALLOC_CTX *mem_ctx, vo message = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [message getAttachmentTable: &table andRowCount: row_count]; if (rc == MAPISTORE_SUCCESS) *table_object = [table tallocWrapper: mem_ctx]; // [context tearDownRequest]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1032,7 +1069,6 @@ sogo_message_get_attachment_table (void *message_object, TALLOC_CTX *mem_ctx, vo } return rc; - TRYCATCH_END } static enum mapistore_error @@ -1041,7 +1077,6 @@ sogo_message_modify_recipients (void *message_object, uint16_t count, struct mapistore_message_recipient *recipients) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreMessage *message; @@ -1055,10 +1090,14 @@ sogo_message_modify_recipients (void *message_object, message = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [message modifyRecipientsWithRecipients: recipients andCount: count andColumns: columns]; // [context tearDownRequest]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1068,13 +1107,11 @@ sogo_message_modify_recipients (void *message_object, } return rc; - TRYCATCH_END } static enum mapistore_error sogo_message_set_read_flag (void *message_object, uint8_t flag) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreMessage *message; @@ -1088,8 +1125,12 @@ sogo_message_set_read_flag (void *message_object, uint8_t flag) message = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [message setReadFlag: flag]; // [context tearDownRequest]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1099,13 +1140,11 @@ sogo_message_set_read_flag (void *message_object, uint8_t flag) } return rc; - TRYCATCH_END } static enum mapistore_error sogo_message_save (void *message_object, TALLOC_CTX *mem_ctx) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreMessage *message; @@ -1119,8 +1158,12 @@ sogo_message_save (void *message_object, TALLOC_CTX *mem_ctx) message = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [message saveMessage: mem_ctx]; // [context tearDownRequest]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1130,13 +1173,11 @@ sogo_message_save (void *message_object, TALLOC_CTX *mem_ctx) } return rc; - TRYCATCH_END } static enum mapistore_error sogo_message_submit (void *message_object, enum SubmitFlags flags) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreMailVolatileMessage *message; @@ -1150,8 +1191,12 @@ sogo_message_submit (void *message_object, enum SubmitFlags flags) message = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [message submitWithFlags: flags]; // [context tearDownRequest]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1161,7 +1206,6 @@ sogo_message_submit (void *message_object, enum SubmitFlags flags) } return rc; - TRYCATCH_END } static enum mapistore_error @@ -1171,7 +1215,6 @@ sogo_message_attachment_open_embedded_message (void *attachment_object, uint64_t *midP, struct mapistore_message **msg) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreAttachment *attachment; @@ -1186,12 +1229,16 @@ sogo_message_attachment_open_embedded_message (void *attachment_object, attachment = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [attachment openEmbeddedMessage: &message withMID: midP withMAPIStoreMsg: msg inMemCtx: mem_ctx]; if (rc == MAPISTORE_SUCCESS) *message_object = [message tallocWrapper: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1201,7 +1248,6 @@ sogo_message_attachment_open_embedded_message (void *attachment_object, } return rc; - TRYCATCH_END } static enum mapistore_error @@ -1210,7 +1256,6 @@ sogo_message_attachment_create_embedded_message (void *attachment_object, void **message_object, struct mapistore_message **msg) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreAttachment *attachment; @@ -1225,18 +1270,15 @@ sogo_message_attachment_create_embedded_message (void *attachment_object, attachment = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; - @try - { + + TRYCATCH_START rc = [attachment createEmbeddedMessage: &message withMAPIStoreMsg: msg inMemCtx: mem_ctx]; if (rc == MAPISTORE_SUCCESS) *message_object = [message tallocWrapper: mem_ctx]; - } - @catch (NSException *e) - { - rc = sogo_backend_handle_objc_exception(e, __FUNCTION__, __LINE__); - } + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1246,13 +1288,11 @@ sogo_message_attachment_create_embedded_message (void *attachment_object, } return rc; - TRYCATCH_END } static enum mapistore_error sogo_table_get_available_properties(void *table_object, TALLOC_CTX *mem_ctx, struct SPropTagArray **propertiesP) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreTable *table; @@ -1266,7 +1306,11 @@ static enum mapistore_error sogo_table_get_available_properties(void *table_obje table = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [table getAvailableProperties: propertiesP inMemCtx: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1276,13 +1320,11 @@ static enum mapistore_error sogo_table_get_available_properties(void *table_obje } return rc; - TRYCATCH_END } static enum mapistore_error sogo_table_set_columns (void *table_object, uint16_t count, enum MAPITAGS *properties) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreTable *table; @@ -1296,8 +1338,12 @@ sogo_table_set_columns (void *table_object, uint16_t count, enum MAPITAGS *prope table = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [table setColumns: properties withCount: count]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1307,13 +1353,11 @@ sogo_table_set_columns (void *table_object, uint16_t count, enum MAPITAGS *prope } return rc; - TRYCATCH_END } static enum mapistore_error sogo_table_set_restrictions (void *table_object, struct mapi_SRestriction *restrictions, uint8_t *table_status) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreTable *table; @@ -1327,10 +1371,14 @@ sogo_table_set_restrictions (void *table_object, struct mapi_SRestriction *restr table = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START [table setRestrictions: restrictions]; //[table cleanupCaches]; rc = MAPISTORE_SUCCESS; *table_status = TBLSTAT_COMPLETE; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1340,13 +1388,11 @@ sogo_table_set_restrictions (void *table_object, struct mapi_SRestriction *restr } return rc; - TRYCATCH_END } static enum mapistore_error sogo_table_set_sort_order (void *table_object, struct SSortOrderSet *sort_order, uint8_t *table_status) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreTable *table; @@ -1360,10 +1406,14 @@ sogo_table_set_sort_order (void *table_object, struct SSortOrderSet *sort_order, table = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START [table setSortOrder: sort_order]; [table cleanupCaches]; rc = MAPISTORE_SUCCESS; *table_status = TBLSTAT_COMPLETE; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1373,7 +1423,6 @@ sogo_table_set_sort_order (void *table_object, struct SSortOrderSet *sort_order, } return rc; - TRYCATCH_END } static enum mapistore_error @@ -1381,7 +1430,6 @@ sogo_table_get_row (void *table_object, TALLOC_CTX *mem_ctx, enum mapistore_query_type query_type, uint32_t row_id, struct mapistore_property_data **data) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreTable *table; @@ -1395,8 +1443,12 @@ sogo_table_get_row (void *table_object, TALLOC_CTX *mem_ctx, table = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [table getRow: data withRowID: row_id andQueryType: query_type inMemCtx: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1406,7 +1458,6 @@ sogo_table_get_row (void *table_object, TALLOC_CTX *mem_ctx, } return rc; - TRYCATCH_END } static enum mapistore_error @@ -1414,7 +1465,6 @@ sogo_table_get_row_count (void *table_object, enum mapistore_query_type query_type, uint32_t *row_countp) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreTable *table; @@ -1428,8 +1478,12 @@ sogo_table_get_row_count (void *table_object, table = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [table getRowCount: row_countp withQueryType: query_type]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1439,13 +1493,11 @@ sogo_table_get_row_count (void *table_object, } return rc; - TRYCATCH_END } static enum mapistore_error sogo_table_handle_destructor (void *table_object, uint32_t handle_id) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreTable *table; @@ -1459,7 +1511,11 @@ sogo_table_handle_destructor (void *table_object, uint32_t handle_id) table = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START [table destroyHandle: handle_id]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); rc = MAPISTORE_SUCCESS; @@ -1470,14 +1526,12 @@ sogo_table_handle_destructor (void *table_object, uint32_t handle_id) } return rc; - TRYCATCH_END } static enum mapistore_error sogo_properties_get_available_properties(void *object, TALLOC_CTX *mem_ctx, struct SPropTagArray **propertiesP) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreObject *propObject; @@ -1491,7 +1545,11 @@ static enum mapistore_error sogo_properties_get_available_properties(void *objec propObject = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [propObject getAvailableProperties: propertiesP inMemCtx: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1501,7 +1559,6 @@ static enum mapistore_error sogo_properties_get_available_properties(void *objec } return rc; - TRYCATCH_END } static enum mapistore_error @@ -1510,7 +1567,6 @@ sogo_properties_get_properties (void *object, uint16_t count, enum MAPITAGS *properties, struct mapistore_property_data *data) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreObject *propObject; @@ -1524,9 +1580,13 @@ sogo_properties_get_properties (void *object, propObject = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [propObject getProperties: data withTags: properties andCount: count inMemCtx: mem_ctx]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1536,13 +1596,11 @@ sogo_properties_get_properties (void *object, } return rc; - TRYCATCH_END } static enum mapistore_error sogo_properties_set_properties (void *object, struct SRow *aRow) { - TRYCATCH_START struct MAPIStoreTallocWrapper *wrapper; NSAutoreleasePool *pool; MAPIStoreObject *propObject; @@ -1556,7 +1614,11 @@ sogo_properties_set_properties (void *object, struct SRow *aRow) propObject = wrapper->instance; GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + + TRYCATCH_START rc = [propObject addPropertiesFromRow: aRow]; + TRYCATCH_END + [pool release]; GSUnregisterCurrentThread (); } @@ -1566,7 +1628,6 @@ sogo_properties_set_properties (void *object, struct SRow *aRow) } return rc; - TRYCATCH_END } static enum mapistore_error @@ -1577,7 +1638,6 @@ sogo_manager_generate_uri (TALLOC_CTX *mem_ctx, const char *rootURI, char **uri) { - TRYCATCH_START NSAutoreleasePool *pool; NSString *partialURLString, *username, *directory; @@ -1590,6 +1650,7 @@ sogo_manager_generate_uri (TALLOC_CTX *mem_ctx, GSRegisterCurrentThread (); pool = [NSAutoreleasePool new]; + TRYCATCH_START // printf("rootURI = %s\n", rootURI); if (rootURI) partialURLString = [NSString stringWithUTF8String: rootURI]; @@ -1609,12 +1670,12 @@ sogo_manager_generate_uri (TALLOC_CTX *mem_ctx, // printf("uri = %s\n", [partialURLString UTF8String]); *uri = talloc_strdup (mem_ctx, [partialURLString UTF8String]); + TRYCATCH_END [pool release]; GSUnregisterCurrentThread (); return MAPISTORE_SUCCESS; - TRYCATCH_END } /**