Denis Sharypov <sdv@sparc.spb.su> implemented DOMExceptions
git-svn-id: svn://10.0.0.236/trunk@49023 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
a3615e55f8
commit
143c1894fc
@ -58,17 +58,8 @@ jclass JavaDOMGlobals::domExceptionClass = NULL;
|
||||
jmethodID JavaDOMGlobals::domExceptionInitMID = NULL;
|
||||
jclass JavaDOMGlobals::runtimeExceptionClass = NULL;
|
||||
jmethodID JavaDOMGlobals::runtimeExceptionInitMID = NULL;
|
||||
jshort JavaDOMGlobals::exceptionCodeIndexSize = 0;
|
||||
jshort JavaDOMGlobals::exceptionCodeDomStringSize = 0;
|
||||
jshort JavaDOMGlobals::exceptionCodeHierarchyRequest = 0;
|
||||
jshort JavaDOMGlobals::exceptionCodeWrongDocument = 0;
|
||||
jshort JavaDOMGlobals::exceptionCodeInvalidCharacter = 0;
|
||||
jshort JavaDOMGlobals::exceptionCodeNoDataAllowed = 0;
|
||||
jshort JavaDOMGlobals::exceptionCodeNoModificationAllowed = 0;
|
||||
jshort JavaDOMGlobals::exceptionCodeNotFound = 0;
|
||||
jshort JavaDOMGlobals::exceptionCodeNotSupported = 0;
|
||||
jshort JavaDOMGlobals::exceptionCodeInuseAttribute = 0;
|
||||
const char* const JavaDOMGlobals::exceptionMessage[] =
|
||||
|
||||
const char* const JavaDOMGlobals::DOM_EXCEPTION_MESSAGE[] =
|
||||
{"Invalid DOM error code",
|
||||
"Index is out of bounds",
|
||||
"Could not fit text",
|
||||
@ -226,8 +217,6 @@ void JavaDOMGlobals::Initialize(JNIEnv *env)
|
||||
textClass = (jclass) env->NewGlobalRef(textClass);
|
||||
if (!textClass) return;
|
||||
|
||||
// caching DOMException class, init and field IDs
|
||||
|
||||
domExceptionClass = env->FindClass("org/mozilla/dom/DOMExceptionImpl");
|
||||
if (!domExceptionClass) return;
|
||||
domExceptionClass = (jclass) env->NewGlobalRef(domExceptionClass);
|
||||
@ -243,78 +232,6 @@ void JavaDOMGlobals::Initialize(JNIEnv *env)
|
||||
runtimeExceptionInitMID =
|
||||
env->GetMethodID(runtimeExceptionClass, "<init>", "(Ljava/lang/String;)V");
|
||||
if (!runtimeExceptionInitMID) return;
|
||||
|
||||
jfieldID exceptionCodeFID =
|
||||
env->GetStaticFieldID(domExceptionClass, "INDEX_SIZE_ERR", "S");
|
||||
if (!exceptionCodeFID) return;
|
||||
exceptionCodeIndexSize =
|
||||
env->GetStaticShortField(domExceptionClass, exceptionCodeFID);
|
||||
if (env->ExceptionOccurred()) return;
|
||||
|
||||
exceptionCodeFID =
|
||||
env->GetStaticFieldID(domExceptionClass, "DOMSTRING_SIZE_ERR", "S");
|
||||
if (!exceptionCodeFID) return;
|
||||
exceptionCodeDomStringSize =
|
||||
env->GetStaticShortField(domExceptionClass, exceptionCodeFID);
|
||||
if (env->ExceptionOccurred()) return;
|
||||
|
||||
exceptionCodeFID =
|
||||
env->GetStaticFieldID(domExceptionClass, "HIERARCHY_REQUEST_ERR", "S");
|
||||
if (!exceptionCodeFID) return;
|
||||
exceptionCodeHierarchyRequest =
|
||||
env->GetStaticShortField(domExceptionClass, exceptionCodeFID);
|
||||
if (env->ExceptionOccurred()) return;
|
||||
|
||||
exceptionCodeFID =
|
||||
env->GetStaticFieldID(domExceptionClass, "WRONG_DOCUMENT_ERR", "S");
|
||||
if (!exceptionCodeFID) return;
|
||||
exceptionCodeWrongDocument =
|
||||
env->GetStaticShortField(domExceptionClass, exceptionCodeFID);
|
||||
if (env->ExceptionOccurred()) return;
|
||||
|
||||
exceptionCodeFID =
|
||||
env->GetStaticFieldID(domExceptionClass, "INVALID_CHARACTER_ERR", "S");
|
||||
if (!exceptionCodeFID) return;
|
||||
exceptionCodeInvalidCharacter =
|
||||
env->GetStaticShortField(domExceptionClass, exceptionCodeFID);
|
||||
if (env->ExceptionOccurred()) return;
|
||||
|
||||
exceptionCodeFID =
|
||||
env->GetStaticFieldID(domExceptionClass, "NO_DATA_ALLOWED_ERR", "S");
|
||||
if (!exceptionCodeFID) return;
|
||||
exceptionCodeNoDataAllowed =
|
||||
env->GetStaticShortField(domExceptionClass, exceptionCodeFID);
|
||||
if (env->ExceptionOccurred()) return;
|
||||
|
||||
exceptionCodeFID =
|
||||
env->GetStaticFieldID(domExceptionClass, "NO_MODIFICATION_ALLOWED_ERR", "S");
|
||||
if (!exceptionCodeFID) return;
|
||||
exceptionCodeNoModificationAllowed =
|
||||
env->GetStaticShortField(domExceptionClass, exceptionCodeFID);
|
||||
if (env->ExceptionOccurred()) return;
|
||||
|
||||
exceptionCodeFID =
|
||||
env->GetStaticFieldID(domExceptionClass, "NOT_FOUND_ERR", "S");
|
||||
if (!exceptionCodeFID) return;
|
||||
exceptionCodeNotFound =
|
||||
env->GetStaticShortField(domExceptionClass, exceptionCodeFID);
|
||||
if (env->ExceptionOccurred()) return;
|
||||
|
||||
exceptionCodeFID =
|
||||
env->GetStaticFieldID(domExceptionClass, "NOT_SUPPORTED_ERR", "S");
|
||||
if (!exceptionCodeFID) return;
|
||||
exceptionCodeNotSupported =
|
||||
env->GetStaticShortField(domExceptionClass, exceptionCodeFID);
|
||||
if (env->ExceptionOccurred()) return;
|
||||
|
||||
exceptionCodeFID =
|
||||
env->GetStaticFieldID(domExceptionClass, "INUSE_ATTRIBUTE_ERR", "S");
|
||||
if (!exceptionCodeFID) return;
|
||||
exceptionCodeInuseAttribute =
|
||||
env->GetStaticShortField(domExceptionClass, exceptionCodeFID);
|
||||
if (env->ExceptionOccurred()) return;
|
||||
|
||||
// end DOMException caching
|
||||
}
|
||||
|
||||
void JavaDOMGlobals::Destroy(JNIEnv *env)
|
||||
@ -596,51 +513,55 @@ void JavaDOMGlobals::TakeOutGarbage()
|
||||
}
|
||||
|
||||
// caller must return from JNI immediately after calling this function
|
||||
void JavaDOMGlobals::ThrowDOMException(JNIEnv *env, jshort code)
|
||||
{
|
||||
PR_LOG(log, PR_LOG_ERROR,
|
||||
("JavaDOMGlobals::ThrowDOMException: (%x) %s\n",
|
||||
code, exceptionMessage[code]));
|
||||
void JavaDOMGlobals::ThrowException(JNIEnv *env,
|
||||
const char * message,
|
||||
nsresult rv,
|
||||
ExceptionType exceptionType) {
|
||||
|
||||
// probably redundant check... this should not happen
|
||||
// if it does, we prefer to throw the original exception
|
||||
if (env->ExceptionOccurred())
|
||||
return;
|
||||
jthrowable newException = NULL;
|
||||
|
||||
jstring message = env->NewStringUTF(exceptionMessage[code]);
|
||||
if (exceptionType == EXCEPTION_DOM) {
|
||||
PR_LOG(log, PR_LOG_ERROR,
|
||||
("JavaDOMGlobals::ThrowException: (%x) %s: %s\n",
|
||||
NS_ERROR_GET_CODE(rv),
|
||||
message ? message : "",
|
||||
DOM_EXCEPTION_MESSAGE[NS_ERROR_GET_CODE(rv)]));
|
||||
|
||||
jstring jmessage =
|
||||
env->NewStringUTF(DOM_EXCEPTION_MESSAGE[NS_ERROR_GET_CODE(rv)]);
|
||||
|
||||
newException =
|
||||
(jthrowable)env->NewObject(domExceptionClass,
|
||||
domExceptionInitMID,
|
||||
NS_ERROR_GET_CODE(rv),
|
||||
message);
|
||||
} else {
|
||||
char buffer[256];
|
||||
const char* msg = message;
|
||||
if (rv != NS_OK) {
|
||||
sprintf(buffer,
|
||||
"(%x.%x) %s",
|
||||
NS_ERROR_GET_MODULE(rv),
|
||||
NS_ERROR_GET_CODE(rv),
|
||||
message ? message : "");
|
||||
msg = buffer;
|
||||
}
|
||||
|
||||
PR_LOG(log, PR_LOG_ERROR,
|
||||
("JavaDOMGlobals::ThrowException: %s\n", msg));
|
||||
|
||||
jstring jmessage = env->NewStringUTF(msg);
|
||||
|
||||
jthrowable newException =
|
||||
(jthrowable)env->NewObject(runtimeExceptionClass,
|
||||
runtimeExceptionInitMID,
|
||||
jmessage);
|
||||
|
||||
}
|
||||
|
||||
jthrowable newException =
|
||||
(jthrowable)env->NewObject(domExceptionClass,
|
||||
domExceptionInitMID,
|
||||
code,
|
||||
message);
|
||||
if (newException != NULL) {
|
||||
env->Throw(newException);
|
||||
}
|
||||
|
||||
// an exception is thrown in any case
|
||||
}
|
||||
|
||||
// caller must return from JNI immediately after calling this function
|
||||
void JavaDOMGlobals::ThrowException(JNIEnv *env, const char * message)
|
||||
{
|
||||
PR_LOG(log, PR_LOG_ERROR,
|
||||
("JavaDOMGlobals::ThrowException: %s\n", message));
|
||||
|
||||
// probably redundant check... this should not happen
|
||||
// if it does, we prefer to throw the original exception
|
||||
if (env->ExceptionOccurred())
|
||||
return;
|
||||
|
||||
jstring msg = env->NewStringUTF(message);
|
||||
|
||||
jthrowable newException =
|
||||
(jthrowable)env->NewObject(runtimeExceptionClass,
|
||||
runtimeExceptionInitMID,
|
||||
msg);
|
||||
if (newException != NULL) {
|
||||
env->Throw(newException);
|
||||
}
|
||||
|
||||
// an exception is thrown in any case
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,6 +19,7 @@ Inc. All Rights Reserved.
|
||||
|
||||
#include "jni.h"
|
||||
#include "prclist.h"
|
||||
#include "nsError.h"
|
||||
|
||||
class nsISupports;
|
||||
class nsIDOMNode;
|
||||
@ -66,17 +67,11 @@ class JavaDOMGlobals {
|
||||
static jmethodID domExceptionInitMID;
|
||||
static jclass runtimeExceptionClass;
|
||||
static jmethodID runtimeExceptionInitMID;
|
||||
static jshort exceptionCodeIndexSize;
|
||||
static jshort exceptionCodeDomStringSize;
|
||||
static jshort exceptionCodeHierarchyRequest;
|
||||
static jshort exceptionCodeWrongDocument;
|
||||
static jshort exceptionCodeInvalidCharacter;
|
||||
static jshort exceptionCodeNoDataAllowed;
|
||||
static jshort exceptionCodeNoModificationAllowed;
|
||||
static jshort exceptionCodeNotFound;
|
||||
static jshort exceptionCodeNotSupported;
|
||||
static jshort exceptionCodeInuseAttribute;
|
||||
static const char* const exceptionMessage[];
|
||||
|
||||
static const char* const DOM_EXCEPTION_MESSAGE[];
|
||||
|
||||
typedef enum ExceptionType { EXCEPTION_RUNTIME,
|
||||
EXCEPTION_DOM } ExceptionType;
|
||||
|
||||
static PRLogModuleInfo* log;
|
||||
static PRCList garbage;
|
||||
@ -90,10 +85,10 @@ class JavaDOMGlobals {
|
||||
static void AddToGarbage(nsISupports* domObject);
|
||||
static void TakeOutGarbage();
|
||||
|
||||
static void ThrowDOMException(JNIEnv *env,
|
||||
jshort code);
|
||||
static void ThrowException(JNIEnv *env,
|
||||
const char * message);
|
||||
const char * message = NULL,
|
||||
nsresult rv = NS_OK,
|
||||
ExceptionType exceptionType = EXCEPTION_RUNTIME);
|
||||
};
|
||||
|
||||
#endif /* __JavaDOMGlobals_h__ */
|
||||
|
||||
@ -16,6 +16,7 @@ Inc. All Rights Reserved.
|
||||
|
||||
#include "prlog.h"
|
||||
#include "nsIDOMCharacterData.h"
|
||||
#include "nsDOMError.h"
|
||||
#include "javaDOMGlobals.h"
|
||||
#include "org_mozilla_dom_CharacterDataImpl.h"
|
||||
|
||||
@ -30,16 +31,16 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_appendData
|
||||
nsIDOMCharacterData* data = (nsIDOMCharacterData*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.appendData: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.appendData: NULL pointer");
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy);
|
||||
if (!value) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.appendData: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.appendData: GetStringUTFChars failed");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -47,8 +48,13 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_appendData
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jvalue, value);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.appendData: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.appendData: failed", rv, exceptionType);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -64,15 +70,21 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_deleteData
|
||||
nsIDOMCharacterData* data = (nsIDOMCharacterData*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.deleteData: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.deleteData: NULL pointer");
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = data->DeleteData((PRUint32) offset, (PRUint32) count);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.deleteData: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INDEX_SIZE_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.deleteData: failed", rv, exceptionType);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -88,23 +100,28 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_CharacterDataImpl_getData
|
||||
nsIDOMCharacterData* data = (nsIDOMCharacterData*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.getData: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.getData: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsString ret;
|
||||
nsresult rv = data->GetData(ret);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.getData: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_DOMSTRING_SIZE_ERR) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.getData: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jstring jret = env->NewString(ret.GetUnicode(), ret.Length());
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.getData: NewString failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.getData: NewString failed");
|
||||
}
|
||||
|
||||
return jret;
|
||||
@ -121,16 +138,16 @@ JNIEXPORT jint JNICALL Java_org_mozilla_dom_CharacterDataImpl_getLength
|
||||
nsIDOMCharacterData* data = (nsIDOMCharacterData*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.getLength: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.getLength: NULL pointer");
|
||||
return 0;
|
||||
}
|
||||
|
||||
PRUint32 len = 0;
|
||||
nsresult rv = data->GetLength(&len);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.getLength: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.getLength: failed", rv);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -148,16 +165,16 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_insertData
|
||||
nsIDOMCharacterData* data = (nsIDOMCharacterData*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.insertData: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.insertData: NULL pointer");
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy);
|
||||
if (!value) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.insertData: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.insertData: GetStringUTFChars failed");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -165,8 +182,14 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_insertData
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jvalue, value);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.insertData: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INDEX_SIZE_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.insertData: failed", rv, exceptionType);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -182,16 +205,16 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_replaceData
|
||||
nsIDOMCharacterData* data = (nsIDOMCharacterData*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.replaceData: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.replaceData: NULL pointer");
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy);
|
||||
if (!value) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.replaceData: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.replaceData: GetStringUTFChars failed");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -199,8 +222,14 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_replaceData
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jvalue, value);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.replaceData: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INDEX_SIZE_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.replaceData: failed", rv, exceptionType);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -216,16 +245,16 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_setData
|
||||
nsIDOMCharacterData* data = (nsIDOMCharacterData*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.setData: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.setData: NULL pointer");
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy);
|
||||
if (!value) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.setData: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.setData: GetStringUTFChars failed");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -233,8 +262,13 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_setData
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jvalue, value);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.setData: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.setData: failed", rv, exceptionType);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -250,23 +284,29 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_CharacterDataImpl_substringData
|
||||
nsIDOMCharacterData* data = (nsIDOMCharacterData*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.substringData: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.substringData: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsString ret;
|
||||
nsresult rv = data->SubstringData((PRUint32) offset, (PRUint32) count, ret);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.substringData: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INDEX_SIZE_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_DOMSTRING_SIZE_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.substringData: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jstring jret = env->NewString(ret.GetUnicode(), ret.Length());
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("CharacterData.substringData: NewString failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.substringData: NewString failed");
|
||||
}
|
||||
|
||||
return jret;
|
||||
|
||||
@ -25,6 +25,7 @@ Inc. All Rights Reserved.
|
||||
#include "nsIDOMCDATASection.h"
|
||||
#include "nsIDOMDOMImplementation.h"
|
||||
#include "nsIDOMProcessingInstruction.h"
|
||||
#include "nsDOMError.h"
|
||||
#include "javaDOMGlobals.h"
|
||||
#include "org_mozilla_dom_DocumentImpl.h"
|
||||
|
||||
@ -54,8 +55,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createAttribute
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Document.createAttribute: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createAttribute: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -63,8 +64,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createAttribute
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createAttribute: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createAttribute: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -72,22 +73,28 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createAttribute
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createAttribute: error %x\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INVALID_CHARACTER_ERR) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createAttribute: failed", rv, exceptionType);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::attrClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createAttribute: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createAttribute: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createAttribute: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createAttribute: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -106,8 +113,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createCDATASection
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Document.createCDATASection: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createCDATASection: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -115,8 +122,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createCDATASection
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* data = env->GetStringUTFChars(jdata, &iscopy);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createCDATASection: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createCDATASection: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -124,22 +131,27 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createCDATASection
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jdata, data);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createCDATASection: error %x\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NOT_SUPPORTED_ERR) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createCDATASection: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::cDataSectionClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createCDATASection: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createCDATASection: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createCDATASection: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createCDATASection: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -158,8 +170,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createComment
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Document.createComment: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createComment: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -167,8 +179,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createComment
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* data = env->GetStringUTFChars(jdata, &iscopy);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createComment: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createComment: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -176,22 +188,22 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createComment
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jdata, data);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createComment: error %x\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createComment: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::commentClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createComment: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createComment: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createComment: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createComment: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -210,30 +222,30 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createDocumentFragme
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Document.createDocumentFragment: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createDocumentFragment: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMDocumentFragment* ret = nsnull;
|
||||
nsresult rv = doc->CreateDocumentFragment(&ret);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createDocumentFragment: error %x\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createDocumentFragment: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::documentFragmentClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createDocumentFragment: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createDocumentFragment: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createDocumentFragment: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createDocumentFragment: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -252,8 +264,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createElement
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Document.createElement: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createElement: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -261,8 +273,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createElement
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* tagName = env->GetStringUTFChars(jtagName, &iscopy);
|
||||
if (!tagName) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createElement: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createElement: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -270,22 +282,28 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createElement
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jtagName, tagName);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createElement: error %x\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INVALID_CHARACTER_ERR) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createElement: failed", rv, exceptionType);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::elementClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createElement: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createElement: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createElement: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createElement: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -304,8 +322,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createEntityReferenc
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Document.createEntityReference: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createEntityReference: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -313,8 +331,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createEntityReferenc
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createEntityReference: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createEntityReference: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -323,22 +341,28 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createEntityReferenc
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createEntityReference: error %x\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INVALID_CHARACTER_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NOT_SUPPORTED_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createEntityReference: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::entityReferenceClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createEntityReference: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createEntityReference: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createEntityReference: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createEntityReference: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -357,8 +381,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createProcessingInst
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Document.createProcessingInstruction: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createProcessingInstruction: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -367,15 +391,15 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createProcessingInst
|
||||
jboolean iscopy2 = JNI_FALSE;
|
||||
const char* target = env->GetStringUTFChars(jtarget, &iscopy);
|
||||
if (!target) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createProcessingInstruction: GetStringUTFChars target failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createProcessingInstruction: GetStringUTFChars target failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char* data = env->GetStringUTFChars(jdata, &iscopy2);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createProcessingInstruction: GetStringUTFChars data failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createProcessingInstruction: GetStringUTFChars data failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -385,22 +409,28 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createProcessingInst
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jtarget, target);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createProcessingInstruction: error %x\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NOT_SUPPORTED_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INVALID_CHARACTER_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createProcessingInstruction failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::processingInstructionClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createProcessingInstruction: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createProcessingInstruction: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createProcessingInstruction: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createProcessingInstruction: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -419,8 +449,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createTextNode
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Document.createTextNode: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createTextNode: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -428,8 +458,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createTextNode
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* data = env->GetStringUTFChars(jdata, &iscopy);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createAttribute: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createAttribute: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -437,22 +467,22 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createTextNode
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jdata, data);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createTextNode: error %x\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createTextNode failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::textClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createTextNode: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createTextNode: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.createTextNode: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createTextNode: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -470,32 +500,29 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getDoctype
|
||||
{
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getDoctype: NULL pointer\n"));
|
||||
if (!doc)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMDocumentType* docType = nsnull;
|
||||
nsresult rv = doc->GetDoctype(&docType);
|
||||
if (NS_FAILED(rv) || !docType) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getDoctype: error %x\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getDoctype: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jDocType = env->AllocObject(JavaDOMGlobals::documentTypeClass);
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::attrClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getDoctype: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getDoctype: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jDocType, JavaDOMGlobals::nodePtrFID, (jlong) docType);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getDoctype: failed to set node ptr: %x\n", docType));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getDoctype: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -514,30 +541,30 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getDocumentElement
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getDocumentElement: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getDocumentElement: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMElement* element = nsnull;
|
||||
nsresult rv = doc->GetDocumentElement(&element);
|
||||
if (NS_FAILED(rv) || !element) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getDocumentElement: error %x\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getDocumentElement: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::elementClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getDocumentElement: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getDocumentElement: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) element);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getDocumentElement: failed to set node ptr: %x\n", element));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getDocumentElement: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -556,8 +583,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getElementsByTagName
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getElementsByTagName: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getElementsByTagName: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -565,8 +592,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getElementsByTagName
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* tagName = env->GetStringUTFChars(jtagName, &iscopy);
|
||||
if (!tagName) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getElementsByTagName: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getElementsByTagName: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -574,22 +601,22 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getElementsByTagName
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jtagName, tagName);
|
||||
if (NS_FAILED(rv) || !elements) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getElementsByTagName: error %x\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getElementsByTagName: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::nodeListClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getElementsByTagName: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getElementsByTagName: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) elements);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getElementsByTagName: failed to set node ptr: %x\n", elements));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getElementsByTagName: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -608,30 +635,30 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getImplementation
|
||||
nsIDOMDocument* doc = (nsIDOMDocument*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!doc) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getImplementation: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getImplementation: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMDOMImplementation* impl = nsnull;
|
||||
nsresult rv = doc->GetImplementation(&impl);
|
||||
if (NS_FAILED(rv) || !impl) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getImplementation: error %x\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getImplementation: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::domImplementationClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getImplementation: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getImplementation: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) impl);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Document.getImplementation: failed to set node ptr: %x\n", impl));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getImplementation: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -18,6 +18,7 @@ Inc. All Rights Reserved.
|
||||
#include "nsIDOMElement.h"
|
||||
#include "nsIDOMAttr.h"
|
||||
#include "nsIDOMNodeList.h"
|
||||
#include "nsDOMError.h"
|
||||
#include "javaDOMGlobals.h"
|
||||
#include "org_mozilla_dom_ElementImpl.h"
|
||||
|
||||
@ -33,16 +34,16 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_ElementImpl_getAttribute
|
||||
nsIDOMElement* element = (nsIDOMElement*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!element) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Element.getAttribute: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttribute: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* cname = env->GetStringUTFChars(jname, &iscopy);
|
||||
if (!cname) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getAttribute: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttribute: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -51,15 +52,15 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_ElementImpl_getAttribute
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, cname);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getAttribute: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttribute: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jstring jattr = env->NewString(attr.GetUnicode(), attr.Length());
|
||||
if (!jattr) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getAttribute: NewString failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttribute: NewString failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -77,16 +78,16 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_getAttributeNode
|
||||
nsIDOMElement* element = (nsIDOMElement*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!element) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Element.getAttributeNode: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttributeNode: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* cname = env->GetStringUTFChars(jname, &iscopy);
|
||||
if (!cname) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getAttributeNode: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttributeNode: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -95,22 +96,22 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_getAttributeNode
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, cname);
|
||||
if (NS_FAILED(rv) || !attr) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getAttributeNode: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttributeNode: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jattr = env->AllocObject(JavaDOMGlobals::attrClass);
|
||||
if (!jattr) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getAttributeNode: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttributeNode: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jattr, JavaDOMGlobals::nodePtrFID, (jlong) attr);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getAttributeNode: failed to set node ptr: %x\n", attr));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttributeNode: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -129,16 +130,16 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_getElementsByTagName
|
||||
nsIDOMElement* element = (nsIDOMElement*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!element) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Element.getElementsByTagName: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getElementsByTagName: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* cname = env->GetStringUTFChars(jname, &iscopy);
|
||||
if (!cname) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getElementsByTagName: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getElementsByTagName: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -147,22 +148,22 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_getElementsByTagName
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, cname);
|
||||
if (NS_FAILED(rv) || !nodes) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getElementsByTagName: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getElementsByTagName: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jnodes = env->AllocObject(JavaDOMGlobals::nodeListClass);
|
||||
if (!jnodes) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getElementsByTagName: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getElementsByTagName: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jnodes, JavaDOMGlobals::nodeListPtrFID, (jlong) nodes);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getElementsByTagName: failed to set node ptr: %x\n", nodes));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getElementsByTagName: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -181,23 +182,23 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_ElementImpl_getTagName
|
||||
nsIDOMElement* element = (nsIDOMElement*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!element) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Element.getTagName: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getTagName: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsString tagName;
|
||||
nsresult rv = element->GetTagName(tagName);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getTagName: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getTagName: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jstring jTagName = env->NewString(tagName.GetUnicode(), tagName.Length());
|
||||
if (!jTagName) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.getTagName: NewString failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getTagName: NewString failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -215,15 +216,15 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_normalize
|
||||
nsIDOMElement* element = (nsIDOMElement*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!element) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Element.normalize: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.normalize: NULL pointer");
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = element->Normalize();
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.normalize: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.normalize: failed", rv);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -239,16 +240,16 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_removeAttribute
|
||||
nsIDOMElement* element = (nsIDOMElement*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!element) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Element.removeAttribute: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.removeAttribute: NULL pointer");
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.removeAttribute: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.removeAttribute: GetStringUTFChars failed");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -256,8 +257,13 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_removeAttribute
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.removeAttribute: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.removeAttribute: failed", rv, exceptionType);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -273,38 +279,44 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_removeAttributeNode
|
||||
nsIDOMElement* element = (nsIDOMElement*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!element) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Element.removeAttributeNode: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.removeAttributeNode: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMAttr* oldAttr = (nsIDOMAttr*)
|
||||
env->GetLongField(joldAttr, JavaDOMGlobals::nodePtrFID);
|
||||
if (!oldAttr) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Element.removeAttributeNode: NULL arg pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.removeAttributeNode: NULL arg pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMAttr* ret = nsnull;
|
||||
nsresult rv = element->RemoveAttributeNode(oldAttr, &ret);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.removeAttributeNode: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NOT_FOUND_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.removeAttributeNode: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jattr = env->AllocObject(JavaDOMGlobals::attrClass);
|
||||
if (!jattr) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.removeAttributeNode: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.removeAttributeNode: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jattr, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.removeAttributeNode: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.removeAttributeNode: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -323,24 +335,24 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_setAttribute
|
||||
nsIDOMElement* element = (nsIDOMElement*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!element) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Element.setAttribute: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.setAttribute: NULL pointer");
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.setAttribute: GetStringUTFChars name failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.setAttribute: GetStringUTFChars name failed");
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy2 = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy2);
|
||||
if (!value) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.setAttribute: GetStringUTFChars value failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.setAttribute: GetStringUTFChars name failed");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -350,8 +362,17 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_setAttribute
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.setAttribute: failed (%x)\n", rv));
|
||||
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INVALID_CHARACTER_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.setAttribute: failed", rv, exceptionType);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -367,38 +388,45 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_setAttributeNode
|
||||
nsIDOMElement* element = (nsIDOMElement*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!element) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Element.setAttributeNode: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.setAttributeNode: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMAttr* newAttr = (nsIDOMAttr*)
|
||||
env->GetLongField(jnewAttr, JavaDOMGlobals::nodePtrFID);
|
||||
if (!newAttr) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Element.setAttributeNode: NULL arg pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.setAttributeNode: NULL arg pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMAttr* ret = nsnull;
|
||||
nsresult rv = element->SetAttributeNode(newAttr, &ret);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.setAttributeNode: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_WRONG_DOCUMENT_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.setAttributeNode: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jattr = env->AllocObject(JavaDOMGlobals::attrClass);
|
||||
if (!jattr) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.setAttributeNode: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.setAttributeNode: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jattr, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Element.setAttributeNode: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.setAttributeNode: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -18,6 +18,7 @@ Inc. All Rights Reserved.
|
||||
#include "nsIDOMNamedNodeMap.h"
|
||||
#include "nsIDOMNode.h"
|
||||
#include "javaDOMGlobals.h"
|
||||
#include "nsDOMError.h"
|
||||
#include "org_mozilla_dom_NamedNodeMapImpl.h"
|
||||
|
||||
|
||||
@ -32,16 +33,16 @@ JNIEXPORT jint JNICALL Java_org_mozilla_dom_NamedNodeMapImpl_getLength
|
||||
nsIDOMNamedNodeMap* map = (nsIDOMNamedNodeMap*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!map) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("NodeMap.getLength: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.getLength: NULL pointer");
|
||||
return 0;
|
||||
}
|
||||
|
||||
PRUint32 length = 0;
|
||||
nsresult rv = map->GetLength(&length);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NodeMap.getLength: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.getLength: failed", rv);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -59,8 +60,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NamedNodeMapImpl_getNamedItem
|
||||
nsIDOMNamedNodeMap* map = (nsIDOMNamedNodeMap*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!map) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("NodeMap.getNamedItem: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.getNamedItem: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -68,8 +69,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NamedNodeMapImpl_getNamedItem
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NodeMap.getNamedItem: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.getNamedItem: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -77,22 +78,22 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NamedNodeMapImpl_getNamedItem
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
if (NS_FAILED(rv) || !node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NodeMap.getNamedItem: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.getNamedItem: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jnode = env->AllocObject(JavaDOMGlobals::nodeClass);
|
||||
if (!jnode) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NamedNodeMap.getNamedItem: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NamedNodeMap.getNamedItem: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jnode, JavaDOMGlobals::nodePtrFID, (jlong) node);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NamedNodeMap.getNamedItem: failed to set node ptr: %x\n", node));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NamedNodeMap.getNamedItem: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -111,30 +112,30 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NamedNodeMapImpl_item
|
||||
nsIDOMNamedNodeMap* map = (nsIDOMNamedNodeMap*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!map) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("NodeMap.item: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.item: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* node = nsnull;
|
||||
nsresult rv = map->Item((PRUint32) jindex, &node);
|
||||
if (NS_FAILED(rv) || !node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NodeMap.item: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.item: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jnode = env->AllocObject(JavaDOMGlobals::nodeClass);
|
||||
if (!jnode) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NodeMap.item: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.item: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jnode, JavaDOMGlobals::nodePtrFID, (jlong) node);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NamedNodeMap.item: failed to set node ptr: %x\n", node));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NamedNodeMap.item: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -153,8 +154,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NamedNodeMapImpl_removeNamedItem
|
||||
nsIDOMNamedNodeMap* map = (nsIDOMNamedNodeMap*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!map) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("NodeMap.removeNamedItem: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.removeNamedItem: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -162,8 +163,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NamedNodeMapImpl_removeNamedItem
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NamedNodeMap.removeNamedItem: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NamedNodeMap.removeNamedItem: GetStringUTFChars failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -171,22 +172,27 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NamedNodeMapImpl_removeNamedItem
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
if (NS_FAILED(rv) || !node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NodeMap.removeNamedItem: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NOT_FOUND_ERR) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.removeNamedItem: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jnode = env->AllocObject(JavaDOMGlobals::nodeClass);
|
||||
if (!jnode) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NamedNodeMap.removeNamedItem: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NamedNodeMap.removeNamedItem: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jnode, JavaDOMGlobals::nodePtrFID, (jlong) node);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NamedNodeMap.removeNamedItem: failed to set node ptr: %x\n", node));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NamedNodeMap.removeNamedItem: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -205,38 +211,45 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NamedNodeMapImpl_setNamedItem
|
||||
nsIDOMNamedNodeMap* map = (nsIDOMNamedNodeMap*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!map) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("NodeMap.setNamedItem: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.setNamedItem: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* arg = (nsIDOMNode*)
|
||||
env->GetLongField(jarg, JavaDOMGlobals::nodePtrFID);
|
||||
if (!arg) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("NodeMap.setNamedItem: NULL item pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.setNamedItem: NULL item pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* node = nsnull;
|
||||
nsresult rv = map->SetNamedItem(arg, &node);
|
||||
if (NS_FAILED(rv) || !node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NodeMap.setNamedItem: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_WRONG_DOCUMENT_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.setNamedItem: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jnode = env->AllocObject(JavaDOMGlobals::nodeClass);
|
||||
if (!jnode) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NamedNodeMap.setNamedItem: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NamedNodeMap.setNamedItem: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jnode, JavaDOMGlobals::nodePtrFID, (jlong) node);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("NamedNodeMap.setNamedItem: failed to set node ptr: %x\n", node));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NamedNodeMap.setNamedItem: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -19,6 +19,7 @@ Inc. All Rights Reserved.
|
||||
#include "nsIDOMNodeList.h"
|
||||
#include "nsIDOMNamedNodeMap.h"
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsDOMError.h"
|
||||
#include "javaDOMGlobals.h"
|
||||
#include "org_mozilla_dom_NodeImpl.h"
|
||||
|
||||
@ -128,24 +129,31 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_appendChild
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.appendChild: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.appendChild: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* child = (nsIDOMNode*)
|
||||
env->GetLongField(jchild, JavaDOMGlobals::nodePtrFID);
|
||||
if (!child) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.appendChild: NULL child pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.appendChild: NULL child pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* ret = nsnull;
|
||||
nsresult rv = node->AppendChild(child, &ret);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.appendChild: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_WRONG_DOCUMENT_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_HIERARCHY_REQUEST_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.appendChild: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -163,8 +171,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_cloneNode
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.cloneNode: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.cloneNode: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -172,8 +180,8 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_cloneNode
|
||||
PRBool deep = jdeep == JNI_TRUE ? PR_TRUE : PR_FALSE;
|
||||
nsresult rv = node->CloneNode(deep, &ret);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.cloneNode: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.cloneNode: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -190,17 +198,14 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_getAttributes
|
||||
{
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.getAttributes: NULL pointer\n"));
|
||||
if (!node)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNamedNodeMap* nodeMap = nsnull;
|
||||
nsresult rv = node->GetAttributes(&nodeMap);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getAttributes: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getAttributes: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
if (!nodeMap) {
|
||||
@ -211,15 +216,15 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_getAttributes
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::namedNodeMapClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getAttributes: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getAttributes: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) nodeMap);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getAttributes: failed to set node ptr: %x\n", nodeMap));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getAttributes: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -238,30 +243,30 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_getChildNodes
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.getChildNodes: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getChildNodes: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNodeList* nodeList = nsnull;
|
||||
nsresult rv = node->GetChildNodes(&nodeList);
|
||||
if (NS_FAILED(rv) || !nodeList) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getChildNodes: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getChildNodes: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::nodeListClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getChildNodes: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getChildNodes: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodeListPtrFID, (jlong) nodeList);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getChildNodes: failed to set node ptr: %x\n", nodeList));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getChildNodes: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -279,17 +284,14 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_getFirstChild
|
||||
{
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.getFirstChild: NULL pointer\n"));
|
||||
if (!node)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* ret = nsnull;
|
||||
nsresult rv = node->GetFirstChild(&ret);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getFirstChild: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getFirstChild: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
if (!ret) {
|
||||
@ -311,17 +313,14 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_getLastChild
|
||||
{
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.getLastChild: NULL pointer\n"));
|
||||
if (!node)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* ret = nsnull;
|
||||
nsresult rv = node->GetLastChild(&ret);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getLastChild: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getLastChild: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
if (!ret) {
|
||||
@ -343,17 +342,14 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_getNextSibling
|
||||
{
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.getNextSibling: NULL pointer\n"));
|
||||
if (!node)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* ret = nsnull;
|
||||
nsresult rv = node->GetNextSibling(&ret);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getNextSibling: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getNextSibling: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -371,23 +367,23 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_NodeImpl_getNodeName
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.getNodeName: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getNodeName: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsString ret;
|
||||
nsresult rv = node->GetNodeName(ret);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getNodeName: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getNodeName: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jstring jret = env->NewString(ret.GetUnicode(), ret.Length());
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getNodeName: NewString failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getNodeName: NewString failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -405,16 +401,16 @@ JNIEXPORT jshort JNICALL Java_org_mozilla_dom_NodeImpl_getNodeType
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.getNodeType: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getNodeType: NULL pointer");
|
||||
return (jshort) NULL;
|
||||
}
|
||||
|
||||
PRUint16 type;
|
||||
nsresult rv = node->GetNodeType(&type);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getNodeType: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getNodeType: failed", rv);
|
||||
return (jshort) NULL;
|
||||
}
|
||||
|
||||
@ -473,20 +469,20 @@ JNIEXPORT jshort JNICALL Java_org_mozilla_dom_NodeImpl_getNodeType
|
||||
if (typeFID) {
|
||||
jclass nodeClass = env->GetObjectClass(jthis);
|
||||
if (!nodeClass) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getNodeType: GetObjectClass failed (%x)\n", jthis));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getNodeType: GetObjectClass failed");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = env->GetStaticShortField(nodeClass, typeFID);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getNodeType: typeFID failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getNodeType: typeFID failed");
|
||||
return ret;
|
||||
}
|
||||
} else {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getNodeType: illegal type %d\n", type));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getNodeType: illegal type");
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -502,24 +498,26 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_NodeImpl_getNodeValue
|
||||
{
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.getNodeValue: NULL pointer\n"));
|
||||
if (!node)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsString ret;
|
||||
nsresult rv = node->GetNodeValue(ret);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getNodeValue: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_DOMSTRING_SIZE_ERR) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getNodeValue: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jstring jret = env->NewString(ret.GetUnicode(), ret.Length());
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getNodeValue: NewString failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getNodeValue: NewString failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -536,31 +534,28 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_getOwnerDocument
|
||||
{
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.getOwnerDocument: NULL pointer\n"));
|
||||
if (!node)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMDocument* ret = nsnull;
|
||||
nsresult rv = node->GetOwnerDocument(&ret);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getOwnerDocument: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getOwnerDocument: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::documentClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getOwnerDocument: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getOwnerDocument: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getOwnerDocument: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getOwnerDocument: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -578,17 +573,14 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_getParentNode
|
||||
{
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.getParentNode: NULL pointer\n"));
|
||||
if (!node)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* ret = nsnull;
|
||||
nsresult rv = node->GetParentNode(&ret);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getParentNode: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getParentNode: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -605,17 +597,14 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_getPreviousSibling
|
||||
{
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.getPreviousSibling: NULL pointer\n"));
|
||||
if (!node)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* ret = nsnull;
|
||||
nsresult rv = node->GetPreviousSibling(&ret);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.getPreviousSibling: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.getPreviousSibling: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -633,16 +622,16 @@ JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_NodeImpl_hasChildNodes
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.hasChildNodes: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.hasChildNodes: NULL pointer");
|
||||
return (jboolean) NULL;
|
||||
}
|
||||
|
||||
PRBool ret = PR_FALSE;
|
||||
nsresult rv = node->HasChildNodes(&ret);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.hasChildNodes: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.hasChildNodes: failed", rv);
|
||||
return (jboolean) NULL;
|
||||
}
|
||||
|
||||
@ -660,32 +649,40 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_insertBefore
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.insertBefore: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.insertBefore: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* newChild = (nsIDOMNode*)
|
||||
env->GetLongField(jnewChild, JavaDOMGlobals::nodePtrFID);
|
||||
if (!newChild) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.insertBefore: NULL newChild pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.insertBefore: NULL newChild pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* refChild = (nsIDOMNode*)
|
||||
env->GetLongField(jrefChild, JavaDOMGlobals::nodePtrFID);
|
||||
if (!refChild) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.insertBefore: NULL refChild pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.insertBefore: NULL refChild pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* ret = nsnull;
|
||||
nsresult rv = node->InsertBefore(newChild, refChild, &ret);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.insertBefore: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_WRONG_DOCUMENT_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NOT_FOUND_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_HIERARCHY_REQUEST_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.insertBefore: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -703,24 +700,30 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_removeChild
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.removeChild: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.removeChild: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* oldChild = (nsIDOMNode*)
|
||||
env->GetLongField(joldChild, JavaDOMGlobals::nodePtrFID);
|
||||
if (!oldChild) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.removeChild: NULL oldChild pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.removeChild: NULL oldChild pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* ret = nsnull;
|
||||
nsresult rv = node->RemoveChild(oldChild, &ret);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.removeChild: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NOT_FOUND_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.removeChild: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -738,32 +741,40 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NodeImpl_replaceChild
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.replaceChild: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.replaceChild: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* newChild = (nsIDOMNode*)
|
||||
env->GetLongField(jnewChild, JavaDOMGlobals::nodePtrFID);
|
||||
if (!newChild) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.replaceChild: NULL newChild pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.replaceChild: NULL newChild pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* oldChild = (nsIDOMNode*)
|
||||
env->GetLongField(joldChild, JavaDOMGlobals::nodePtrFID);
|
||||
if (!oldChild) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.replaceChild: NULL oldChild pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.replaceChild: NULL oldChild pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNode* ret = nsnull;
|
||||
nsresult rv = node->ReplaceChild(newChild, oldChild, &ret);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.replaceChild: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_WRONG_DOCUMENT_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_HIERARCHY_REQUEST_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NOT_FOUND_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.replaceChild: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -781,16 +792,16 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_setNodeValue
|
||||
nsIDOMNode* node = (nsIDOMNode*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!node) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Node.setNodeValue: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.setNodeValue: NULL pointer");
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy);
|
||||
if (!value) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.setNodeValue: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.setNodeValue: GetStringUTFChars failed");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -798,8 +809,14 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_setNodeValue
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jvalue, value);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Node.setNodeValue: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.setNodeValue: failed", rv, exceptionType);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -16,6 +16,7 @@ Inc. All Rights Reserved.
|
||||
|
||||
#include "prlog.h"
|
||||
#include "nsIDOMProcessingInstruction.h"
|
||||
#include "nsDOMError.h"
|
||||
#include "javaDOMGlobals.h"
|
||||
#include "org_mozilla_dom_ProcessingInstructionImpl.h"
|
||||
|
||||
@ -31,23 +32,23 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_ProcessingInstructionImpl_getData
|
||||
nsIDOMProcessingInstruction* pi = (nsIDOMProcessingInstruction*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!pi) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("ProcessingInstruction.getData: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"ProcessingInstruction.getData: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsString ret;
|
||||
nsresult rv = pi->GetData(ret);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("ProcessingInstruction.getData: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"ProcessingInstruction.getData: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jstring jret = env->NewString(ret.GetUnicode(), ret.Length());
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("ProcessingInstruction.getData: NewString failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"ProcessingInstruction.getData: NewString failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -65,23 +66,23 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_ProcessingInstructionImpl_getTarg
|
||||
nsIDOMProcessingInstruction* pi = (nsIDOMProcessingInstruction*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!pi) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("ProcessingInstruction.getTarget: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"ProcessingInstruction.getTarget: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsString ret;
|
||||
nsresult rv = pi->GetData(ret);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("ProcessingInstruction.getTarget: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"ProcessingInstruction.getTarget: failed", rv);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jstring jret = env->NewString(ret.GetUnicode(), ret.Length());
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("ProcessingInstruction.getTarget: NewString failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"ProcessingInstruction.getTarget: NewString failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -99,24 +100,29 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_ProcessingInstructionImpl_setData
|
||||
nsIDOMProcessingInstruction* pi = (nsIDOMProcessingInstruction*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!pi) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("ProcessingInstruction.setData: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"ProcessingInstruction.setData: NULL pointer");
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* data = env->GetStringUTFChars(jdata, &iscopy);
|
||||
if (!data) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("ProcessingInstruction.setData: GetStringUTFChars failed\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"ProcessingInstruction.setData: GetStringUTFChars failed");
|
||||
return;
|
||||
}
|
||||
nsresult rv = pi->SetData(data);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jdata, data);
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("ProcessingInstruction.setData: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"ProcessingInstruction.setData: failed", rv, exceptionType);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -16,6 +16,7 @@ Inc. All Rights Reserved.
|
||||
|
||||
#include "prlog.h"
|
||||
#include "nsIDOMText.h"
|
||||
#include "nsDOMError.h"
|
||||
#include "javaDOMGlobals.h"
|
||||
#include "org_mozilla_dom_TextImpl.h"
|
||||
|
||||
@ -31,30 +32,36 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_TextImpl_splitText
|
||||
nsIDOMText* text = (nsIDOMText*)
|
||||
env->GetLongField(jthis, JavaDOMGlobals::nodePtrFID);
|
||||
if (!text) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Text.splitText: NULL pointer\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Text.splitText: NULL pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMText* ret = nsnull;
|
||||
nsresult rv = text->SplitText((PRUint32) joffset, &ret);
|
||||
if (NS_FAILED(rv) || !ret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Text.splitText: failed (%x)\n", rv));
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
(NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR ||
|
||||
NS_ERROR_GET_CODE(rv) == NS_ERROR_DOM_INDEX_SIZE_ERR)) {
|
||||
exceptionType = JavaDOMGlobals::EXCEPTION_DOM;
|
||||
}
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Text.splitText: failed", rv, exceptionType);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jobject jret = env->AllocObject(JavaDOMGlobals::textClass);
|
||||
if (!jret) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Text.splitText: failed to allocate object\n"));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Text.splitText: failed to allocate object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) ret);
|
||||
if (env->ExceptionOccurred()) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Text.splitText: failed to set node ptr: %x\n", ret));
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Text.splitText: failed to set node ptr");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user