changes to support unicode strings
git-svn-id: svn://10.0.0.236/trunk@71527 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -160,12 +160,12 @@ void JavaDOMEventsGlobals::Destroy(JNIEnv *env)
|
||||
|
||||
//returns true if specified event "type" exists in the given list of types
|
||||
// NOTE: it is assumed that "types" list is enden with NULL
|
||||
static jboolean isEventOfType(const char* const* types, nsString type)
|
||||
static jboolean isEventOfType(const char* const* types, const char* type)
|
||||
{
|
||||
int i=0;
|
||||
|
||||
while (types && types[i]) {
|
||||
if (type == types[i])
|
||||
while (type && types && types[i]) {
|
||||
if (!strcmp(type,types[i]))
|
||||
return JNI_TRUE;
|
||||
i++;
|
||||
}
|
||||
@@ -220,23 +220,24 @@ jobject JavaDOMEventsGlobals::CreateEventSubtype(JNIEnv *env,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (isEventOfType(mouseEventTypes, eventType) == JNI_TRUE) {
|
||||
clazz = mouseEventClass;
|
||||
} else if (isEventOfType(uiEventTypes, eventType) == JNI_TRUE) {
|
||||
clazz = uiEventClass;
|
||||
char* buffer = nsnull;
|
||||
if (eventType.IsUnicode()) {
|
||||
buffer = eventType.ToNewUTF8String();
|
||||
} else {
|
||||
buffer = eventType.ToNewCString();
|
||||
}
|
||||
|
||||
if (isEventOfType(mouseEventTypes, buffer) == JNI_TRUE) {
|
||||
clazz = mouseEventClass;
|
||||
} else if (isEventOfType(uiEventTypes, buffer) == JNI_TRUE) {
|
||||
clazz = uiEventClass;
|
||||
} else {
|
||||
char* buffer = nsnull;
|
||||
if (eventType.IsUnicode()) {
|
||||
buffer = eventType.ToNewUTF8String();
|
||||
} else {
|
||||
buffer = eventType.ToNewCString();
|
||||
}
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_WARNING,
|
||||
("Unknown type of UI event (%s)", buffer));
|
||||
nsString::Recycle(&eventType);
|
||||
|
||||
clazz = uiEventClass;
|
||||
}
|
||||
nsString::Recycle(&eventType);
|
||||
|
||||
event->Release();
|
||||
event = (nsIDOMEvent *) target;
|
||||
|
||||
@@ -133,17 +133,18 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_AttrImpl_setValue
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* cvalue = env->GetStringUTFChars(jval, &iscopy);
|
||||
if (!cvalue) {
|
||||
jboolean iscopy;
|
||||
const jchar* cstr = env->GetStringChars(jval, &iscopy);
|
||||
if (!cstr) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Attr.setValue: GetStringUTFChars failed\n"));
|
||||
("Attr.setValue: GetStringChars failed\n"));
|
||||
env->ReleaseStringChars(jval, cstr);
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = attr->SetValue(cvalue);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jval, cvalue);
|
||||
nsresult rv = attr->SetValue((PRUnichar*)cstr);
|
||||
env->ReleaseStringChars(jval, cstr);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Attr.setValue: failed (%x)\n", rv));
|
||||
|
||||
@@ -41,17 +41,17 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_appendData
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* value = env->GetStringChars(jvalue, &iscopy);
|
||||
if (!value) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.appendData: GetStringUTFChars failed");
|
||||
"CharacterData.appendData: GetStringChars failed");
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = data->AppendData(value);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jvalue, value);
|
||||
nsresult rv = data->AppendData((PRUnichar*)value);
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (rv == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR) {
|
||||
@@ -181,17 +181,18 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_insertData
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* value = env->GetStringChars(jvalue, &iscopy);
|
||||
if (!value) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.insertData: GetStringUTFChars failed");
|
||||
"CharacterData.insertData: GetStringChars failed");
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = data->InsertData((PRUint32) offset, value);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jvalue, value);
|
||||
nsresult rv = data->InsertData((PRUint32) offset, (PRUnichar*)value);
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
@@ -229,17 +230,18 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_replaceData
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* value = env->GetStringChars(jvalue, &iscopy);
|
||||
if (!value) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.replaceData: GetStringUTFChars failed");
|
||||
"CharacterData.replaceData: GetStringChars failed");
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = data->ReplaceData((PRUint32) offset, (PRUint32) count, value);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jvalue, value);
|
||||
nsresult rv = data->ReplaceData((PRUint32) offset, (PRUint32) count, (PRUnichar*)value);
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
@@ -269,17 +271,18 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_CharacterDataImpl_setData
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* value = env->GetStringChars(jvalue, &iscopy);
|
||||
if (!value) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"CharacterData.setData: GetStringUTFChars failed");
|
||||
"CharacterData.setData: GetStringChars failed");
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = data->SetData(value);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jvalue, value);
|
||||
nsresult rv = data->SetData((PRUnichar*)value);
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (rv == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR) {
|
||||
|
||||
@@ -148,31 +148,33 @@ JNIEXPORT jboolean JNICALL Java_org_mozilla_dom_DOMImplementationImpl_hasFeature
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* feature = env->GetStringUTFChars(jfeature, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* feature = env->GetStringChars(jfeature, &iscopy);
|
||||
if (!feature) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("DOMImplementation.hasFeature: GetStringUTFChars feature failed\n"));
|
||||
("DOMImplementation.hasFeature: GetStringChars feature failed\n"));
|
||||
env->ReleaseStringChars(jfeature, feature);
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
||||
jboolean iscopy2 = JNI_FALSE;
|
||||
const char* version = NULL;
|
||||
jboolean iscopy2;
|
||||
const jchar* version = NULL;
|
||||
if (jversion) {
|
||||
version = env->GetStringUTFChars(jversion, &iscopy2);
|
||||
version = env->GetStringChars(jversion, &iscopy2);
|
||||
if (!version) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("DOMImplementation.hasFeature: GetStringUTFChars version failed\n"));
|
||||
("DOMImplementation.hasFeature: GetStringChars version failed\n"));
|
||||
env->ReleaseStringChars(jversion, version);
|
||||
env->ReleaseStringChars(jfeature, feature);
|
||||
return JNI_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
PRBool ret = PR_FALSE;
|
||||
nsresult rv = dom->HasFeature(feature, version, &ret);
|
||||
if (iscopy2 == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jversion, version);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jfeature, feature);
|
||||
nsresult rv = dom->HasFeature((PRUnichar*)feature, (PRUnichar*)version, &ret);
|
||||
env->ReleaseStringChars(jversion, version);
|
||||
env->ReleaseStringChars(jfeature, feature);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("DOMImplementation.hasFeature: failed (%x)\n", rv));
|
||||
|
||||
@@ -53,16 +53,17 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createAttribute
|
||||
|
||||
nsIDOMAttr* ret = nsnull;
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
const jchar* name = env->GetStringChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createAttribute: GetStringUTFChars failed");
|
||||
"Document.createAttribute: GetStringChars failed");
|
||||
env->ReleaseStringChars(jname, name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsresult rv = doc->CreateAttribute(name, &ret);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
nsresult rv = doc->CreateAttribute((PRUnichar*)name, &ret);
|
||||
env->ReleaseStringChars(jname, name);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (rv == NS_ERROR_DOM_INVALID_CHARACTER_ERR) {
|
||||
@@ -109,17 +110,18 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createCDATASection
|
||||
}
|
||||
|
||||
nsIDOMCDATASection* ret = nsnull;
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* data = env->GetStringUTFChars(jdata, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* data = env->GetStringChars(jdata, &iscopy);
|
||||
if (!data) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createCDATASection: GetStringUTFChars failed");
|
||||
"Document.createCDATASection: GetStringChars failed");
|
||||
env->ReleaseStringChars(jdata, data);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsresult rv = doc->CreateCDATASection(data, &ret);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jdata, data);
|
||||
nsresult rv = doc->CreateCDATASection((PRUnichar*)data, &ret);
|
||||
env->ReleaseStringChars(jdata, data);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (rv == NS_ERROR_DOM_NOT_SUPPORTED_ERR) {
|
||||
@@ -165,17 +167,18 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createComment
|
||||
}
|
||||
|
||||
nsIDOMComment* ret = nsnull;
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* data = env->GetStringUTFChars(jdata, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* data = env->GetStringChars(jdata, &iscopy);
|
||||
if (!data) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createComment: GetStringUTFChars failed");
|
||||
"Document.createComment: GetStringChars failed");
|
||||
env->ReleaseStringChars(jdata, data);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsresult rv = doc->CreateComment(data, &ret);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jdata, data);
|
||||
nsresult rv = doc->CreateComment((PRUnichar*)data, &ret);
|
||||
env->ReleaseStringChars(jdata, data);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createComment: failed", rv);
|
||||
@@ -259,17 +262,18 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createElement
|
||||
}
|
||||
|
||||
nsIDOMElement* ret = nsnull;
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* tagName = env->GetStringUTFChars(jtagName, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* tagName = env->GetStringChars(jtagName, &iscopy);
|
||||
if (!tagName) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createElement: GetStringUTFChars failed");
|
||||
"Document.createElement: GetStringChars failed");
|
||||
env->ReleaseStringChars(jtagName, tagName);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsresult rv = doc->CreateElement(tagName, &ret);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jtagName, tagName);
|
||||
nsresult rv = doc->CreateElement((PRUnichar*)tagName, &ret);
|
||||
env->ReleaseStringChars(jtagName, tagName);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (rv == NS_ERROR_DOM_INVALID_CHARACTER_ERR) {
|
||||
@@ -316,17 +320,18 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createEntityReferenc
|
||||
}
|
||||
|
||||
nsIDOMEntityReference* ret = nsnull;
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* name = env->GetStringChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createEntityReference: GetStringUTFChars failed");
|
||||
"Document.createEntityReference: GetStringChars failed");
|
||||
env->ReleaseStringChars(jname, name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsresult rv = doc->CreateEntityReference(name, &ret);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
nsresult rv = doc->CreateEntityReference((PRUnichar*)name, &ret);
|
||||
env->ReleaseStringChars(jname, name);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
@@ -374,27 +379,28 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createProcessingInst
|
||||
}
|
||||
|
||||
nsIDOMProcessingInstruction* ret = nsnull;
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
jboolean iscopy2 = JNI_FALSE;
|
||||
const char* target = env->GetStringUTFChars(jtarget, &iscopy);
|
||||
jboolean iscopy;
|
||||
jboolean iscopy2;
|
||||
const jchar* target = env->GetStringChars(jtarget, &iscopy);
|
||||
if (!target) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createProcessingInstruction: GetStringUTFChars target failed");
|
||||
"Document.createProcessingInstruction: GetStringChars target failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char* data = env->GetStringUTFChars(jdata, &iscopy2);
|
||||
const jchar* data = env->GetStringChars(jdata, &iscopy2);
|
||||
if (!data) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createProcessingInstruction: GetStringUTFChars data failed");
|
||||
"Document.createProcessingInstruction: GetStringChars data failed");
|
||||
env->ReleaseStringChars(jdata, data);
|
||||
env->ReleaseStringChars(jtarget, target);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsresult rv = doc->CreateProcessingInstruction(target, data, &ret);
|
||||
if (iscopy2 == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jdata, data);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jtarget, target);
|
||||
nsresult rv = doc->CreateProcessingInstruction((PRUnichar*)target, (PRUnichar*)data, &ret);
|
||||
env->ReleaseStringChars(jdata, data);
|
||||
env->ReleaseStringChars(jtarget, target);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
@@ -442,17 +448,18 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_createTextNode
|
||||
}
|
||||
|
||||
nsIDOMText* ret = nsnull;
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* data = env->GetStringUTFChars(jdata, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* data = env->GetStringChars(jdata, &iscopy);
|
||||
if (!data) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createTextNode: GetStringUTFChars failed");
|
||||
"Document.createTextNode: GetStringChars failed");
|
||||
env->ReleaseStringChars(jdata, data);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsresult rv = doc->CreateTextNode(data, &ret);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jdata, data);
|
||||
nsresult rv = doc->CreateTextNode((PRUnichar*)data, &ret);
|
||||
env->ReleaseStringChars(jdata, data);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.createTextNode failed", rv);
|
||||
@@ -577,17 +584,18 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getElementsByTagName
|
||||
}
|
||||
|
||||
nsIDOMNodeList* elements = nsnull;
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* tagName = env->GetStringUTFChars(jtagName, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* tagName = env->GetStringChars(jtagName, &iscopy);
|
||||
if (!tagName) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getElementsByTagName: GetStringUTFChars failed");
|
||||
"Document.getElementsByTagName: GetStringChars failed");
|
||||
env->ReleaseStringChars(jtagName, tagName);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsresult rv = doc->GetElementsByTagName(tagName, &elements);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jtagName, tagName);
|
||||
nsresult rv = doc->GetElementsByTagName((PRUnichar*)tagName, &elements);
|
||||
env->ReleaseStringChars(jtagName, tagName);
|
||||
|
||||
if (NS_FAILED(rv) || !elements) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Document.getElementsByTagName: failed", rv);
|
||||
|
||||
@@ -44,18 +44,19 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_ElementImpl_getAttribute
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* cname = env->GetStringUTFChars(jname, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* cname = env->GetStringChars(jname, &iscopy);
|
||||
if (!cname) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttribute: GetStringUTFChars failed");
|
||||
"Element.getAttribute: GetStringChars failed");
|
||||
env->ReleaseStringChars(jname, cname);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsString attr;
|
||||
nsresult rv = element->GetAttribute(cname, attr);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, cname);
|
||||
nsresult rv = element->GetAttribute((PRUnichar*)cname, attr);
|
||||
env->ReleaseStringChars(jname, cname);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttribute: failed", rv);
|
||||
@@ -88,18 +89,19 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_getAttributeNode
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* cname = env->GetStringUTFChars(jname, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* cname = env->GetStringChars(jname, &iscopy);
|
||||
if (!cname) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttributeNode: GetStringUTFChars failed");
|
||||
"Element.getAttributeNode: GetStringChars failed");
|
||||
env->ReleaseStringChars(jname, cname);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMAttr* attr = nsnull;
|
||||
nsresult rv = element->GetAttributeNode(cname, &attr);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, cname);
|
||||
nsresult rv = element->GetAttributeNode((PRUnichar*)cname, &attr);
|
||||
env->ReleaseStringChars(jname, cname);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getAttributeNode: failed", rv);
|
||||
@@ -142,18 +144,19 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_getElementsByTagName
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* cname = env->GetStringUTFChars(jname, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* cname = env->GetStringChars(jname, &iscopy);
|
||||
if (!cname) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getElementsByTagName: GetStringUTFChars failed");
|
||||
"Element.getElementsByTagName: GetStringChars failed");
|
||||
env->ReleaseStringChars(jname, cname);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsIDOMNodeList* nodes = nsnull;
|
||||
nsresult rv = element->GetElementsByTagName(cname, &nodes);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, cname);
|
||||
nsresult rv = element->GetElementsByTagName((PRUnichar*)cname, &nodes);
|
||||
env->ReleaseStringChars(jname, cname);
|
||||
|
||||
if (NS_FAILED(rv) || !nodes) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.getElementsByTagName: failed", rv);
|
||||
@@ -252,17 +255,18 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_removeAttribute
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* name = env->GetStringChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.removeAttribute: GetStringUTFChars failed");
|
||||
"Element.removeAttribute: GetStringChars failed");
|
||||
env->ReleaseStringChars(jname, name);
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = element->RemoveAttribute(name);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
nsresult rv = element->RemoveAttribute((PRUnichar*)name);
|
||||
env->ReleaseStringChars(jname, name);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (rv == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR) {
|
||||
@@ -346,27 +350,29 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_ElementImpl_setAttribute
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* name = env->GetStringChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.setAttribute: GetStringUTFChars name failed");
|
||||
"Element.setAttribute: GetStringChars name failed");
|
||||
env->ReleaseStringChars(jname, name);
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy2 = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy2);
|
||||
jboolean iscopy2;
|
||||
const jchar* value = env->GetStringChars(jvalue, &iscopy2);
|
||||
if (!value) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Element.setAttribute: GetStringUTFChars name failed");
|
||||
"Element.setAttribute: GetStringChars name failed");
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
env->ReleaseStringChars(jname, name);
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = element->SetAttribute(name, value);
|
||||
if (iscopy2 == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jvalue, value);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
nsresult rv = element->SetAttribute((PRUnichar*)name, (PRUnichar*)value);
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
env->ReleaseStringChars(jname, name);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (NS_ERROR_GET_MODULE(rv) == NS_ERROR_MODULE_DOM &&
|
||||
|
||||
@@ -71,17 +71,18 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NamedNodeMapImpl_getNamedItem
|
||||
}
|
||||
|
||||
nsIDOMNode* node = nsnull;
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* name = env->GetStringChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.getNamedItem: GetStringUTFChars failed");
|
||||
"NodeMap.getNamedItem: GetStringChars failed");
|
||||
env->ReleaseStringChars(jname, name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsresult rv = map->GetNamedItem(name, &node);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
nsresult rv = map->GetNamedItem((PRUnichar*)name, &node);
|
||||
env->ReleaseStringChars(jname, name);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeMap.getNamedItem: failed", rv);
|
||||
@@ -145,17 +146,18 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_NamedNodeMapImpl_removeNamedItem
|
||||
}
|
||||
|
||||
nsIDOMNode* node = nsnull;
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* name = env->GetStringUTFChars(jname, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* name = env->GetStringChars(jname, &iscopy);
|
||||
if (!name) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NamedNodeMap.removeNamedItem: GetStringUTFChars failed");
|
||||
"NamedNodeMap.removeNamedItem: GetStringChars failed");
|
||||
env->ReleaseStringChars(jname, name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nsresult rv = map->RemoveNamedItem(name, &node);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jname, name);
|
||||
nsresult rv = map->RemoveNamedItem((PRUnichar*)name, &node);
|
||||
env->ReleaseStringChars(jname, name);
|
||||
|
||||
if (NS_FAILED(rv) || !node) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (rv == NS_ERROR_DOM_NOT_FOUND_ERR) {
|
||||
|
||||
@@ -822,17 +822,18 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_setNodeValue
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* value = env->GetStringUTFChars(jvalue, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* value = env->GetStringChars(jvalue, &iscopy);
|
||||
if (!value) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Node.setNodeValue: GetStringUTFChars failed");
|
||||
"Node.setNodeValue: GetStringChars failed");
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = node->SetNodeValue(value);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jvalue, value);
|
||||
nsresult rv = node->SetNodeValue((PRUnichar*)value);
|
||||
env->ReleaseStringChars(jvalue, value);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (rv == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR) {
|
||||
@@ -872,12 +873,12 @@ JNIEXPORT jlong JNICALL Java_org_mozilla_dom_NodeImpl_addNativeEventListener
|
||||
return 0;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
|
||||
const char* type = env->GetStringUTFChars(jtype, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* type = env->GetStringChars(jtype, &iscopy);
|
||||
if (!type) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"EventTarget.addEventListener: GetStringUTFChars failed\n");
|
||||
"EventTarget.addEventListener: GetStringChars failed\n");
|
||||
env->ReleaseStringChars(jtype, type);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -885,12 +886,10 @@ JNIEXPORT jlong JNICALL Java_org_mozilla_dom_NodeImpl_addNativeEventListener
|
||||
|
||||
listener = new NativeDOMProxyListener(env, jlistener);
|
||||
|
||||
nsresult rv = target->AddEventListener(type, listener, useCapture);
|
||||
|
||||
nsresult rv = target->AddEventListener((PRUnichar*)type, listener, useCapture);
|
||||
target->Release();
|
||||
env->ReleaseStringChars(jtype, type);
|
||||
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jtype, type);
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"EventTarget.addEventListener: error");
|
||||
@@ -926,23 +925,21 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_NodeImpl_removeNativeEventListener
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* type = env->GetStringUTFChars(jtype, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* type = env->GetStringChars(jtype, &iscopy);
|
||||
if (!type) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"NodeImpl.removeEventListener: GetStringUTFChars failed\n");
|
||||
"NodeImpl.removeEventListener: GetStringChars failed\n");
|
||||
env->ReleaseStringChars(jtype, type);
|
||||
return;
|
||||
}
|
||||
|
||||
useCapture = juseCapture == JNI_TRUE ? PR_TRUE : PR_FALSE;
|
||||
|
||||
nsresult rv = target->RemoveEventListener(type,
|
||||
nsresult rv = target->RemoveEventListener((PRUnichar*)type,
|
||||
(nsIDOMEventListener*) jlistener, useCapture);
|
||||
|
||||
target->Release();
|
||||
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jtype, type);
|
||||
env->ReleaseStringChars(jtype, type);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
|
||||
@@ -110,17 +110,18 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_ProcessingInstructionImpl_setData
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* data = env->GetStringUTFChars(jdata, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* data = env->GetStringChars(jdata, &iscopy);
|
||||
if (!data) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"ProcessingInstruction.setData: GetStringUTFChars failed");
|
||||
"ProcessingInstruction.setData: GetStringChars failed");
|
||||
env->ReleaseStringChars(jdata, data);
|
||||
return;
|
||||
}
|
||||
|
||||
nsresult rv = pi->SetData(data);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jdata, data);
|
||||
nsresult rv = pi->SetData((PRUnichar*)data);
|
||||
env->ReleaseStringChars(jdata, data);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ExceptionType exceptionType = JavaDOMGlobals::EXCEPTION_RUNTIME;
|
||||
if (rv == NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR) {
|
||||
|
||||
@@ -213,7 +213,7 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_dom_events_EventImpl_getType
|
||||
jstring jret = env->NewString(ret.GetUnicode(), ret.Length());
|
||||
if (!jret) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"Event.getType: NewStringUTF failed");
|
||||
"Event.getType: NewString failed");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -305,20 +305,21 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_events_EventImpl_initEvent
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* cvalue = env->GetStringUTFChars(jeventTypeArg, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* cvalue = env->GetStringChars(jeventTypeArg, &iscopy);
|
||||
if (!cvalue) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Event.initEvent: GetStringUTFChars failed\n"));
|
||||
("Event.initEvent: GetStringChars failed\n"));
|
||||
env->ReleaseStringChars(jeventTypeArg, cvalue);
|
||||
return;
|
||||
}
|
||||
|
||||
PRBool canBubble = jcanBubbleArg == JNI_TRUE ? PR_TRUE : PR_FALSE;
|
||||
PRBool cancelable = jcancelableArg == JNI_TRUE ? PR_TRUE : PR_FALSE;
|
||||
|
||||
nsresult rv = event->InitEvent(cvalue, canBubble, cancelable);
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jeventTypeArg, cvalue);
|
||||
nsresult rv = event->InitEvent((PRUnichar*)cvalue, canBubble, cancelable);
|
||||
env->ReleaseStringChars(jeventTypeArg, cvalue);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("Event.initEvent: failed (%x)\n", rv));
|
||||
|
||||
@@ -334,11 +334,12 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_events_MouseEventImpl_initMouseEvent
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* cvalue = env->GetStringUTFChars(jtypeArg, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* cvalue = env->GetStringChars(jtypeArg, &iscopy);
|
||||
if (!cvalue) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("UIEvent.initUIEvent: GetStringUTFChars failed"));
|
||||
("UIEvent.initUIEvent: GetStringChars failed"));
|
||||
env->ReleaseStringChars(jtypeArg, cvalue);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -349,7 +350,7 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_events_MouseEventImpl_initMouseEvent
|
||||
PRBool shiftKeyArg = jshiftKeyArg == JNI_TRUE ? PR_TRUE : PR_FALSE;
|
||||
PRBool metaKeyArg = jmetaKeyArg == JNI_TRUE ? PR_TRUE : PR_FALSE;
|
||||
|
||||
nsresult rv = event->InitMouseEvent(cvalue,
|
||||
nsresult rv = event->InitMouseEvent((PRUnichar*)cvalue,
|
||||
ctrlKeyArg,
|
||||
altKeyArg,
|
||||
shiftKeyArg,
|
||||
@@ -361,8 +362,8 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_events_MouseEventImpl_initMouseEvent
|
||||
(PRUint16)jbuttonArg,
|
||||
(PRUint16)jdetailArg);
|
||||
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jtypeArg, cvalue);
|
||||
env->ReleaseStringChars(jtypeArg, cvalue);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"UIEvent.initUIEvent: failed", rv);
|
||||
|
||||
@@ -101,11 +101,12 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_events_UIEventImpl_initUIEvent
|
||||
return;
|
||||
}
|
||||
|
||||
jboolean iscopy = JNI_FALSE;
|
||||
const char* cvalue = env->GetStringUTFChars(jtypeArg, &iscopy);
|
||||
jboolean iscopy;
|
||||
const jchar* cvalue = env->GetStringChars(jtypeArg, &iscopy);
|
||||
if (!cvalue) {
|
||||
PR_LOG(JavaDOMGlobals::log, PR_LOG_ERROR,
|
||||
("UIEvent.initUIEvent: GetStringUTFChars failed\n"));
|
||||
("UIEvent.initUIEvent: GetStringChars failed\n"));
|
||||
env->ReleaseStringChars(jtypeArg, cvalue);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -115,10 +116,9 @@ JNIEXPORT void JNICALL Java_org_mozilla_dom_events_UIEventImpl_initUIEvent
|
||||
|
||||
// REMIND: need to deal with AbstractView
|
||||
// NS_IMETHOD InitUIEvent(const nsString& aTypeArg, PRBool aCanBubbleArg, PRBool aCancelableArg, nsIDOMAbstractView* aViewArg, PRInt32 aDetailArg)=0;
|
||||
nsresult rv = event->InitUIEvent(cvalue, canBubble, cancelable, NULL, (PRUint32)jdetailArg);
|
||||
nsresult rv = event->InitUIEvent((PRUnichar*)cvalue, canBubble, cancelable, NULL, (PRUint32)jdetailArg);
|
||||
env->ReleaseStringChars(jtypeArg, cvalue);
|
||||
|
||||
if (iscopy == JNI_TRUE)
|
||||
env->ReleaseStringUTFChars(jtypeArg, cvalue);
|
||||
if (NS_FAILED(rv)) {
|
||||
JavaDOMGlobals::ThrowException(env,
|
||||
"UIEvent.initUIEvent: failed", rv);
|
||||
|
||||
Reference in New Issue
Block a user