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:
sdv%sparc.spb.su
2000-06-05 18:08:39 +00:00
parent 0f74a47c0d
commit c8e55c815c
12 changed files with 226 additions and 203 deletions

View File

@@ -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;

View File

@@ -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));

View File

@@ -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) {

View File

@@ -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));

View File

@@ -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);

View File

@@ -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 &&

View File

@@ -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) {

View File

@@ -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,

View File

@@ -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) {

View File

@@ -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));

View File

@@ -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);

View File

@@ -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);