From af25831c2e904c80cdc3df827c19ec1551b1eaed Mon Sep 17 00:00:00 2001 From: "edburns%acm.org" Date: Sun, 11 Apr 2004 01:09:03 +0000 Subject: [PATCH] M webclient/build-tests.xml - re-activate some tests M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/PreferencesImpl.java - Make null an acceptable argument for prefValue. Make it mean, remove the pref. M webclient/src_moz/PreferencesImpl.cpp - make a null prefValue argument to nativeSetUnicharPref mean, ClearPref(). git-svn-id: svn://10.0.0.236/trunk@154682 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/java/webclient/build-tests.xml | 2 +- .../impl/wrapper_native/PreferencesImpl.java | 6 ++-- .../webclient/src_moz/PreferencesImpl.cpp | 32 +++++++++++-------- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/mozilla/java/webclient/build-tests.xml b/mozilla/java/webclient/build-tests.xml index 00ac8428b17..2eb6cf58d08 100644 --- a/mozilla/java/webclient/build-tests.xml +++ b/mozilla/java/webclient/build-tests.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/PreferencesImpl.java b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/PreferencesImpl.java index 542ced66e40..85dde3e00fb 100644 --- a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/PreferencesImpl.java +++ b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/PreferencesImpl.java @@ -106,9 +106,6 @@ public void setPref(String prefName, String prefValue) if (null == prefName) { return; } - if (null == prefValue) { - return; - } // determine the type of pref value: String, boolean, integer try { Integer intVal = Integer.valueOf(prefValue); @@ -116,7 +113,8 @@ public void setPref(String prefName, String prefValue) } catch (NumberFormatException e) { // it's not an integer - if (prefValue.equals("true") || prefValue.equals("false")) { + if (null != prefValue && + (prefValue.equals("true") || prefValue.equals("false"))) { Boolean boolVal = Boolean.valueOf(prefValue); nativeSetBoolPref(getWrapperFactory().getNativeContext(), prefName, boolVal.booleanValue()); diff --git a/mozilla/java/webclient/src_moz/PreferencesImpl.cpp b/mozilla/java/webclient/src_moz/PreferencesImpl.cpp index 679f9ea7784..e9e086dfb34 100644 --- a/mozilla/java/webclient/src_moz/PreferencesImpl.cpp +++ b/mozilla/java/webclient/src_moz/PreferencesImpl.cpp @@ -111,22 +111,28 @@ Java_org_mozilla_webclient_impl_wrapper_1native_PreferencesImpl_nativeSetUnichar const char * prefNameChars = (char *)::util_GetStringUTFChars(env, prefName); - const jchar * prefValueChars = (jchar *)::util_GetStringChars(env, - prefValue); - if (nsnull == prefNameChars) { - ::util_ThrowExceptionToJava(env, "nativeSetUnicharPref: unable to extract Java string for pref name"); - rv = NS_ERROR_NULL_POINTER; - goto OMWIWNPINSUP_CLEANUP; + const jchar * prefValueChars = nsnull; + if (nsnull != prefValue) { + prefValueChars = + (jchar *)::util_GetStringChars(env, prefValue); + if (nsnull == prefNameChars) { + ::util_ThrowExceptionToJava(env, "nativeSetUnicharPref: unable to extract Java string for pref name"); + rv = NS_ERROR_NULL_POINTER; + goto OMWIWNPINSUP_CLEANUP; + } + if (nsnull == prefValueChars) { + ::util_ThrowExceptionToJava(env, "nativeSetUnicharPref: unable to extract Java string for pref value"); + rv = NS_ERROR_NULL_POINTER; + goto OMWIWNPINSUP_CLEANUP; + } + + rv = prefs->SetUnicharPref(prefNameChars, + (const PRUnichar *) prefValueChars); } - if (nsnull == prefValueChars) { - ::util_ThrowExceptionToJava(env, "nativeSetUnicharPref: unable to extract Java string for pref value"); - rv = NS_ERROR_NULL_POINTER; - goto OMWIWNPINSUP_CLEANUP; + else { + rv = prefs->ClearUserPref(prefNameChars); } - rv = prefs->SetUnicharPref(prefNameChars, - (const PRUnichar *) prefValueChars); - OMWIWNPINSUP_CLEANUP: ::util_ReleaseStringUTFChars(env, prefName, prefNameChars);