[Java-gnome-developer] GConf get* errors and patch
Brought to you by:
afcowie
From: James L. <jl...@um...> - 2005-05-05 17:33:20
|
Hello, I was having an error with GConf giving me errors. I outlined the problem in this post: http://article.gmane.org/gmane.comp.gnome.lib.gconf/782 Mr. McLoughlin replied explaining about how GConf expects GError* to be NULL, but looking at org_gnu_gconf_ConfClient.c, I saw that that was not the case. I changed the pointers to NULL and I no longer get any problems. Here is the patch to libgconf-java HEAD: diff -u -r1.14 org_gnu_gconf_ConfClient.c --- src/jni/org_gnu_gconf_ConfClient.c 23 Apr 2005 01:40:31 -0000 1.14 +++ src/jni/org_gnu_gconf_ConfClient.c 5 May 2005 17:17:56 -0000 @@ -47,7 +47,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, dir, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gconf_client_add_dir(client_g, str, (GConfClientPreloadType)preload, &err); (*env)->ReleaseStringUTFChars(env, dir, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -64,7 +64,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, dir, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gconf_client_remove_dir(client_g, str, &err); (*env)->ReleaseStringUTFChars(env, dir, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -101,7 +101,7 @@ GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); static jmethodID methodID = NULL; jclass cls = (*env)->GetObjectClass(env, obj); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gchar *str = (gchar*)(*env)->GetStringUTFChars(env, namespace, NULL); NotifyData *data; guint ret; @@ -155,7 +155,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, dir, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gconf_client_preload(client_g, str, (GConfClientPreloadType)type, &err); (*env)->ReleaseStringUTFChars(env, dir, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -173,7 +173,7 @@ GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); GConfValue* val_g = (GConfValue*)getPointerFromHandle(env, val); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gconf_client_set(client_g, str, val_g, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -190,7 +190,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; GConfValue* val = gconf_client_get(client_g, str, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -208,7 +208,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; GConfValue* val = gconf_client_get_without_default(client_g, str, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -227,7 +227,7 @@ GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str1 = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); gchar *str2 = (gchar*)(*env)->GetStringUTFChars(env, locale, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; GConfEntry* val = gconf_client_get_entry(client_g, str1, str2, (gboolean)schemaDefault, &err); (*env)->ReleaseStringUTFChars(env, key, str1); (*env)->ReleaseStringUTFChars(env, locale, str2); @@ -246,7 +246,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; GConfValue* val = gconf_client_get_default_from_schema(client_g, str, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -264,7 +264,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gboolean val = gconf_client_unset(client_g, str, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -282,7 +282,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, dir, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; GSList* val = gconf_client_all_entries(client_g, str, &err); if (NULL == val) return NULL; @@ -302,7 +302,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, dir, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; GSList* val = gconf_client_all_dirs(client_g, str, &err); int i = 0; guint len; @@ -335,7 +335,7 @@ (JNIEnv *env, jclass cls, jobject client, jintArray exception) { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gconf_client_suggest_sync(client_g, &err); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); } @@ -349,7 +349,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, dir, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gboolean val = gconf_client_dir_exists(client_g, str, &err); (*env)->ReleaseStringUTFChars(env, dir, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -367,7 +367,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gdouble val = gconf_client_get_float(client_g, str, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -385,7 +385,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gint val = gconf_client_get_int(client_g, str, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -420,7 +420,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gboolean val = gconf_client_get_bool(client_g, str, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -438,7 +438,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; GConfSchema* val = gconf_client_get_schema(client_g, str, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -456,7 +456,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; GConfValueType vt = (GConfValueType)type; GSList* val = gconf_client_get_list(client_g, str, vt, &err); int i = 0; @@ -530,7 +530,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gpointer carloc = (gpointer)(*env)->GetIntArrayElements(env, car, NULL); gpointer cdrloc = (gpointer)(*env)->GetIntArrayElements(env, cdr, NULL); gboolean val = gconf_client_get_pair(client_g, str, (GConfValueType)carType, @@ -553,7 +553,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gboolean ret = gconf_client_set_float(client_g, str, (gdouble)val, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -571,7 +571,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gboolean ret = gconf_client_set_int(client_g, str, (gint)val, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -590,7 +590,7 @@ GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str1 = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); gchar *str2 = (gchar*)(*env)->GetStringUTFChars(env, val, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gboolean ret = gconf_client_set_string(client_g, str1, str2, &err); (*env)->ReleaseStringUTFChars(env, key, str1); (*env)->ReleaseStringUTFChars(env, key, str2); @@ -609,7 +609,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gboolean ret = gconf_client_set_bool(client_g, str, (gboolean)val, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -628,7 +628,7 @@ GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); GConfSchema* val_g = (GConfSchema*)getPointerFromHandle(env, val); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gboolean ret = gconf_client_set_schema(client_g, str, val_g, &err); (*env)->ReleaseStringUTFChars(env, key, str); (*env)->ReleaseIntArrayElements(env, exception, (jint*)err, 0); @@ -646,7 +646,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; GConfValueType vt = (GConfValueType)type; int i = 0; jclass aCls = NULL; @@ -722,7 +722,7 @@ { GConfClient* client_g = (GConfClient*)getPointerFromHandle(env, client); gchar *str = (gchar*)(*env)->GetStringUTFChars(env, key, NULL); - GError* err = (GError*)(*env)->GetIntArrayElements(env, exception, NULL); + GError* err = NULL; gboolean ret = gconf_client_set_pair(client_g, str, (GConfValueType)carType, (GConfValueType)cdrType, (gconstpointer)car, (gconstpointer)cdr, &err); (*env)->ReleaseStringUTFChars(env, key, str); |