From ff435e2a7d7572402ba8f78a51085e76bbe0dd14 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 13 Dec 2012 12:13:12 +0000 Subject: [PATCH] dvm: Add some more helper macros --- gst-libs/gst/dvm/gst-dvm.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gst-libs/gst/dvm/gst-dvm.h b/gst-libs/gst/dvm/gst-dvm.h index e3f15fd..5905d81 100644 --- a/gst-libs/gst/dvm/gst-dvm.h +++ b/gst-libs/gst/dvm/gst-dvm.h @@ -71,6 +71,14 @@ return FALSE; \ } +#define GST_DVM_GET_STATIC_FIELD(k, field, signature) \ + k.field = (*env)->GetStaticFieldID (env, k.klass, #field, signature); \ + if (!k.field) { \ + (*env)->ExceptionClear (env); \ + GST_ERROR ("Failed to get static field %s for %s", #field, #k); \ + return FALSE; \ + } + #define GST_DVM_GET_FIELD(k, field, signature) \ k.field = (*env)->GetFieldID (env, k.klass, #field, signature); \ if (!k.field) { \ @@ -114,7 +122,23 @@ error_statement; \ } +#define GST_DVM_FIELD(error_statement, obj, type, k, field) \ + (*env)->Get##type##Field (env, obj, k.field); \ + if ((*env)->ExceptionCheck (env)) { \ + GST_ERROR ("Failed to get Java field"); \ + (*env)->ExceptionDescribe (env); \ + (*env)->ExceptionClear (env); \ + error_statement; \ + } +#define GST_DVM_STATIC_FIELD(error_statement, type, k, field) \ + (*env)->Get##type##Field (env, k.klass, k.field); \ + if ((*env)->ExceptionCheck (env)) { \ + GST_ERROR ("Failed to get Java static field"); \ + (*env)->ExceptionDescribe (env); \ + (*env)->ExceptionClear (env); \ + error_statement; \ + } JNIEnv *gst_dvm_get_env (void); gboolean gst_dvm_init (void); -- 2.7.4