From 7e08733589a278454bd0c16096a68f9eaa1a626b Mon Sep 17 00:00:00 2001 From: "Hoa V. DINH" Date: Mon, 12 Jan 2015 23:18:42 -0800 Subject: Cleanup. Apply autorelease pool properly. --- example/android/AndroidExample/app/app.iml | 1 + .../androidexample/MessageViewListActivity.java | 2 - .../androidexample/MessageViewListFragment.java | 2 - src/java/TypesUtils.h | 33 ++- .../native/com_libmailcore_AbstractMessage.cpp | 25 ++- src/java/native/com_libmailcore_AbstractPart.cpp | 22 +- src/java/native/com_libmailcore_Address.cpp | 50 ++++- src/java/native/com_libmailcore_Attachment.cpp | 35 +++- ...bmailcore_HTMLRendererTemplateCallbackUtils.cpp | 70 +++++-- .../com_libmailcore_IMAPAppendMessageOperation.cpp | 12 +- .../com_libmailcore_IMAPCapabilityOperation.cpp | 5 +- .../com_libmailcore_IMAPCopyMessagesOperation.cpp | 5 +- .../com_libmailcore_IMAPFetchContentOperation.cpp | 9 +- .../com_libmailcore_IMAPFetchFoldersOperation.cpp | 5 +- .../com_libmailcore_IMAPFetchMessagesOperation.cpp | 14 +- ...com_libmailcore_IMAPFetchNamespaceOperation.cpp | 5 +- ...libmailcore_IMAPFetchParsedContentOperation.cpp | 9 +- .../com_libmailcore_IMAPFolderInfoOperation.cpp | 5 +- .../com_libmailcore_IMAPFolderStatusOperation.cpp | 5 +- src/java/native/com_libmailcore_IMAPIdentity.cpp | 14 +- .../com_libmailcore_IMAPIdentityOperation.cpp | 5 +- .../native/com_libmailcore_IMAPIdleOperation.cpp | 2 + src/java/native/com_libmailcore_IMAPMessage.cpp | 17 +- ...m_libmailcore_IMAPMessageRenderingOperation.cpp | 5 +- src/java/native/com_libmailcore_IMAPNamespace.cpp | 40 +++- .../native/com_libmailcore_IMAPNamespaceItem.cpp | 15 +- src/java/native/com_libmailcore_IMAPOperation.cpp | 5 +- src/java/native/com_libmailcore_IMAPPart.cpp | 5 +- .../native/com_libmailcore_IMAPQuotaOperation.cpp | 10 +- .../com_libmailcore_IMAPSearchExpression.cpp | 175 ++++++++++++---- .../native/com_libmailcore_IMAPSearchOperation.cpp | 5 +- src/java/native/com_libmailcore_IMAPSession.cpp | 228 +++++++++++++++++---- src/java/native/com_libmailcore_IndexSet.cpp | 50 ++++- src/java/native/com_libmailcore_MailException.cpp | 5 +- src/java/native/com_libmailcore_MessageBuilder.cpp | 41 +++- src/java/native/com_libmailcore_MessageHeader.cpp | 55 ++++- src/java/native/com_libmailcore_MessageParser.cpp | 28 ++- ...m_libmailcore_NNTPFetchAllArticlesOperation.cpp | 5 +- .../com_libmailcore_NNTPFetchArticleOperation.cpp | 5 +- .../com_libmailcore_NNTPFetchHeaderOperation.cpp | 5 +- .../com_libmailcore_NNTPFetchOverviewOperation.cpp | 5 +- ...om_libmailcore_NNTPFetchServerTimeOperation.cpp | 5 +- ...com_libmailcore_NNTPListNewsgroupsOperation.cpp | 5 +- src/java/native/com_libmailcore_NNTPOperation.cpp | 5 +- src/java/native/com_libmailcore_NNTPSession.cpp | 63 +++++- src/java/native/com_libmailcore_NativeObject.cpp | 22 +- src/java/native/com_libmailcore_Operation.cpp | 9 +- .../com_libmailcore_POPFetchHeaderOperation.cpp | 5 +- .../com_libmailcore_POPFetchMessageOperation.cpp | 5 +- .../com_libmailcore_POPFetchMessagesOperation.cpp | 5 +- src/java/native/com_libmailcore_POPOperation.cpp | 5 +- src/java/native/com_libmailcore_POPSession.cpp | 48 ++++- src/java/native/com_libmailcore_Range.cpp | 40 +++- src/java/native/com_libmailcore_SMTPOperation.cpp | 5 +- src/java/native/com_libmailcore_SMTPSession.cpp | 38 +++- 55 files changed, 1058 insertions(+), 241 deletions(-) diff --git a/example/android/AndroidExample/app/app.iml b/example/android/AndroidExample/app/app.iml index cdd2cdf5..6720fe38 100644 --- a/example/android/AndroidExample/app/app.iml +++ b/example/android/AndroidExample/app/app.iml @@ -79,6 +79,7 @@ + diff --git a/example/android/AndroidExample/app/src/main/java/com/libmailcore/androidexample/MessageViewListActivity.java b/example/android/AndroidExample/app/src/main/java/com/libmailcore/androidexample/MessageViewListActivity.java index e0115a69..4577b594 100644 --- a/example/android/AndroidExample/app/src/main/java/com/libmailcore/androidexample/MessageViewListActivity.java +++ b/example/android/AndroidExample/app/src/main/java/com/libmailcore/androidexample/MessageViewListActivity.java @@ -51,8 +51,6 @@ public class MessageViewListActivity extends Activity .findFragmentById(R.id.messageview_list)) .setActivateOnItemClick(true); } - - // TODO: If exposing deep links into your app, handle intents here. } /** diff --git a/example/android/AndroidExample/app/src/main/java/com/libmailcore/androidexample/MessageViewListFragment.java b/example/android/AndroidExample/app/src/main/java/com/libmailcore/androidexample/MessageViewListFragment.java index b39c51ac..f0ef5174 100644 --- a/example/android/AndroidExample/app/src/main/java/com/libmailcore/androidexample/MessageViewListFragment.java +++ b/example/android/AndroidExample/app/src/main/java/com/libmailcore/androidexample/MessageViewListFragment.java @@ -14,7 +14,6 @@ import com.libmailcore.IMAPFetchMessagesOperation; import com.libmailcore.IMAPMessage; import com.libmailcore.MailException; import com.libmailcore.OperationCallback; -//import com.libmailcore.androidexample.dummy.DummyContent; import com.libmailcore.IndexSet; import com.libmailcore.IMAPMessagesRequestKind; import com.libmailcore.Range; @@ -184,7 +183,6 @@ public class MessageViewListFragment extends ListFragment implements OperationCa android.R.id.text1, array); - // TODO: replace with a real list adapter. setListAdapter(adapter); } diff --git a/src/java/TypesUtils.h b/src/java/TypesUtils.h index 67430c72..c0087a46 100644 --- a/src/java/TypesUtils.h +++ b/src/java/TypesUtils.h @@ -23,52 +23,73 @@ #define MC_JAVA_BRIDGE MC_JAVA_BRIDGE_internal(javaType, nativeType) #define MC_JAVA_CONCAT(a, b) a ## b -//#define prefix MC_JAVA_CONCAT(prefix1, _) -//#define prefix(nativeType) Java_com_libmailcore_ ## nativeType ## _ #define prefixed_function(javaType, function_name) Java_com_libmailcore_ ## javaType ## _ ## function_name +#define MC_POOL_BEGIN AutoreleasePool * __pool = new AutoreleasePool(); +#define MC_POOL_END __pool->release(); + #define MC_JAVA_SYNTHESIZE_internal(type, javaType, setter, getter) \ JNIEXPORT jobject JNICALL prefixed_function(javaType, getter) (JNIEnv * env, jobject obj) \ { \ - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->getter()); \ + MC_POOL_BEGIN; \ + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->getter()); \ + MC_POOL_END; \ + return result; \ } \ \ JNIEXPORT void JNICALL prefixed_function(javaType, setter) (JNIEnv * env, jobject obj, jobject value) \ { \ + MC_POOL_BEGIN; \ MC_JAVA_NATIVE_INSTANCE->setter(MC_FROM_JAVA(type, value)); \ + MC_POOL_END; \ } #define MC_JAVA_SYNTHESIZE_STRING_internal(javaType, setter, getter) \ JNIEXPORT jstring JNICALL prefixed_function(javaType, getter) (JNIEnv * env, jobject obj) \ { \ - return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->getter()); \ + MC_POOL_BEGIN; \ + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->getter()); \ + MC_POOL_END; \ + return (jstring) result; \ } \ \ JNIEXPORT void JNICALL prefixed_function(javaType, setter) (JNIEnv * env, jobject obj, jstring value) \ { \ + MC_POOL_BEGIN; \ MC_JAVA_NATIVE_INSTANCE->setter(MC_FROM_JAVA(String, value)); \ + MC_POOL_END; \ } #define MC_JAVA_SYNTHESIZE_DATA_internal(javaType, setter, getter) \ JNIEXPORT jbyteArray JNICALL prefixed_function(javaType, getter) (JNIEnv * env, jobject obj) \ { \ - return (jbyteArray) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->getter()); \ + MC_POOL_BEGIN; \ + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->getter()); \ + MC_POOL_END; \ + return (jbyteArray) result; \ } \ \ JNIEXPORT void JNICALL prefixed_function(javaType, setter) (JNIEnv * env, jobject obj, jbyteArray value) \ { \ + MC_POOL_BEGIN; \ MC_JAVA_NATIVE_INSTANCE->setter(MC_FROM_JAVA(Data, value)); \ + MC_POOL_END; \ } #define MC_JAVA_SYNTHESIZE_SCALAR_internal(javaScalarType, scalarType, javaType, setter, getter) \ JNIEXPORT javaScalarType JNICALL prefixed_function(javaType, getter) (JNIEnv * env, jobject obj) \ { \ - return (javaScalarType) MC_JAVA_NATIVE_INSTANCE->getter(); \ + MC_POOL_BEGIN; \ + javaScalarType result = (javaScalarType) MC_JAVA_NATIVE_INSTANCE->getter(); \ + MC_POOL_END; \ + return result; \ } \ \ JNIEXPORT void JNICALL prefixed_function(javaType, setter) (JNIEnv * env, jobject obj, javaScalarType value) \ { \ + MC_POOL_BEGIN; \ MC_JAVA_NATIVE_INSTANCE->setter((scalarType) value); \ + MC_POOL_END; \ } #define mc_quote(word) #word diff --git a/src/java/native/com_libmailcore_AbstractMessage.cpp b/src/java/native/com_libmailcore_AbstractMessage.cpp index ceec521a..19fa4e64 100644 --- a/src/java/native/com_libmailcore_AbstractMessage.cpp +++ b/src/java/native/com_libmailcore_AbstractMessage.cpp @@ -16,29 +16,44 @@ MC_JAVA_SYNTHESIZE(MessageHeader, setHeader, header) JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_partForContentID (JNIEnv * env, jobject obj, jstring contentID) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForContentID(MC_FROM_JAVA(String, contentID))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForContentID(MC_FROM_JAVA(String, contentID))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_partForUniqueID (JNIEnv * env, jobject obj, jstring uniqueID) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForUniqueID(MC_FROM_JAVA(String, uniqueID))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForUniqueID(MC_FROM_JAVA(String, uniqueID))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_attachments (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(attachments); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(attachments); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_htmlInlineAttachments (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(htmlInlineAttachments); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(htmlInlineAttachments); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractMessage_requiredPartsForRendering (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(requiredPartsForRendering); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(requiredPartsForRendering); + MC_POOL_END; + return result; } diff --git a/src/java/native/com_libmailcore_AbstractPart.cpp b/src/java/native/com_libmailcore_AbstractPart.cpp index 188ab4d3..8d97296b 100644 --- a/src/java/native/com_libmailcore_AbstractPart.cpp +++ b/src/java/native/com_libmailcore_AbstractPart.cpp @@ -21,29 +21,43 @@ MC_JAVA_SYNTHESIZE_SCALAR(jboolean, bool, setInlineAttachment, isInlineAttachmen JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractPart_partForContentID (JNIEnv * env, jobject obj, jstring contentID) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForContentID(MC_FROM_JAVA(String, contentID))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForContentID(MC_FROM_JAVA(String, contentID))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractPart_partForUniqueID (JNIEnv * env, jobject obj, jstring uniqueID) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForUniqueID(MC_FROM_JAVA(String, uniqueID))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForUniqueID(MC_FROM_JAVA(String, uniqueID))); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_AbstractPart_setContentTypeParameter (JNIEnv * env, jobject obj, jstring name, jstring value) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->setContentTypeParameter(MC_FROM_JAVA(String, name), MC_FROM_JAVA(String, value)); + MC_POOL_END; } JNIEXPORT jstring JNICALL Java_com_libmailcore_AbstractPart_contentTypeParameterValueForName (JNIEnv * env, jobject obj, jstring name) { - return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->contentTypeParameterValueForName(MC_FROM_JAVA(String, name))); + MC_POOL_BEGIN; + jobject result = (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->contentTypeParameterValueForName(MC_FROM_JAVA(String, name))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_AbstractPart_allContentTypeParametersNames (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(allContentTypeParametersNames); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(allContentTypeParametersNames); + MC_POOL_END; + return result; } diff --git a/src/java/native/com_libmailcore_Address.cpp b/src/java/native/com_libmailcore_Address.cpp index f1d49d48..22efbfd2 100644 --- a/src/java/native/com_libmailcore_Address.cpp +++ b/src/java/native/com_libmailcore_Address.cpp @@ -13,50 +13,74 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithDisplayName (JNIEnv * env, jclass cls, jstring displayName, jstring mailbox) { - return MC_TO_JAVA(Address::addressWithDisplayName(MC_FROM_JAVA(String, displayName), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Address::addressWithDisplayName(MC_FROM_JAVA(String, displayName), MC_FROM_JAVA(String, mailbox))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithMailbox (JNIEnv * env, jclass cls, jstring mailbox) { - return MC_TO_JAVA(Address::addressWithMailbox(MC_FROM_JAVA(String, mailbox))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Address::addressWithMailbox(MC_FROM_JAVA(String, mailbox))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithRFC822String (JNIEnv * env, jclass cls, jstring rfc822String) { - return MC_TO_JAVA(Address::addressWithRFC822String(MC_FROM_JAVA(String, rfc822String))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Address::addressWithRFC822String(MC_FROM_JAVA(String, rfc822String))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressWithNonEncodedRFC822String (JNIEnv * env, jclass cls, jstring rfc822String) { - return MC_TO_JAVA(Address::addressWithNonEncodedRFC822String(MC_FROM_JAVA(String, rfc822String))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Address::addressWithNonEncodedRFC822String(MC_FROM_JAVA(String, rfc822String))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressesWithRFC822String (JNIEnv * env, jclass cls, jstring rfc822String) { - return MC_TO_JAVA(Address::addressesWithRFC822String(MC_FROM_JAVA(String, rfc822String))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Address::addressesWithRFC822String(MC_FROM_JAVA(String, rfc822String))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Address_addressesWithNonEncodedRFC822String (JNIEnv * env, jclass cls, jstring rfc822String) { - return MC_TO_JAVA(Address::addressesWithNonEncodedRFC822String(MC_FROM_JAVA(String, rfc822String))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Address::addressesWithNonEncodedRFC822String(MC_FROM_JAVA(String, rfc822String))); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_RFC822StringForAddresses (JNIEnv * env, jclass cls, jobject addresses) { - return (jstring) MC_TO_JAVA(Address::RFC822StringForAddresses(MC_FROM_JAVA(Array, addresses))); + MC_POOL_BEGIN; + jobject result = (jstring) MC_TO_JAVA(Address::RFC822StringForAddresses(MC_FROM_JAVA(Array, addresses))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_nonEncodedRFC822StringForAddresses (JNIEnv * env, jclass cls, jobject addresses) { - return (jstring) MC_TO_JAVA(Address::nonEncodedRFC822StringForAddresses(MC_FROM_JAVA(Array, addresses))); + MC_POOL_BEGIN; + jobject result = (jstring) MC_TO_JAVA(Address::nonEncodedRFC822StringForAddresses(MC_FROM_JAVA(Array, addresses))); + MC_POOL_END; + return (jstring) result; } MC_JAVA_SYNTHESIZE_STRING(setDisplayName, displayName) @@ -65,13 +89,19 @@ MC_JAVA_SYNTHESIZE_STRING(setMailbox, mailbox) JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_RFC822String (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_STRING(RFC822String); + MC_POOL_BEGIN; + jstring result = MC_JAVA_BRIDGE_GET_STRING(RFC822String); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_Address_nonEncodedRFC822String (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_STRING(nonEncodedRFC822String); + MC_POOL_BEGIN; + jstring result = MC_JAVA_BRIDGE_GET_STRING(nonEncodedRFC822String); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_Attachment.cpp b/src/java/native/com_libmailcore_Attachment.cpp index 652a3337..ddcd0f57 100644 --- a/src/java/native/com_libmailcore_Attachment.cpp +++ b/src/java/native/com_libmailcore_Attachment.cpp @@ -13,37 +13,55 @@ using namespace mailcore; JNIEXPORT jstring JNICALL Java_com_libmailcore_Attachment_mimeTypeForFilename (JNIEnv * env, jclass javaClass, jstring filename) { - return (jstring) MC_TO_JAVA(Attachment::mimeTypeForFilename(MC_FROM_JAVA(String, filename))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Attachment::mimeTypeForFilename(MC_FROM_JAVA(String, filename))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithContentsOfFile (JNIEnv * env, jclass javaClass, jstring filename) { - return MC_TO_JAVA(Attachment::attachmentWithContentsOfFile(MC_FROM_JAVA(String, filename))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Attachment::attachmentWithContentsOfFile(MC_FROM_JAVA(String, filename))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithData (JNIEnv * env, jclass javaClass, jstring filename, jbyteArray data) { - return MC_TO_JAVA(Attachment::attachmentWithData(MC_FROM_JAVA(String, filename), MC_FROM_JAVA(Data, data))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Attachment::attachmentWithData(MC_FROM_JAVA(String, filename), MC_FROM_JAVA(Data, data))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithHTMLString (JNIEnv * env, jclass javaClass, jstring htmlString) { - return MC_TO_JAVA(Attachment::attachmentWithHTMLString(MC_FROM_JAVA(String, htmlString))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Attachment::attachmentWithHTMLString(MC_FROM_JAVA(String, htmlString))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithRFC822Message (JNIEnv * env, jclass javaClass, jbyteArray data) { - return MC_TO_JAVA(Attachment::attachmentWithRFC822Message(MC_FROM_JAVA(Data, data))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Attachment::attachmentWithRFC822Message(MC_FROM_JAVA(Data, data))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Attachment_attachmentWithText (JNIEnv * env, jclass javaClass, jstring text) { - return MC_TO_JAVA(Attachment::attachmentWithText(MC_FROM_JAVA(String, text))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(Attachment::attachmentWithText(MC_FROM_JAVA(String, text))); + MC_POOL_END; + return result; } MC_JAVA_SYNTHESIZE_DATA(setData, data) @@ -51,7 +69,10 @@ MC_JAVA_SYNTHESIZE_DATA(setData, data) JNIEXPORT jstring JNICALL Java_com_libmailcore_Attachment_decodedString (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_STRING(decodedString); + MC_POOL_BEGIN; + jstring result = MC_JAVA_BRIDGE_GET_STRING(decodedString); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.cpp b/src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.cpp index 9a127523..d643482f 100644 --- a/src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.cpp +++ b/src/java/native/com_libmailcore_HTMLRendererTemplateCallbackUtils.cpp @@ -12,85 +12,127 @@ static HTMLRendererTemplateCallback * callback = NULL; JNIEXPORT jboolean JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_canPreviewPart (JNIEnv * env, jclass cls, jobject part) { - return (jboolean) callback->canPreviewPart(MC_FROM_JAVA(AbstractPart, part)); + MC_POOL_BEGIN; + jboolean result = (jboolean) callback->canPreviewPart(MC_FROM_JAVA(AbstractPart, part)); + MC_POOL_END; + return result; } JNIEXPORT jboolean JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_shouldShowPart (JNIEnv * env, jclass cls, jobject part) { - return (jboolean) callback->canPreviewPart(MC_FROM_JAVA(AbstractPart, part)); + MC_POOL_BEGIN; + jboolean result = (jboolean) callback->canPreviewPart(MC_FROM_JAVA(AbstractPart, part)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateValuesForHeader (JNIEnv * env, jclass cls, jobject header) { - return MC_TO_JAVA(callback->templateValuesForHeader(MC_FROM_JAVA(MessageHeader, header))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(callback->templateValuesForHeader(MC_FROM_JAVA(MessageHeader, header))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateValuesForPart (JNIEnv * env, jclass cls, jobject part) { - return MC_TO_JAVA(callback->templateValuesForPart(MC_FROM_JAVA(AbstractPart, part))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(callback->templateValuesForPart(MC_FROM_JAVA(AbstractPart, part))); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForMainHeader (JNIEnv * env, jclass cls, jobject header) { - return (jstring) MC_TO_JAVA(callback->templateForMainHeader(MC_FROM_JAVA(MessageHeader, header))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(callback->templateForMainHeader(MC_FROM_JAVA(MessageHeader, header))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForImage (JNIEnv * env, jclass cls, jobject part) { - return (jstring) MC_TO_JAVA(callback->templateForImage(MC_FROM_JAVA(AbstractPart, part))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(callback->templateForImage(MC_FROM_JAVA(AbstractPart, part))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForAttachment (JNIEnv * env, jclass cls, jobject part) { - return (jstring) MC_TO_JAVA(callback->templateForAttachment(MC_FROM_JAVA(AbstractPart, part))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(callback->templateForAttachment(MC_FROM_JAVA(AbstractPart, part))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForMessage (JNIEnv * env, jclass cls, jobject msg) { - return (jstring) MC_TO_JAVA(callback->templateForMessage(MC_FROM_JAVA(AbstractMessage, msg))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(callback->templateForMessage(MC_FROM_JAVA(AbstractMessage, msg))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForEmbeddedMessage (JNIEnv * env, jclass cls, jobject msgPart) { - return (jstring) MC_TO_JAVA(callback->templateForEmbeddedMessage(MC_FROM_JAVA(AbstractMessagePart, msgPart))); + MC_POOL_BEGIN; + jobject result = (jstring) MC_TO_JAVA(callback->templateForEmbeddedMessage(MC_FROM_JAVA(AbstractMessagePart, msgPart))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForEmbeddedMessageHeader (JNIEnv * env, jclass cls, jobject header) { - return (jstring) MC_TO_JAVA(callback->templateForEmbeddedMessageHeader(MC_FROM_JAVA(MessageHeader, header))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(callback->templateForEmbeddedMessageHeader(MC_FROM_JAVA(MessageHeader, header))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_templateForAttachmentSeparator (JNIEnv * env, jclass cls) { - return (jstring) MC_TO_JAVA(callback->templateForAttachmentSeparator()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(callback->templateForAttachmentSeparator()); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_cleanHTML (JNIEnv * env, jclass cls, jstring html) { - return (jstring) MC_TO_JAVA(callback->cleanHTMLForPart(MC_FROM_JAVA(String, html))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(callback->cleanHTMLForPart(MC_FROM_JAVA(String, html))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_filterHTMLForPart (JNIEnv * env, jclass cls, jstring html) { - return (jstring) MC_TO_JAVA(callback->filterHTMLForPart(MC_FROM_JAVA(String, html))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(callback->filterHTMLForPart(MC_FROM_JAVA(String, html))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_HTMLRendererTemplateCallbackUtils_filterHTMLForMessage (JNIEnv * env, jclass cls, jstring html) { - return (jstring) MC_TO_JAVA(callback->filterHTMLForMessage(MC_FROM_JAVA(String, html))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(callback->filterHTMLForMessage(MC_FROM_JAVA(String, html))); + MC_POOL_END; + return (jstring) result; } INITIALIZE(Java_com_libmailcore_HTMLRendererTemplateCallbackUtils) diff --git a/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp b/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp index c9b90874..7a99a578 100644 --- a/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPAppendMessageOperation.cpp @@ -13,19 +13,27 @@ using namespace mailcore; JNIEXPORT void JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_setDate (JNIEnv * env, jobject obj, jobject date) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->setDate(javaDateToTime(env, date)); + MC_POOL_END; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_date (JNIEnv * env, jobject obj) { - return timeToJavaDate(env, MC_JAVA_NATIVE_INSTANCE->date()); + MC_POOL_BEGIN; + jobject result = timeToJavaDate(env, MC_JAVA_NATIVE_INSTANCE->date()); + MC_POOL_END; + return result; } JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPAppendMessageOperation_createdUID (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jlong, createdUID); + MC_POOL_BEGIN; + jlong result = MC_JAVA_BRIDGE_GET_SCALAR(jlong, createdUID); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPCapabilityOperation.cpp b/src/java/native/com_libmailcore_IMAPCapabilityOperation.cpp index 929ad9c2..9519f0f6 100644 --- a/src/java/native/com_libmailcore_IMAPCapabilityOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPCapabilityOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPCapabilityOperation_capabilities (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(capabilities); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(capabilities); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPCopyMessagesOperation.cpp b/src/java/native/com_libmailcore_IMAPCopyMessagesOperation.cpp index 558c7836..b514bf6d 100644 --- a/src/java/native/com_libmailcore_IMAPCopyMessagesOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPCopyMessagesOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPCopyMessagesOperation_uidMapping (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(uidMapping); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(uidMapping); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPFetchContentOperation.cpp b/src/java/native/com_libmailcore_IMAPFetchContentOperation.cpp index 1e0cf54e..a8be97b8 100644 --- a/src/java/native/com_libmailcore_IMAPFetchContentOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPFetchContentOperation.cpp @@ -14,20 +14,26 @@ using namespace mailcore; JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_IMAPFetchContentOperation_data (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_DATA(data); + MC_POOL_BEGIN; + jbyteArray result = MC_JAVA_BRIDGE_GET_DATA(data); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchContentOperation_finalizeNative (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchContentOperation_setupNativeOperationProgressListener (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL); @@ -37,6 +43,7 @@ JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchContentOperation_setupNativ callback = new JavaIMAPOperationCallback(env, javaListener); MC_JAVA_NATIVE_INSTANCE->setImapCallback(callback); } + MC_POOL_END; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPFetchFoldersOperation.cpp b/src/java/native/com_libmailcore_IMAPFetchFoldersOperation.cpp index 50f08e2d..cdf56cd5 100644 --- a/src/java/native/com_libmailcore_IMAPFetchFoldersOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPFetchFoldersOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchFoldersOperation_folders (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(folders); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(folders); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPFetchMessagesOperation.cpp b/src/java/native/com_libmailcore_IMAPFetchMessagesOperation.cpp index 735459a4..b0f2fe46 100644 --- a/src/java/native/com_libmailcore_IMAPFetchMessagesOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPFetchMessagesOperation.cpp @@ -14,26 +14,35 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_messages (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(messages); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(messages); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_vanishedMessages (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(vanishedMessages); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(vanishedMessages); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_finalizeNative (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_setupNativeOperationProgressListener (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL); @@ -43,6 +52,7 @@ JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchMessagesOperation_setupNati callback = new JavaIMAPOperationCallback(env, javaListener); MC_JAVA_NATIVE_INSTANCE->setImapCallback(callback); } + MC_POOL_END; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.cpp b/src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.cpp index c2ad0091..69d03ccb 100644 --- a/src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPFetchNamespaceOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchNamespaceOperation_namespaces (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(namespaces); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(namespaces); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.cpp b/src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.cpp index 662c2ca5..da639f2c 100644 --- a/src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPFetchParsedContentOperation.cpp @@ -14,20 +14,26 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFetchParsedContentOperation_parser (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(parser); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(parser); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchParsedContentOperation_finalizeNative (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchParsedContentOperation_setupNativeOperationProgressListener (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaIMAPOperationCallback * callback = (JavaIMAPOperationCallback *) MC_JAVA_NATIVE_INSTANCE->imapCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setImapCallback(NULL); @@ -37,6 +43,7 @@ JNIEXPORT void JNICALL Java_com_libmailcore_IMAPFetchParsedContentOperation_setu callback = new JavaIMAPOperationCallback(env, javaListener); MC_JAVA_NATIVE_INSTANCE->setImapCallback(callback); } + MC_POOL_END; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPFolderInfoOperation.cpp b/src/java/native/com_libmailcore_IMAPFolderInfoOperation.cpp index 721bdb43..2017647c 100644 --- a/src/java/native/com_libmailcore_IMAPFolderInfoOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPFolderInfoOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFolderInfoOperation_info (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(info); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(info); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPFolderStatusOperation.cpp b/src/java/native/com_libmailcore_IMAPFolderStatusOperation.cpp index 6e9128e8..99e11d9d 100644 --- a/src/java/native/com_libmailcore_IMAPFolderStatusOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPFolderStatusOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPFolderStatusOperation_status (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(status); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(status); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPIdentity.cpp b/src/java/native/com_libmailcore_IMAPIdentity.cpp index 7f544b6f..9d6b04a8 100644 --- a/src/java/native/com_libmailcore_IMAPIdentity.cpp +++ b/src/java/native/com_libmailcore_IMAPIdentity.cpp @@ -17,25 +17,35 @@ MC_JAVA_SYNTHESIZE_STRING(setVersion, version) JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdentity_removeAllInfos (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->removeAllInfos(); + MC_POOL_END; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPIdentity_allInfoKeys (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(allInfoKeys); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(allInfoKeys); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPIdentity_infoForKey (JNIEnv * env, jobject obj, jstring key) { - return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->infoForKey(MC_FROM_JAVA(String, key))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->infoForKey(MC_FROM_JAVA(String, key))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdentity_setInfoForKey (JNIEnv * env, jobject obj, jstring key, jstring value) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->setInfoForKey(MC_FROM_JAVA(String, key), MC_FROM_JAVA(String, value)); + MC_POOL_END; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPIdentityOperation.cpp b/src/java/native/com_libmailcore_IMAPIdentityOperation.cpp index 6b033808..2188bd5f 100644 --- a/src/java/native/com_libmailcore_IMAPIdentityOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPIdentityOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPIdentityOperation_serverIdentity (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(serverIdentity); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(serverIdentity); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPIdleOperation.cpp b/src/java/native/com_libmailcore_IMAPIdleOperation.cpp index 0440ae52..59cf7531 100644 --- a/src/java/native/com_libmailcore_IMAPIdleOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPIdleOperation.cpp @@ -13,7 +13,9 @@ using namespace mailcore; JNIEXPORT void JNICALL Java_com_libmailcore_IMAPIdleOperation_interruptIdle (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->interruptIdle(); + MC_POOL_END; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPMessage.cpp b/src/java/native/com_libmailcore_IMAPMessage.cpp index 0a47efd6..f7e3fdd9 100644 --- a/src/java/native/com_libmailcore_IMAPMessage.cpp +++ b/src/java/native/com_libmailcore_IMAPMessage.cpp @@ -27,24 +27,34 @@ MC_JAVA_SYNTHESIZE_SCALAR(jlong, uint64_t, setGmailThreadID, gmailThreadID); JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_partForPartID (JNIEnv * env, jobject obj, jstring partID) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForPartID(MC_FROM_JAVA(String, partID))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForPartID(MC_FROM_JAVA(String, partID))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_partForContentID (JNIEnv * env, jobject obj, jstring contentID) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForContentID(MC_FROM_JAVA(String, contentID))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForContentID(MC_FROM_JAVA(String, contentID))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPMessage_partForUniqueID (JNIEnv * env, jobject obj, jstring uniqueID) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForUniqueID(MC_FROM_JAVA(String, uniqueID))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->partForUniqueID(MC_FROM_JAVA(String, uniqueID))); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPMessage_htmlRendering (JNIEnv * env, jobject obj, jstring folder, jobject dataCallback, jobject htmlTemplateCallback) { + MC_POOL_BEGIN; JavaHTMLRendererTemplateCallback * templateCallback = NULL; if (htmlTemplateCallback != NULL) { templateCallback = new JavaHTMLRendererTemplateCallback(env, htmlTemplateCallback); @@ -60,6 +70,7 @@ JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPMessage_htmlRendering if (templateCallback != NULL) { delete templateCallback; } + MC_POOL_END; return result; } diff --git a/src/java/native/com_libmailcore_IMAPMessageRenderingOperation.cpp b/src/java/native/com_libmailcore_IMAPMessageRenderingOperation.cpp index 106996a1..e841943d 100644 --- a/src/java/native/com_libmailcore_IMAPMessageRenderingOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPMessageRenderingOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPMessageRenderingOperation_result (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_STRING(result); + MC_POOL_BEGIN; + jstring result = MC_JAVA_BRIDGE_GET_STRING(result); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPNamespace.cpp b/src/java/native/com_libmailcore_IMAPNamespace.cpp index 3569ea55..c71a2ba3 100644 --- a/src/java/native/com_libmailcore_IMAPNamespace.cpp +++ b/src/java/native/com_libmailcore_IMAPNamespace.cpp @@ -13,50 +13,74 @@ using namespace mailcore; JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespace_mainPrefix (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_STRING(mainPrefix); + MC_POOL_BEGIN; + jstring result = MC_JAVA_BRIDGE_GET_STRING(mainPrefix); + MC_POOL_END; + return result; } JNIEXPORT jchar JNICALL Java_com_libmailcore_IMAPNamespace_mainDelimiter (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jchar, mainDelimiter); + MC_POOL_BEGIN; + jchar result = MC_JAVA_BRIDGE_GET_SCALAR(jchar, mainDelimiter); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespace_prefixes (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(prefixes); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(prefixes); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespace_pathForComponents (JNIEnv * env, jobject obj, jobject components) { - return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->pathForComponents(MC_FROM_JAVA(Array, components))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->pathForComponents(MC_FROM_JAVA(Array, components))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespace_pathForComponentsAndPrefix (JNIEnv * env, jobject obj, jobject components, jstring prefix) { - return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->pathForComponentsAndPrefix(MC_FROM_JAVA(Array, components), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->pathForComponentsAndPrefix(MC_FROM_JAVA(Array, components), MC_FROM_JAVA(String, prefix))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespace_componentsFromPath (JNIEnv * env, jobject obj, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->componentsFromPath(MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->componentsFromPath(MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPNamespace_containsFolderPath (JNIEnv * env, jobject obj, jstring path) { - return (jboolean) MC_JAVA_NATIVE_INSTANCE->containsFolderPath(MC_FROM_JAVA(String, path)); + MC_POOL_BEGIN; + jboolean result = (jboolean) MC_JAVA_NATIVE_INSTANCE->containsFolderPath(MC_FROM_JAVA(String, path)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespace_namespaceWithPrefix (JNIEnv * env, jclass cls, jstring prefix, jchar delimiter) { - return MC_TO_JAVA(IMAPNamespace::namespaceWithPrefix(MC_FROM_JAVA(String, prefix), (char) delimiter)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPNamespace::namespaceWithPrefix(MC_FROM_JAVA(String, prefix), (char) delimiter)); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPNamespaceItem.cpp b/src/java/native/com_libmailcore_IMAPNamespaceItem.cpp index ace55219..689bb92e 100644 --- a/src/java/native/com_libmailcore_IMAPNamespaceItem.cpp +++ b/src/java/native/com_libmailcore_IMAPNamespaceItem.cpp @@ -16,19 +16,28 @@ MC_JAVA_SYNTHESIZE_SCALAR(jchar, char, setDelimiter, delimiter) JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPNamespaceItem_pathForComponents (JNIEnv * env, jobject obj, jobject components) { - return (jstring) MC_JAVA_NATIVE_INSTANCE->pathForComponents(MC_FROM_JAVA(Array, components)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->pathForComponents(MC_FROM_JAVA(Array, components))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPNamespaceItem_componentsForPath (JNIEnv * env, jobject obj, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->componentsForPath(MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->componentsForPath(MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPNamespaceItem_containsFolder (JNIEnv * env, jobject obj, jstring path) { - return (jboolean) MC_JAVA_NATIVE_INSTANCE->containsFolder(MC_FROM_JAVA(String, path)); + MC_POOL_BEGIN; + jboolean result = (jboolean) MC_JAVA_NATIVE_INSTANCE->containsFolder(MC_FROM_JAVA(String, path)); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPOperation.cpp b/src/java/native/com_libmailcore_IMAPOperation.cpp index af38fa8f..fd8c1ea2 100644 --- a/src/java/native/com_libmailcore_IMAPOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPOperation_errorCode (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jint, error); + MC_POOL_BEGIN; + jint result = MC_JAVA_BRIDGE_GET_SCALAR(jint, error); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPPart.cpp b/src/java/native/com_libmailcore_IMAPPart.cpp index 6c5ae806..5a1236b8 100644 --- a/src/java/native/com_libmailcore_IMAPPart.cpp +++ b/src/java/native/com_libmailcore_IMAPPart.cpp @@ -17,7 +17,10 @@ MC_JAVA_SYNTHESIZE_SCALAR(jint, Encoding, setEncoding, encoding) JNIEXPORT jlong JNICALL Java_com_libmailcore_IMAPPart_decodedSize (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jlong, decodedSize); + MC_POOL_BEGIN; + jlong result = MC_JAVA_BRIDGE_GET_SCALAR(jlong, decodedSize); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPQuotaOperation.cpp b/src/java/native/com_libmailcore_IMAPQuotaOperation.cpp index 5ac954f0..56666bca 100644 --- a/src/java/native/com_libmailcore_IMAPQuotaOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPQuotaOperation.cpp @@ -13,13 +13,19 @@ using namespace mailcore; JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPQuotaOperation_usage (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jint, usage); + MC_POOL_BEGIN; + jint result = MC_JAVA_BRIDGE_GET_SCALAR(jint, usage); + MC_POOL_END; + return result; } JNIEXPORT jint JNICALL Java_com_libmailcore_IMAPQuotaOperation_limit (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jint, limit); + MC_POOL_BEGIN; + jint result = MC_JAVA_BRIDGE_GET_SCALAR(jint, limit); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPSearchExpression.cpp b/src/java/native/com_libmailcore_IMAPSearchExpression.cpp index 75f2c3ec..63240419 100644 --- a/src/java/native/com_libmailcore_IMAPSearchExpression.cpp +++ b/src/java/native/com_libmailcore_IMAPSearchExpression.cpp @@ -13,211 +13,316 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchAll (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IMAPSearchExpression::searchAll()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchAll()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchFrom (JNIEnv * env, jclass cls, jstring) { - return MC_TO_JAVA(IMAPSearchExpression::searchAll()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchAll()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchTo (JNIEnv * env, jclass cls, jstring value) { - return MC_TO_JAVA(IMAPSearchExpression::searchTo(MC_FROM_JAVA(String, value))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchTo(MC_FROM_JAVA(String, value))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchCc (JNIEnv * env, jclass cls, jstring value) { - return MC_TO_JAVA(IMAPSearchExpression::searchCc(MC_FROM_JAVA(String, value))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchCc(MC_FROM_JAVA(String, value))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBcc (JNIEnv * env, jclass cls, jstring value) { - return MC_TO_JAVA(IMAPSearchExpression::searchBcc(MC_FROM_JAVA(String, value))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchBcc(MC_FROM_JAVA(String, value))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchRecipient (JNIEnv * env, jclass cls, jstring value) { - return MC_TO_JAVA(IMAPSearchExpression::searchRecipient(MC_FROM_JAVA(String, value))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchRecipient(MC_FROM_JAVA(String, value))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSubject (JNIEnv * env, jclass cls, jstring value) { - return MC_TO_JAVA(IMAPSearchExpression::searchSubject(MC_FROM_JAVA(String, value))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchSubject(MC_FROM_JAVA(String, value))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchContent (JNIEnv * env, jclass cls, jstring value) { - return MC_TO_JAVA(IMAPSearchExpression::searchContent(MC_FROM_JAVA(String, value))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchContent(MC_FROM_JAVA(String, value))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBody (JNIEnv * env, jclass cls, jstring value) { - return MC_TO_JAVA(IMAPSearchExpression::searchBody(MC_FROM_JAVA(String, value))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchBody(MC_FROM_JAVA(String, value))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchHeader (JNIEnv * env, jclass cls, jstring header, jstring value) { - return MC_TO_JAVA(IMAPSearchExpression::searchHeader(MC_FROM_JAVA(String, header), MC_FROM_JAVA(String, value))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchHeader(MC_FROM_JAVA(String, header), MC_FROM_JAVA(String, value))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUIDs (JNIEnv * env, jclass cls, jobject uids) { - return MC_TO_JAVA(IMAPSearchExpression::searchUIDs(MC_FROM_JAVA(IndexSet, uids))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchUIDs(MC_FROM_JAVA(IndexSet, uids))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchRead (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IMAPSearchExpression::searchRead()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchRead()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUnread (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IMAPSearchExpression::searchUnread()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchUnread()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchFlagged (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IMAPSearchExpression::searchFlagged()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchFlagged()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUnflagged (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IMAPSearchExpression::searchUnflagged()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchUnflagged()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchAnswered (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IMAPSearchExpression::searchAnswered()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchAnswered()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUnanswered (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IMAPSearchExpression::searchUnanswered()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchUnanswered()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchDraft (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IMAPSearchExpression::searchDraft()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchDraft()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchUndraft (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IMAPSearchExpression::searchUndraft()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchUndraft()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchDeleted (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IMAPSearchExpression::searchDeleted()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchDeleted()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSpam (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IMAPSearchExpression::searchSpam()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchSpam()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBeforeDate (JNIEnv * env, jclass cls, jobject date) { - return MC_TO_JAVA(IMAPSearchExpression::searchBeforeDate(javaDateToTime(env, date))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchBeforeDate(javaDateToTime(env, date))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchOnDate (JNIEnv * env, jclass cls, jobject date) { - return MC_TO_JAVA(IMAPSearchExpression::searchOnDate(javaDateToTime(env, date))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchOnDate(javaDateToTime(env, date))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSinceDate (JNIEnv * env, jclass cls, jobject date) { - return MC_TO_JAVA(IMAPSearchExpression::searchSinceDate(javaDateToTime(env, date))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchSinceDate(javaDateToTime(env, date))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchBeforeReceivedDate (JNIEnv * env, jclass cls, jobject date) { - return MC_TO_JAVA(IMAPSearchExpression::searchBeforeDate(javaDateToTime(env, date))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchBeforeDate(javaDateToTime(env, date))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchOnReceivedDate (JNIEnv * env, jclass cls, jobject date) { - return MC_TO_JAVA(IMAPSearchExpression::searchOnReceivedDate(javaDateToTime(env, date))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchOnReceivedDate(javaDateToTime(env, date))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSinceReceivedDate (JNIEnv * env, jclass cls, jobject date) { - return MC_TO_JAVA(IMAPSearchExpression::searchSinceReceivedDate(javaDateToTime(env, date))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchSinceReceivedDate(javaDateToTime(env, date))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSizeLarger (JNIEnv * env, jclass cls, jlong size) { - return MC_TO_JAVA(IMAPSearchExpression::searchSizeLarger((uint32_t) size)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchSizeLarger((uint32_t) size)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchSizeSmaller (JNIEnv * env, jclass cls, jlong size) { - return MC_TO_JAVA(IMAPSearchExpression::searchSizeSmaller((uint32_t) size)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchSizeSmaller((uint32_t) size)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchGmailThreadID (JNIEnv * env, jclass cls, jlong threadID) { - return MC_TO_JAVA(IMAPSearchExpression::searchGmailThreadID((uint64_t) threadID)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchGmailThreadID((uint64_t) threadID)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchGmailMessageID (JNIEnv * env, jclass cls, jlong messageID) { - return MC_TO_JAVA(IMAPSearchExpression::searchGmailThreadID((uint64_t) messageID)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchGmailThreadID((uint64_t) messageID)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchGmailRaw (JNIEnv * env, jclass cls, jstring searchString) { - return MC_TO_JAVA(IMAPSearchExpression::searchGmailRaw(MC_FROM_JAVA(String, searchString))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchGmailRaw(MC_FROM_JAVA(String, searchString))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchAnd (JNIEnv * env, jclass cls, jobject expr1, jobject expr2) { - return MC_TO_JAVA(IMAPSearchExpression::searchAnd(MC_FROM_JAVA(IMAPSearchExpression, expr1), MC_FROM_JAVA(IMAPSearchExpression, expr2))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchAnd(MC_FROM_JAVA(IMAPSearchExpression, expr1), MC_FROM_JAVA(IMAPSearchExpression, expr2))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchOr (JNIEnv * env, jclass cls, jobject expr1, jobject expr2) { - return MC_TO_JAVA(IMAPSearchExpression::searchOr(MC_FROM_JAVA(IMAPSearchExpression, expr1), MC_FROM_JAVA(IMAPSearchExpression, expr2))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchOr(MC_FROM_JAVA(IMAPSearchExpression, expr1), MC_FROM_JAVA(IMAPSearchExpression, expr2))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchExpression_searchNot (JNIEnv * env, jclass cls, jobject expr) { - return MC_TO_JAVA(IMAPSearchExpression::searchNot(MC_FROM_JAVA(IMAPSearchExpression, expr))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IMAPSearchExpression::searchNot(MC_FROM_JAVA(IMAPSearchExpression, expr))); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPSearchOperation.cpp b/src/java/native/com_libmailcore_IMAPSearchOperation.cpp index f9b3f524..f280dd8b 100644 --- a/src/java/native/com_libmailcore_IMAPSearchOperation.cpp +++ b/src/java/native/com_libmailcore_IMAPSearchOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSearchOperation_uids (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(uids); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(uids); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IMAPSession.cpp b/src/java/native/com_libmailcore_IMAPSession.cpp index ee76a76a..957c12df 100644 --- a/src/java/native/com_libmailcore_IMAPSession.cpp +++ b/src/java/native/com_libmailcore_IMAPSession.cpp @@ -28,37 +28,54 @@ MC_JAVA_SYNTHESIZE_SCALAR(jint, unsigned int, setMaximumConnections, maximumConn JNIEXPORT jboolean JNICALL Java_com_libmailcore_IMAPSession_isOperationQueueRunning (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isOperationQueueRunning); + MC_POOL_BEGIN; + jboolean result = MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isOperationQueueRunning); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_cancelAllOperations (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->cancelAllOperations(); + MC_POOL_END; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_serverIdentity (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(serverIdentity); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(serverIdentity); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_clientIdentity (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(clientIdentity); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(clientIdentity); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_IMAPSession_gmailUserDisplayName (JNIEnv * env, jobject obj) { - return (jstring) MC_JAVA_BRIDGE_GET(gmailUserDisplayName); + MC_POOL_BEGIN; + jstring result = MC_JAVA_BRIDGE_GET_STRING(gmailUserDisplayName); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_folderInfoOperation (JNIEnv * env, jobject obj, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->folderInfoOperation(MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->folderInfoOperation(MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } /* @@ -69,253 +86,371 @@ JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_folderInfoOperation JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_folderStatusOperation (JNIEnv * env, jobject obj, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->folderInfoOperation(MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->folderInfoOperation(MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchSubscribedFoldersOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchSubscribedFoldersOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchSubscribedFoldersOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchAllFoldersOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchAllFoldersOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchAllFoldersOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_renameFolderOperation (JNIEnv * env, jobject obj, jstring currentName, jstring otherName) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->renameFolderOperation(MC_FROM_JAVA(String, currentName), MC_FROM_JAVA(String, otherName))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->renameFolderOperation(MC_FROM_JAVA(String, currentName), MC_FROM_JAVA(String, otherName))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_deleteFolderOperation (JNIEnv * env, jobject obj, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->deleteFolderOperation(MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->deleteFolderOperation(MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_createFolderOperation (JNIEnv * env, jobject obj, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->createFolderOperation(MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->createFolderOperation(MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_subscribeFolderOperation (JNIEnv * env, jobject obj, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->subscribeFolderOperation(MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->subscribeFolderOperation(MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_unsubscribeFolderOperation (JNIEnv * env, jobject obj, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->unsubscribeFolderOperation(MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->unsubscribeFolderOperation(MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_appendMessageOperation (JNIEnv * env, jobject obj, jstring path, jbyteArray data, jint flags, jobject customFlags) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->appendMessageOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->appendMessageOperation(MC_FROM_JAVA(String, path), MC_FROM_JAVA(Data, data), (MessageFlag) flags, MC_FROM_JAVA(Array, customFlags))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_copyMessagesOperation (JNIEnv * env, jobject obj, jstring sourcePath, jobject uids, jstring destPath) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->copyMessagesOperation(MC_FROM_JAVA(String, sourcePath), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->copyMessagesOperation(MC_FROM_JAVA(String, sourcePath), MC_FROM_JAVA(IndexSet, uids), MC_FROM_JAVA(String, destPath))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_expungeOperation (JNIEnv * env, jobject obj, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->expungeOperation(MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->expungeOperation(MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessagesByUIDOperation (JNIEnv * env, jobject obj, jstring path, jint kind, jobject uids) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessagesByUIDOperation(MC_FROM_JAVA(String, path), (IMAPMessagesRequestKind) kind, MC_FROM_JAVA(IndexSet, uids))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessagesByUIDOperation(MC_FROM_JAVA(String, path), (IMAPMessagesRequestKind) kind, MC_FROM_JAVA(IndexSet, uids))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessagesByNumberOperation (JNIEnv * env, jobject obj, jstring path, jint kind, jobject numbers) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessagesByNumberOperation(MC_FROM_JAVA(String, path), (IMAPMessagesRequestKind) kind, MC_FROM_JAVA(IndexSet, numbers))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessagesByNumberOperation(MC_FROM_JAVA(String, path), (IMAPMessagesRequestKind) kind, MC_FROM_JAVA(IndexSet, numbers))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_syncMessagesByUIDOperation (JNIEnv * env, jobject obj, jstring path, jint kind, jobject uids, jlong modSeq) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->syncMessagesByUIDOperation(MC_FROM_JAVA(String, path), (IMAPMessagesRequestKind) kind, MC_FROM_JAVA(IndexSet, uids), (uint64_t) modSeq)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->syncMessagesByUIDOperation(MC_FROM_JAVA(String, path), (IMAPMessagesRequestKind) kind, MC_FROM_JAVA(IndexSet, uids), (uint64_t) modSeq)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageByUIDOperation (JNIEnv * env, jobject obj, jstring path, jlong uid, jboolean urgent) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageByUIDOperation(MC_FROM_JAVA(String, path), (uint32_t) uid, (bool) urgent)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageByUIDOperation(MC_FROM_JAVA(String, path), (uint32_t) uid, (bool) urgent)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageAttachmentByUIDOperation (JNIEnv * env, jobject obj, jstring path, jlong uid, jstring partID, jint encoding, jboolean urgent) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageAttachmentByUIDOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageAttachmentByUIDOperation(MC_FROM_JAVA(String, path), (uint32_t) uid, MC_FROM_JAVA(String, partID), (Encoding) encoding, (bool) urgent)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageByNumberOperation (JNIEnv * env, jobject obj, jstring path, jlong number, jboolean urgent) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageByNumberOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageByNumberOperation(MC_FROM_JAVA(String, path), (uint32_t) number, (bool) urgent)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchMessageAttachmentByNumberOperation (JNIEnv * env, jobject obj, jstring path, jlong number, jstring partID, jint encoding, jboolean urgent) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageAttachmentByNumberOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageAttachmentByNumberOperation(MC_FROM_JAVA(String, path), (uint32_t) number, MC_FROM_JAVA(String, partID), (Encoding) encoding, (bool) urgent)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchParsedMessageByUIDOperation (JNIEnv * env, jobject obj, jstring path, jlong uid, jboolean urgent) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchParsedMessageByUIDOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchParsedMessageByUIDOperation(MC_FROM_JAVA(String, path), (uint32_t) uid, (bool) urgent)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchParsedMessageByNumberOperation (JNIEnv * env, jobject obj, jstring path, jlong number, jboolean urgent) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchParsedMessageByNumberOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchParsedMessageByNumberOperation(MC_FROM_JAVA(String, path), (uint32_t) number, (bool) urgent)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeFlagsByUIDOperation (JNIEnv * env, jobject obj, jstring path, jobject uids, jint kind, jint flags, jobject customFlags) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeFlagsByUIDOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeFlagsByUIDOperation(MC_FROM_JAVA(String, path), MC_FROM_JAVA(IndexSet, uids), (IMAPStoreFlagsRequestKind) kind, (MessageFlag) flags, MC_FROM_JAVA(Array, customFlags))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeFlagsByNumberOperation (JNIEnv * env, jobject obj, jstring path, jobject uids, jint kind, jint flags, jobject customFlags) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeFlagsByUIDOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeFlagsByUIDOperation(MC_FROM_JAVA(String, path), MC_FROM_JAVA(IndexSet, uids), (IMAPStoreFlagsRequestKind) kind, (MessageFlag) flags, MC_FROM_JAVA(Array, customFlags))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeLabelsByUIDOperation (JNIEnv * env, jobject obj, jstring path, jobject uids, jint kind, jobject labels) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeLabelsByUIDOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeLabelsByUIDOperation(MC_FROM_JAVA(String, path), MC_FROM_JAVA(IndexSet, uids), (IMAPStoreFlagsRequestKind) kind, MC_FROM_JAVA(Array, labels))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_storeLabelsByNumberOperation (JNIEnv * env, jobject obj, jstring path, jobject numbers, jint kind, jobject labels) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeLabelsByNumberOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->storeLabelsByNumberOperation(MC_FROM_JAVA(String, path), MC_FROM_JAVA(IndexSet, numbers), (IMAPStoreFlagsRequestKind) kind, MC_FROM_JAVA(Array, labels))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_searchOperation__Ljava_lang_String_2ILjava_lang_String_2 (JNIEnv * env, jobject obj, jstring path, jint kind, jstring searchString) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->searchOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->searchOperation(MC_FROM_JAVA(String, path), (IMAPSearchKind) kind, MC_FROM_JAVA(String, searchString))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_searchOperation__Ljava_lang_String_2Lcom_libmailcore_IMAPSearchExpression_2 (JNIEnv * env, jobject obj, jstring path, jobject expression) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->searchOperation(MC_FROM_JAVA(String, path), + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->searchOperation(MC_FROM_JAVA(String, path), MC_FROM_JAVA(IMAPSearchExpression, expression))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_idleOperation (JNIEnv * env, jobject obj, jstring path, jlong lastKnownUID) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->idleOperation(MC_FROM_JAVA(String, path), (uint32_t) lastKnownUID)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->idleOperation(MC_FROM_JAVA(String, path), (uint32_t) lastKnownUID)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_fetchNamespaceOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchNamespaceOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchNamespaceOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_identityOperation (JNIEnv * env, jobject obj, jobject identity) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->identityOperation(MC_FROM_JAVA(IMAPIdentity, identity))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->identityOperation(MC_FROM_JAVA(IMAPIdentity, identity))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_connectOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->connectOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->connectOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_checkAccountOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->checkAccountOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->checkAccountOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_disconnectOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->disconnectOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->disconnectOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_capabilityOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->capabilityOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->capabilityOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_quotaOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->quotaOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->quotaOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_noopOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->noopOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->noopOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_htmlRenderingOperation (JNIEnv * env, jobject obj, jobject msg, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->htmlRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->htmlRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_htmlBodyRenderingOperation (JNIEnv * env, jobject obj, jobject msg, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->htmlBodyRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->htmlBodyRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_plainTextRenderingOperation (JNIEnv * env, jobject obj, jobject msg, jstring path) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->plainTextRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->plainTextRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IMAPSession_plainTextBodyRenderingOperation (JNIEnv * env, jobject obj, jobject msg, jstring path, jboolean stripWhitespace) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->plainTextBodyRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path), (bool) stripWhitespace)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->plainTextBodyRenderingOperation(MC_FROM_JAVA(IMAPMessage, msg), MC_FROM_JAVA(String, path), (bool) stripWhitespace)); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_finalizeNative (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaOperationQueueCallback * callback = (JavaOperationQueueCallback *) MC_JAVA_NATIVE_INSTANCE->operationQueueCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(NULL); @@ -323,11 +458,13 @@ JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_finalizeNative JavaConnectionLogger * logger = (JavaConnectionLogger *) MC_JAVA_NATIVE_INSTANCE->connectionLogger(); MC_SAFE_RELEASE(logger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(NULL); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setupNativeOperationQueueListener (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaOperationQueueCallback * callback = (JavaOperationQueueCallback *) MC_JAVA_NATIVE_INSTANCE->operationQueueCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(NULL); @@ -337,11 +474,13 @@ JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setupNativeOperationQueu callback = new JavaOperationQueueCallback(env, javaListener); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(callback); } + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setupNativeConnectionLogger (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaConnectionLogger * logger = (JavaConnectionLogger *) MC_JAVA_NATIVE_INSTANCE->connectionLogger(); MC_SAFE_RELEASE(logger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(NULL); @@ -351,6 +490,7 @@ JNIEXPORT void JNICALL Java_com_libmailcore_IMAPSession_setupNativeConnectionLog logger = new JavaConnectionLogger(env, javaLogger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(logger); } + MC_POOL_END; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_IndexSet.cpp b/src/java/native/com_libmailcore_IndexSet.cpp index d38d9859..0c93f2ae 100644 --- a/src/java/native/com_libmailcore_IndexSet.cpp +++ b/src/java/native/com_libmailcore_IndexSet.cpp @@ -13,88 +13,120 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_indexSet (JNIEnv * env, jclass cls) { - return MC_TO_JAVA(IndexSet::indexSet()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IndexSet::indexSet()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_indexSetWithRange (JNIEnv * env, jclass cls, jobject range) { + MC_POOL_BEGIN; Range mcRange = rangeFromJava(env, range); - return MC_TO_JAVA(IndexSet::indexSetWithRange(mcRange)); + jobject result = MC_TO_JAVA(IndexSet::indexSetWithRange(mcRange)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_indexSetWithIndex (JNIEnv * env, jclass cls, jlong idx) { - return MC_TO_JAVA(IndexSet::indexSetWithIndex((uint64_t) idx)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(IndexSet::indexSetWithIndex((uint64_t) idx)); + MC_POOL_END; + return result; } JNIEXPORT jint JNICALL Java_com_libmailcore_IndexSet_count (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jint, count); + MC_POOL_BEGIN; + jint result = MC_JAVA_BRIDGE_GET_SCALAR(jint, count); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_addIndex (JNIEnv * env, jobject obj, jlong idx) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->addIndex((uint64_t) idx); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeIndex (JNIEnv * env, jobject obj, jlong idx) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->removeIndex((uint64_t) idx); + MC_POOL_END; } JNIEXPORT jboolean JNICALL Java_com_libmailcore_IndexSet_containsIndex (JNIEnv * env, jobject obj, jlong idx) { - return (jboolean) MC_JAVA_NATIVE_INSTANCE->containsIndex((uint64_t) idx); + MC_POOL_BEGIN; + jboolean result = (jboolean) MC_JAVA_NATIVE_INSTANCE->containsIndex((uint64_t) idx); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_addRange (JNIEnv * env, jobject obj, jobject range) { + MC_POOL_BEGIN; Range mcRange = rangeFromJava(env, range); MC_JAVA_NATIVE_INSTANCE->addRange(mcRange); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeRange (JNIEnv * env, jobject obj, jobject range) { + MC_POOL_BEGIN; Range mcRange = rangeFromJava(env, range); MC_JAVA_NATIVE_INSTANCE->removeRange(mcRange); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_intersectsRange (JNIEnv * env, jobject obj, jobject range) { + MC_POOL_BEGIN; Range mcRange = rangeFromJava(env, range); MC_JAVA_NATIVE_INSTANCE->intersectsRange(mcRange); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_addIndexSet (JNIEnv * env, jobject obj, jobject otherIndexSet) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->addIndexSet(MC_FROM_JAVA(IndexSet, otherIndexSet)); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeIndexSet (JNIEnv * env, jobject obj, jobject otherIndexSet) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->removeIndexSet(MC_FROM_JAVA(IndexSet, otherIndexSet)); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_intersectsIndexSet (JNIEnv * env, jobject obj, jobject otherIndexSet) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->intersectsIndexSet(MC_FROM_JAVA(IndexSet, otherIndexSet)); + MC_POOL_END; } JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_allRanges (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; jclass cls = env->FindClass("java/util/Vector"); jmethodID constructor = env->GetMethodID(cls, "", "(I)V"); unsigned int count = MC_JAVA_NATIVE_INSTANCE->rangesCount(); @@ -105,19 +137,25 @@ JNIEXPORT jobject JNICALL Java_com_libmailcore_IndexSet_allRanges jobject javaObject = rangeToJava(env, ranges[i]); env->CallBooleanMethod(javaVector, method, javaObject); } + MC_POOL_END; return javaVector; } JNIEXPORT jint JNICALL Java_com_libmailcore_IndexSet_rangesCount (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jint, rangesCount); + MC_POOL_BEGIN; + jint result = MC_JAVA_BRIDGE_GET_SCALAR(jint, rangesCount); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_IndexSet_removeAllIndexes (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->removeAllIndexes(); + MC_POOL_END; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_MailException.cpp b/src/java/native/com_libmailcore_MailException.cpp index 79d5ba17..87f15b2a 100644 --- a/src/java/native/com_libmailcore_MailException.cpp +++ b/src/java/native/com_libmailcore_MailException.cpp @@ -9,5 +9,8 @@ using namespace mailcore; JNIEXPORT jstring JNICALL Java_com_libmailcore_MailException_messageForErrorCode (JNIEnv * env, jclass cls, jint errorCode) { - return (jstring) MC_TO_JAVA(mailcore::errorMessageWithErrorCode((ErrorCode) errorCode)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(mailcore::errorMessageWithErrorCode((ErrorCode) errorCode)); + MC_POOL_END; + return (jstring) result; } diff --git a/src/java/native/com_libmailcore_MessageBuilder.cpp b/src/java/native/com_libmailcore_MessageBuilder.cpp index 4369f436..5e9738f6 100644 --- a/src/java/native/com_libmailcore_MessageBuilder.cpp +++ b/src/java/native/com_libmailcore_MessageBuilder.cpp @@ -18,7 +18,9 @@ MC_JAVA_SYNTHESIZE(Array, setAttachments, attachments) JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_addAttachment (JNIEnv * env, jobject obj, jobject attachment) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->addAttachment(MC_FROM_JAVA(Attachment, attachment)); + MC_POOL_END; } MC_JAVA_SYNTHESIZE(Array, setRelatedAttachments, relatedAttachments) @@ -26,7 +28,9 @@ MC_JAVA_SYNTHESIZE(Array, setRelatedAttachments, relatedAttachments) JNIEXPORT void JNICALL Java_com_libmailcore_MessageBuilder_addRelatedAttachment (JNIEnv * env, jobject obj, jobject attachment) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->addRelatedAttachment(MC_FROM_JAVA(Attachment, attachment)); + MC_POOL_END; } MC_JAVA_SYNTHESIZE_STRING(setBoundaryPrefix, boundaryPrefix) @@ -34,18 +38,25 @@ MC_JAVA_SYNTHESIZE_STRING(setBoundaryPrefix, boundaryPrefix) JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_data (JNIEnv * env, jobject obj) { - return (jbyteArray) MC_JAVA_BRIDGE_GET(data); + MC_POOL_BEGIN; + jbyteArray result = MC_JAVA_BRIDGE_GET_DATA(data); + MC_POOL_END; + return result; } JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_dataForEncryption (JNIEnv * env, jobject obj) { - return (jbyteArray) MC_JAVA_BRIDGE_GET(dataForEncryption); + MC_POOL_BEGIN; + jbyteArray result = MC_JAVA_BRIDGE_GET_DATA(dataForEncryption); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_htmlRendering (JNIEnv * env, jobject obj, jobject javaCallback) { + MC_POOL_BEGIN; JavaHTMLRendererTemplateCallback * callback = NULL; if (javaCallback != NULL) { callback = new JavaHTMLRendererTemplateCallback(env, javaCallback); @@ -54,37 +65,53 @@ JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_htmlRendering if (callback != NULL) { delete callback; } + MC_POOL_END; return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_htmlBodyRendering (JNIEnv * env, jobject obj) { - return (jstring) MC_JAVA_BRIDGE_GET(htmlBodyRendering); + MC_POOL_BEGIN; + jstring result = MC_JAVA_BRIDGE_GET_STRING(htmlBodyRendering); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_plainTextRendering (JNIEnv * env, jobject obj) { - return (jstring) MC_JAVA_NATIVE_INSTANCE->plainTextRendering(); + MC_POOL_BEGIN; + jstring result = MC_JAVA_BRIDGE_GET_STRING(plainTextRendering); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageBuilder_plainTextBodyRendering (JNIEnv * env, jobject obj, jboolean stripWhitespace) { - return (jstring) MC_JAVA_NATIVE_INSTANCE->plainTextBodyRendering((bool) stripWhitespace); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->plainTextBodyRendering((bool) stripWhitespace)); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_openPGPSignedMessageDataWithSignatureData (JNIEnv * env, jobject obj, jbyteArray signature) { - return (jbyteArray) MC_JAVA_NATIVE_INSTANCE->openPGPSignedMessageDataWithSignatureData(MC_FROM_JAVA(Data, signature)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->openPGPSignedMessageDataWithSignatureData(MC_FROM_JAVA(Data, signature))); + MC_POOL_END; + return (jbyteArray) result; } JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageBuilder_openPGPEncryptedMessageDataWithEncryptedData (JNIEnv * env, jobject obj, jbyteArray encryptedData) { - return (jbyteArray) MC_JAVA_NATIVE_INSTANCE->openPGPEncryptedMessageDataWithEncryptedData(MC_FROM_JAVA(Data, encryptedData)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->openPGPEncryptedMessageDataWithEncryptedData(MC_FROM_JAVA(Data, encryptedData))); + MC_POOL_END; + return (jbyteArray) result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_MessageHeader.cpp b/src/java/native/com_libmailcore_MessageHeader.cpp index b5774cdd..a161df0b 100644 --- a/src/java/native/com_libmailcore_MessageHeader.cpp +++ b/src/java/native/com_libmailcore_MessageHeader.cpp @@ -15,7 +15,10 @@ MC_JAVA_SYNTHESIZE_STRING(setMessageID, messageID) JNIEXPORT jboolean JNICALL Java_com_libmailcore_MessageHeader_isMessageIDAutoGenerated (JNIEnv * env, jobject obj) { - return (jboolean) MC_JAVA_NATIVE_INSTANCE->isMessageIDAutoGenerated(); + MC_POOL_BEGIN; + jboolean result = (jboolean) MC_JAVA_NATIVE_INSTANCE->isMessageIDAutoGenerated(); + MC_POOL_END; + return result; } MC_JAVA_SYNTHESIZE(Array, setReferences, references) @@ -24,25 +27,35 @@ MC_JAVA_SYNTHESIZE(Array, setInReplyTo, inReplyTo) JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_date (JNIEnv * env, jobject obj) { - return timeToJavaDate(env, MC_JAVA_NATIVE_INSTANCE->date()); + MC_POOL_BEGIN; + jobject result = timeToJavaDate(env, MC_JAVA_NATIVE_INSTANCE->date()); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setDate (JNIEnv * env, jobject obj, jobject date) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->setDate(javaDateToTime(env, date)); + MC_POOL_END; } JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_receivedDate (JNIEnv * env, jobject obj) { - return timeToJavaDate(env, MC_JAVA_NATIVE_INSTANCE->receivedDate()); + MC_POOL_BEGIN; + jobject result = timeToJavaDate(env, MC_JAVA_NATIVE_INSTANCE->receivedDate()); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setReceivedDate (JNIEnv * env, jobject obj, jobject date) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->setReceivedDate(javaDateToTime(env, date)); + MC_POOL_END; } MC_JAVA_SYNTHESIZE(Address, setSender, sender) @@ -57,55 +70,79 @@ MC_JAVA_SYNTHESIZE_STRING(setUserAgent, userAgent) JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_setExtraHeader (JNIEnv * env, jobject obj, jstring name, jstring value) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->setExtraHeader(MC_FROM_JAVA(String, name), MC_FROM_JAVA(String, value)); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_removeExtraHeader (JNIEnv * env, jobject obj, jstring name) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->removeExtraHeader(MC_FROM_JAVA(String, name)); + MC_POOL_END; } JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_extraHeaderValueForName (JNIEnv * env, jobject obj, jstring name) { - return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->extraHeaderValueForName(MC_FROM_JAVA(String, name))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->extraHeaderValueForName(MC_FROM_JAVA(String, name))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_allExtraHeadersNames (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(allExtraHeadersNames); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(allExtraHeadersNames); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_extractedSubject (JNIEnv * env, jobject obj) { - return (jstring) MC_JAVA_BRIDGE_GET(extractedSubject); + MC_POOL_BEGIN; + jstring result = MC_JAVA_BRIDGE_GET_STRING(extractedSubject); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageHeader_partialExtractedSubject (JNIEnv * env, jobject obj) { - return (jstring) MC_JAVA_BRIDGE_GET(partialExtractedSubject); + MC_POOL_BEGIN; + jstring result = MC_JAVA_BRIDGE_GET_STRING(partialExtractedSubject); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_MessageHeader_importHeadersData (JNIEnv * env, jobject obj, jbyteArray data) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->importHeadersData(MC_FROM_JAVA(Data, data)); + MC_POOL_END; } JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_replyHeader (JNIEnv * env, jobject obj, jboolean replyAll, jobject excludedRecipients) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->replyHeader(replyAll, MC_FROM_JAVA(Array, excludedRecipients))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->replyHeader(replyAll, MC_FROM_JAVA(Array, excludedRecipients))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageHeader_forwardHeader (JNIEnv * env, jobject obj) { - return (jstring) MC_JAVA_BRIDGE_GET(forwardHeader); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(forwardHeader); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_MessageParser.cpp b/src/java/native/com_libmailcore_MessageParser.cpp index 8bdec7fd..038b219d 100644 --- a/src/java/native/com_libmailcore_MessageParser.cpp +++ b/src/java/native/com_libmailcore_MessageParser.cpp @@ -14,30 +14,43 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageParser_messageParserWithData (JNIEnv * env, jclass cls, jbyteArray data) { - return MC_TO_JAVA(MessageParser::messageParserWithData(MC_FROM_JAVA(Data, data))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MessageParser::messageParserWithData(MC_FROM_JAVA(Data, data))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageParser_messageParserWithContentsOfFile (JNIEnv * env, jclass cls, jstring filename) { - return MC_TO_JAVA(MessageParser::messageParserWithContentsOfFile(MC_FROM_JAVA(String, filename))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MessageParser::messageParserWithContentsOfFile(MC_FROM_JAVA(String, filename))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_MessageParser_mainPart (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(mainPart); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(mainPart); + MC_POOL_END; + return result; } JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_MessageParser_data (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_DATA(data); + MC_POOL_BEGIN; + jbyteArray result = MC_JAVA_BRIDGE_GET_DATA(data); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_htmlRendering (JNIEnv * env, jobject obj, jobject javaCallback) { + MC_POOL_BEGIN; JavaHTMLRendererTemplateCallback * callback = NULL; if (javaCallback != NULL) { callback = new JavaHTMLRendererTemplateCallback(env, javaCallback); @@ -46,25 +59,32 @@ JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_htmlRendering if (callback != NULL) { delete callback; } + MC_POOL_END; return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_htmlBodyRendering (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; return MC_JAVA_BRIDGE_GET_STRING(htmlBodyRendering); + MC_POOL_END; } JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_plainTextRendering (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; return MC_JAVA_BRIDGE_GET_STRING(plainTextRendering); + MC_POOL_END; } JNIEXPORT jstring JNICALL Java_com_libmailcore_MessageParser_plainTextBodyRendering (JNIEnv * env, jobject obj, jboolean stripWhitespace) { + MC_POOL_BEGIN; return (jstring) MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->plainTextBodyRendering((bool) stripWhitespace)); + MC_POOL_END; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_NNTPFetchAllArticlesOperation.cpp b/src/java/native/com_libmailcore_NNTPFetchAllArticlesOperation.cpp index dcde1424..49bb4e79 100644 --- a/src/java/native/com_libmailcore_NNTPFetchAllArticlesOperation.cpp +++ b/src/java/native/com_libmailcore_NNTPFetchAllArticlesOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPFetchAllArticlesOperation_articles (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(articles); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(articles); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_NNTPFetchArticleOperation.cpp b/src/java/native/com_libmailcore_NNTPFetchArticleOperation.cpp index 12b43c95..87c444df 100644 --- a/src/java/native/com_libmailcore_NNTPFetchArticleOperation.cpp +++ b/src/java/native/com_libmailcore_NNTPFetchArticleOperation.cpp @@ -14,7 +14,10 @@ using namespace mailcore; JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_NNTPFetchArticleOperation_data (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_DATA(data); + MC_POOL_BEGIN; + jbyteArray result = MC_JAVA_BRIDGE_GET_DATA(data); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_NNTPFetchHeaderOperation.cpp b/src/java/native/com_libmailcore_NNTPFetchHeaderOperation.cpp index 5920fad6..28acdfe7 100644 --- a/src/java/native/com_libmailcore_NNTPFetchHeaderOperation.cpp +++ b/src/java/native/com_libmailcore_NNTPFetchHeaderOperation.cpp @@ -14,7 +14,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPFetchHeaderOperation_header (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(header); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(header); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_NNTPFetchOverviewOperation.cpp b/src/java/native/com_libmailcore_NNTPFetchOverviewOperation.cpp index bc908c7b..f3c61816 100644 --- a/src/java/native/com_libmailcore_NNTPFetchOverviewOperation.cpp +++ b/src/java/native/com_libmailcore_NNTPFetchOverviewOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPFetchOverviewOperation_articles (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(articles); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(articles); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_NNTPFetchServerTimeOperation.cpp b/src/java/native/com_libmailcore_NNTPFetchServerTimeOperation.cpp index 76e48e92..ed7e27fe 100644 --- a/src/java/native/com_libmailcore_NNTPFetchServerTimeOperation.cpp +++ b/src/java/native/com_libmailcore_NNTPFetchServerTimeOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPFetchServerTimeOperation_time (JNIEnv * env, jobject obj) { - return timeToJavaDate(env, MC_JAVA_NATIVE_INSTANCE->time()); + MC_POOL_BEGIN; + jobject result = timeToJavaDate(env, MC_JAVA_NATIVE_INSTANCE->time()); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_NNTPListNewsgroupsOperation.cpp b/src/java/native/com_libmailcore_NNTPListNewsgroupsOperation.cpp index f59de7b5..5279942c 100644 --- a/src/java/native/com_libmailcore_NNTPListNewsgroupsOperation.cpp +++ b/src/java/native/com_libmailcore_NNTPListNewsgroupsOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPListNewsgroupsOperation_groups (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(groups); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(groups); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_NNTPOperation.cpp b/src/java/native/com_libmailcore_NNTPOperation.cpp index 42758163..471b28bf 100644 --- a/src/java/native/com_libmailcore_NNTPOperation.cpp +++ b/src/java/native/com_libmailcore_NNTPOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jint JNICALL Java_com_libmailcore_NNTPOperation_errorCode (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jint, error); + MC_POOL_BEGIN; + jint result = MC_JAVA_BRIDGE_GET_SCALAR(jint, error); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_NNTPSession.cpp b/src/java/native/com_libmailcore_NNTPSession.cpp index 98b33ec8..02889140 100644 --- a/src/java/native/com_libmailcore_NNTPSession.cpp +++ b/src/java/native/com_libmailcore_NNTPSession.cpp @@ -23,78 +23,114 @@ MC_JAVA_SYNTHESIZE_SCALAR(jboolean, bool, setCheckCertificateEnabled, isCheckCer JNIEXPORT jboolean JNICALL Java_com_libmailcore_NNTPSession_isOperationQueueRunning (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isOperationQueueRunning); + MC_POOL_BEGIN; + jboolean result = MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isOperationQueueRunning); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_NNTPSession_cancelAllOperations (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->cancelAllOperations(); + MC_POOL_END; } JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPSession_fetchAllArticlesOperation (JNIEnv * env, jobject obj, jstring group) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchAllArticlesOperation(MC_FROM_JAVA(String, group))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchAllArticlesOperation(MC_FROM_JAVA(String, group))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPSession_fetchHeaderOperation (JNIEnv * env, jobject obj, jstring group, jint idx) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchHeaderOperation(MC_FROM_JAVA(String, group), (unsigned int) idx)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchHeaderOperation(MC_FROM_JAVA(String, group), (unsigned int) idx)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPSession_fetchArticleOperation (JNIEnv * env, jobject obj, jstring group, jint idx) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchArticleOperation(MC_FROM_JAVA(String, group), (unsigned int) idx)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchArticleOperation(MC_FROM_JAVA(String, group), (unsigned int) idx)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPSession_fetchArticleByMessageIDOperation (JNIEnv * env, jobject obj, jstring group, jstring messageID) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchArticleByMessageIDOperation(MC_FROM_JAVA(String, group), MC_FROM_JAVA(String, messageID))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchArticleByMessageIDOperation(MC_FROM_JAVA(String, group), MC_FROM_JAVA(String, messageID))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPSession_fetchOverviewOperationWithIndexes (JNIEnv * env, jobject obj, jstring group, jobject indexes) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchOverviewOperationWithIndexes(MC_FROM_JAVA(String, group), MC_FROM_JAVA(IndexSet, indexes))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchOverviewOperationWithIndexes(MC_FROM_JAVA(String, group), MC_FROM_JAVA(IndexSet, indexes))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPSession_fetchServerDateOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchServerDateOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchServerDateOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPSession_listAllNewsgroupsOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->listDefaultNewsgroupsOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->listDefaultNewsgroupsOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPSession_listDefaultNewsgroupsOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->listDefaultNewsgroupsOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->listDefaultNewsgroupsOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPSession_disconnectOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->disconnectOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->disconnectOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_NNTPSession_checkAccountOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->checkAccountOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->checkAccountOperation()); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_NNTPSession_finalizeNative (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaOperationQueueCallback * callback = (JavaOperationQueueCallback *) MC_JAVA_NATIVE_INSTANCE->operationQueueCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(NULL); @@ -102,11 +138,13 @@ JNIEXPORT void JNICALL Java_com_libmailcore_NNTPSession_finalizeNative JavaConnectionLogger * logger = (JavaConnectionLogger *) MC_JAVA_NATIVE_INSTANCE->connectionLogger(); MC_SAFE_RELEASE(logger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(NULL); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_NNTPSession_setupNativeOperationQueueListener (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaOperationQueueCallback * callback = (JavaOperationQueueCallback *) MC_JAVA_NATIVE_INSTANCE->operationQueueCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(NULL); @@ -116,11 +154,13 @@ JNIEXPORT void JNICALL Java_com_libmailcore_NNTPSession_setupNativeOperationQueu callback = new JavaOperationQueueCallback(env, javaListener); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(callback); } + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_NNTPSession_setupNativeConnectionLogger (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaConnectionLogger * logger = (JavaConnectionLogger *) MC_JAVA_NATIVE_INSTANCE->connectionLogger(); MC_SAFE_RELEASE(logger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(NULL); @@ -130,6 +170,7 @@ JNIEXPORT void JNICALL Java_com_libmailcore_NNTPSession_setupNativeConnectionLog logger = new JavaConnectionLogger(env, javaLogger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(logger); } + MC_POOL_END; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_NativeObject.cpp b/src/java/native/com_libmailcore_NativeObject.cpp index afe9a428..2a9ac116 100644 --- a/src/java/native/com_libmailcore_NativeObject.cpp +++ b/src/java/native/com_libmailcore_NativeObject.cpp @@ -19,37 +19,51 @@ JNIEXPORT void JNICALL Java_com_libmailcore_NativeObject_initWithNative JNIEXPORT void JNICALL Java_com_libmailcore_NativeObject_unsetupNative (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; Object * mcObj = (Object *) getHandle(env, obj); MC_SAFE_RELEASE(mcObj); setHandle(env, obj, NULL); + MC_POOL_END; } JNIEXPORT jstring JNICALL Java_com_libmailcore_NativeObject_toString (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; + jstring result = NULL; Object * mcObj = (Object *) getHandle(env, obj); if (mcObj == NULL) { - return (jstring) MC_TO_JAVA(MCSTR("")); + result = (jstring) MC_TO_JAVA(MCSTR("")); } else { - return MC_JAVA_BRIDGE_GET_STRING(description); + result = MC_JAVA_BRIDGE_GET_STRING(description); } + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_NativeObject_clone (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_FROM_JAVA(Object, obj)->copy()->autorelease()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_FROM_JAVA(Object, obj)->copy()->autorelease()); + MC_POOL_END; + return result; } JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_NativeObject_serializableData (JNIEnv * env, jobject obj) { - return (jbyteArray) MC_TO_JAVA(JSON::objectToJSONData(MC_JAVA_NATIVE_INSTANCE->serializable())); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(JSON::objectToJSONData(MC_JAVA_NATIVE_INSTANCE->serializable())); + MC_POOL_END; + return (jbyteArray) result; } JNIEXPORT void JNICALL Java_com_libmailcore_NativeObject_importSerializableData (JNIEnv * env, jobject obj, jbyteArray data) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->importSerializable((HashMap *) JSON::objectFromJSONData(MC_FROM_JAVA(Data, data))); + MC_POOL_END; } diff --git a/src/java/native/com_libmailcore_Operation.cpp b/src/java/native/com_libmailcore_Operation.cpp index dfd8c64c..08d518b6 100644 --- a/src/java/native/com_libmailcore_Operation.cpp +++ b/src/java/native/com_libmailcore_Operation.cpp @@ -44,21 +44,28 @@ private: JNIEXPORT void JNICALL Java_com_libmailcore_Operation_cancel (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->cancel(); + MC_POOL_END; } JNIEXPORT jboolean JNICALL Java_com_libmailcore_Operation_isCancelled (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isCancelled); + MC_POOL_BEGIN; + jboolean result = MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isCancelled); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_Operation_nativeStart (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaOperationCallback * callback = new JavaOperationCallback(env, obj); MC_JAVA_NATIVE_INSTANCE->setCallback(callback); MC_JAVA_NATIVE_INSTANCE->start(); + MC_POOL_END; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_POPFetchHeaderOperation.cpp b/src/java/native/com_libmailcore_POPFetchHeaderOperation.cpp index 8b5a9598..8c1855fa 100644 --- a/src/java/native/com_libmailcore_POPFetchHeaderOperation.cpp +++ b/src/java/native/com_libmailcore_POPFetchHeaderOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_POPFetchHeaderOperation_header (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(header); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(header); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_POPFetchMessageOperation.cpp b/src/java/native/com_libmailcore_POPFetchMessageOperation.cpp index ad2babbc..fe7393c3 100644 --- a/src/java/native/com_libmailcore_POPFetchMessageOperation.cpp +++ b/src/java/native/com_libmailcore_POPFetchMessageOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jbyteArray JNICALL Java_com_libmailcore_POPFetchMessageOperation_data (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_DATA(data); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET_DATA(data); + MC_POOL_END; + return (jbyteArray) result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_POPFetchMessagesOperation.cpp b/src/java/native/com_libmailcore_POPFetchMessagesOperation.cpp index 3c267556..06d21300 100644 --- a/src/java/native/com_libmailcore_POPFetchMessagesOperation.cpp +++ b/src/java/native/com_libmailcore_POPFetchMessagesOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_POPFetchMessagesOperation_messages (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET(messages); + MC_POOL_BEGIN; + jobject result = MC_JAVA_BRIDGE_GET(messages); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_POPOperation.cpp b/src/java/native/com_libmailcore_POPOperation.cpp index 0a801330..1d412641 100644 --- a/src/java/native/com_libmailcore_POPOperation.cpp +++ b/src/java/native/com_libmailcore_POPOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jint JNICALL Java_com_libmailcore_POPOperation_errorCode (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jint, error); + MC_POOL_BEGIN; + jint result = MC_JAVA_BRIDGE_GET_SCALAR(jint, error); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_POPSession.cpp b/src/java/native/com_libmailcore_POPSession.cpp index 0b8eed3f..f0dbfd40 100644 --- a/src/java/native/com_libmailcore_POPSession.cpp +++ b/src/java/native/com_libmailcore_POPSession.cpp @@ -24,60 +24,87 @@ MC_JAVA_SYNTHESIZE_SCALAR(jboolean, bool, setCheckCertificateEnabled, isCheckCer JNIEXPORT jboolean JNICALL Java_com_libmailcore_POPSession_isOperationQueueRunning (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isOperationQueueRunning); + MC_POOL_BEGIN; + jboolean result = MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isOperationQueueRunning); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_POPSession_cancelAllOperations (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->cancelAllOperations(); + MC_POOL_END; } JNIEXPORT jobject JNICALL Java_com_libmailcore_POPSession_fetchMessagesOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessagesOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessagesOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_POPSession_fetchHeaderOperation (JNIEnv * env, jobject obj, jint idx) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchHeaderOperation((unsigned int) idx)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchHeaderOperation((unsigned int) idx)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_POPSession_fetchMessageOperation (JNIEnv * env, jobject obj, jint idx) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageOperation((unsigned int) idx)); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->fetchMessageOperation((unsigned int) idx)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_POPSession_deleteMessagesOperation (JNIEnv * env, jobject obj, jobject indexes) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->deleteMessagesOperation(MC_FROM_JAVA(IndexSet, indexes))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->deleteMessagesOperation(MC_FROM_JAVA(IndexSet, indexes))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_POPSession_disconnectOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->disconnectOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->disconnectOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_POPSession_checkAccountOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->checkAccountOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->checkAccountOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_POPSession_noopOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->noopOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->noopOperation()); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_POPSession_finalizeNative (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaOperationQueueCallback * callback = (JavaOperationQueueCallback *) MC_JAVA_NATIVE_INSTANCE->operationQueueCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(NULL); @@ -85,11 +112,13 @@ JNIEXPORT void JNICALL Java_com_libmailcore_POPSession_finalizeNative JavaConnectionLogger * logger = (JavaConnectionLogger *) MC_JAVA_NATIVE_INSTANCE->connectionLogger(); MC_SAFE_RELEASE(logger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(NULL); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_POPSession_setupNativeOperationQueueListener (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaOperationQueueCallback * callback = (JavaOperationQueueCallback *) MC_JAVA_NATIVE_INSTANCE->operationQueueCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(NULL); @@ -99,11 +128,13 @@ JNIEXPORT void JNICALL Java_com_libmailcore_POPSession_setupNativeOperationQueue callback = new JavaOperationQueueCallback(env, javaListener); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(callback); } + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_POPSession_setupNativeConnectionLogger (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaConnectionLogger * logger = (JavaConnectionLogger *) MC_JAVA_NATIVE_INSTANCE->connectionLogger(); MC_SAFE_RELEASE(logger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(NULL); @@ -113,6 +144,7 @@ JNIEXPORT void JNICALL Java_com_libmailcore_POPSession_setupNativeConnectionLogg logger = new JavaConnectionLogger(env, javaLogger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(logger); } + MC_POOL_END; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_Range.cpp b/src/java/native/com_libmailcore_Range.cpp index a1d657b9..7d4b0921 100644 --- a/src/java/native/com_libmailcore_Range.cpp +++ b/src/java/native/com_libmailcore_Range.cpp @@ -10,58 +10,82 @@ using namespace mailcore; JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_removeRange (JNIEnv * env, jobject obj, jobject range) { + MC_POOL_BEGIN; Range mcRange = rangeFromJava(env, obj); Range otherRange = rangeFromJava(env, range); - return MC_TO_JAVA(RangeRemoveRange(mcRange, otherRange)); + jobject result = MC_TO_JAVA(RangeRemoveRange(mcRange, otherRange)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_union (JNIEnv * env, jobject obj, jobject range) { + MC_POOL_BEGIN; Range mcRange = rangeFromJava(env, obj); Range otherRange = rangeFromJava(env, range); - return MC_TO_JAVA(RangeUnion(mcRange, otherRange)); + jobject result = MC_TO_JAVA(RangeUnion(mcRange, otherRange)); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_intersection (JNIEnv * env, jobject obj, jobject range) { + MC_POOL_BEGIN; Range mcRange = rangeFromJava(env, obj); Range otherRange = rangeFromJava(env, range); - return rangeToJava(env, RangeIntersection(mcRange, otherRange)); + jobject result = rangeToJava(env, RangeIntersection(mcRange, otherRange)); + MC_POOL_END; + return result; } JNIEXPORT jboolean JNICALL Java_com_libmailcore_Range_hasIntersection (JNIEnv * env, jobject obj, jobject range) { + MC_POOL_BEGIN; Range mcRange = rangeFromJava(env, obj); Range otherRange = rangeFromJava(env, range); - return (jboolean) RangeHasIntersection(mcRange, otherRange); + jboolean result = (jboolean) RangeHasIntersection(mcRange, otherRange); + MC_POOL_END; + return result; } JNIEXPORT jlong JNICALL Java_com_libmailcore_Range_leftBound (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; Range mcRange = rangeFromJava(env, obj); - return (jlong) RangeLeftBound(mcRange); + jlong result = (jlong) RangeLeftBound(mcRange); + MC_POOL_END; + return result; } JNIEXPORT jlong JNICALL Java_com_libmailcore_Range_rightBound (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; Range mcRange = rangeFromJava(env, obj); - return (jlong) RangeRightBound(mcRange); + jlong result = (jlong) RangeRightBound(mcRange); + MC_POOL_END; + return result; } JNIEXPORT jstring JNICALL Java_com_libmailcore_Range_toString (JNIEnv * env, jobject obj) { - return (jstring) MC_TO_JAVA(RangeToString(rangeFromJava(env, obj))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(RangeToString(rangeFromJava(env, obj))); + MC_POOL_END; + return (jstring) result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_Range_rangeWithString (JNIEnv * env, jclass cls, jstring rangeString) { + MC_POOL_BEGIN; Range mcRange = RangeFromString(MC_FROM_JAVA(String, rangeString)); - return rangeToJava(env, mcRange); + jobject result = rangeToJava(env, mcRange); + MC_POOL_END; + return result; } diff --git a/src/java/native/com_libmailcore_SMTPOperation.cpp b/src/java/native/com_libmailcore_SMTPOperation.cpp index 78eb325b..1f70eda8 100644 --- a/src/java/native/com_libmailcore_SMTPOperation.cpp +++ b/src/java/native/com_libmailcore_SMTPOperation.cpp @@ -13,7 +13,10 @@ using namespace mailcore; JNIEXPORT jint JNICALL Java_com_libmailcore_SMTPOperation_errorCode (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jint, error); + MC_POOL_BEGIN; + jint result = MC_JAVA_BRIDGE_GET_SCALAR(jint, error); + MC_POOL_END; + return result; } MC_JAVA_BRIDGE diff --git a/src/java/native/com_libmailcore_SMTPSession.cpp b/src/java/native/com_libmailcore_SMTPSession.cpp index 80057e5e..0d43014c 100644 --- a/src/java/native/com_libmailcore_SMTPSession.cpp +++ b/src/java/native/com_libmailcore_SMTPSession.cpp @@ -26,48 +26,69 @@ MC_JAVA_SYNTHESIZE_SCALAR(jboolean, bool, setUseHeloIPEnabled, useHeloIPEnabled) JNIEXPORT jboolean JNICALL Java_com_libmailcore_SMTPSession_isOperationQueueRunning (JNIEnv * env, jobject obj) { - return MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isOperationQueueRunning); + MC_POOL_BEGIN; + jboolean result = MC_JAVA_BRIDGE_GET_SCALAR(jboolean, isOperationQueueRunning); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_SMTPSession_cancelAllOperations (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; MC_JAVA_NATIVE_INSTANCE->cancelAllOperations(); + MC_POOL_END; } JNIEXPORT jobject JNICALL Java_com_libmailcore_SMTPSession_loginOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->loginOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->loginOperation()); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_SMTPSession_sendMessageOperation___3B (JNIEnv * env, jobject obj, jbyteArray data) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->sendMessageOperation(MC_FROM_JAVA(Data, data))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->sendMessageOperation(MC_FROM_JAVA(Data, data))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_SMTPSession_sendMessageOperation__Lcom_libmailcore_Address_2Ljava_util_List_2_3B (JNIEnv * env, jobject obj, jobject from, jobject recipients, jbyteArray data) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->sendMessageOperation(MC_FROM_JAVA(Address, from), MC_FROM_JAVA(Array, recipients), MC_FROM_JAVA(Data, data))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->sendMessageOperation(MC_FROM_JAVA(Address, from), MC_FROM_JAVA(Array, recipients), MC_FROM_JAVA(Data, data))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_SMTPSession_checkAccountOperation (JNIEnv * env, jobject obj, jobject address) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->checkAccountOperation(MC_FROM_JAVA(Address, address))); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->checkAccountOperation(MC_FROM_JAVA(Address, address))); + MC_POOL_END; + return result; } JNIEXPORT jobject JNICALL Java_com_libmailcore_SMTPSession_noopOperation (JNIEnv * env, jobject obj) { - return MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->noopOperation()); + MC_POOL_BEGIN; + jobject result = MC_TO_JAVA(MC_JAVA_NATIVE_INSTANCE->noopOperation()); + MC_POOL_END; + return result; } JNIEXPORT void JNICALL Java_com_libmailcore_SMTPSession_finalizeNative (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaOperationQueueCallback * callback = (JavaOperationQueueCallback *) MC_JAVA_NATIVE_INSTANCE->operationQueueCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(NULL); @@ -75,11 +96,13 @@ JNIEXPORT void JNICALL Java_com_libmailcore_SMTPSession_finalizeNative JavaConnectionLogger * logger = (JavaConnectionLogger *) MC_JAVA_NATIVE_INSTANCE->connectionLogger(); MC_SAFE_RELEASE(logger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(NULL); + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_SMTPSession_setupNativeOperationQueueListener (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaOperationQueueCallback * callback = (JavaOperationQueueCallback *) MC_JAVA_NATIVE_INSTANCE->operationQueueCallback(); MC_SAFE_RELEASE(callback); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(NULL); @@ -89,11 +112,13 @@ JNIEXPORT void JNICALL Java_com_libmailcore_SMTPSession_setupNativeOperationQueu callback = new JavaOperationQueueCallback(env, javaListener); MC_JAVA_NATIVE_INSTANCE->setOperationQueueCallback(callback); } + MC_POOL_END; } JNIEXPORT void JNICALL Java_com_libmailcore_SMTPSession_setupNativeConnectionLogger (JNIEnv * env, jobject obj) { + MC_POOL_BEGIN; JavaConnectionLogger * logger = (JavaConnectionLogger *) MC_JAVA_NATIVE_INSTANCE->connectionLogger(); MC_SAFE_RELEASE(logger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(NULL); @@ -103,6 +128,7 @@ JNIEXPORT void JNICALL Java_com_libmailcore_SMTPSession_setupNativeConnectionLog logger = new JavaConnectionLogger(env, javaLogger); MC_JAVA_NATIVE_INSTANCE->setConnectionLogger(logger); } + MC_POOL_END; } MC_JAVA_BRIDGE -- cgit v1.2.3